
ScyllaDB 升级指南从 2026.x 到 2026.3 的滚动升级、回滚与指标变更全解析【免费下载链接】scylladbNoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB项目地址: https://gitcode.com/GitHub_Trending/sc/scylladbScyllaDB 是一个基于 Seastar 框架、兼容 Apache Cassandra 与 Amazon DynamoDB 的 NoSQL 数据存储其升级体系以“逐节点滚动执行”为核心支持在集群不整体停机的前提下完成小版本Patch与次版本Minor升级。本文以仓库内 docs/upgrade 文档体系为骨架完整讲解 ScyllaDB 2026.x → 2026.3 的升级前检查、分步操作、验证手段、失败回滚流程以及 2026.3 引入的新指标与重命名指标并结合仓库源码说明关键命令与配置项的底层实现。读完本文你将能够独立规划并执行一次可回滚、可验证的 ScyllaDB 滚动升级。升级文档体系与适用范围仓库 docs/upgrade 目录下的文档体系分为三层入口页 docs/upgrade/index.rst 与 docs/upgrade/upgrade-guides/index.rst将升级主题路由到具体指南次版本升级指南 upgrade-guide-from-2026.x-to-2026.3.rst覆盖 2026.x → 2026.3 的完整升级与回滚过程补丁Patch升级指南 upgrade-guide-from-2026.x.y-to-2026.x.z.rst覆盖同一 2026.x 系列内小版本间的升级与回滚云镜像升级说明 ami-upgrade.rst面向 EC2 / GCP / Azure 上的官方镜像与自建镜像公共警示片段 warning.rst 与 warning_rollback.rst强调升级/回滚必须逐节点串行执行。两份升级指南覆盖的操作系统均为 Red Hat Enterprise Linux (RHEL)、CentOS、Debian 和 Ubuntu同时适用于 EC2、GCP、Azure 上的 ScyllaDB 官方镜像。补丁升级指南特别说明补丁升级无需更换 DEB 或 RPM 软件仓库直接使用原有仓库即可拉取到新补丁版本而 2026.x → 2026.3 这类次版本升级则必须先将仓库源切换到新版本。升级前检查与准备工作在动手升级之前官方文档要求依次完成以下三类检查升级驱动Driver如果使用 ScyllaDB 官方驱动连接集群应先将驱动升级到与目标版本兼容的版本官方支持每个驱动的最新两个版本。升级监控栈Monitoring Stack若使用 ScyllaDB Monitoring Stack需要先确认其版本支持将要升级到的 ScyllaDB 版本官方建议将监控栈升级到最新版本。由于 2026.3 引入了一批新指标见下文“指标更新”一节旧版监控栈可能无法正确渲染新仪表盘。核对特性更新查阅 ScyllaDB Release Notes确认目标版本中与自身业务相关的功能变化。升级前还应记录当前版本在任一节点执行scylla --version把输出的版本号记下来这个版本号将用于回滚时的版本定位。升级核心流程逐节点滚动执行ScyllaDB 升级是滚动式rolling过程不需要整个集群停机。对集群中的每个节点依次完成以下 7 个步骤并且必须串行执行——只有确认当前节点已成功运行新版本后才能继续下一个节点检查集群 Schema 是否同步Drain 节点并备份数据备份配置文件停止 ScyllaDB下载并安装新版本软件包启动 ScyllaDB验证升级成功。滚动升级期间官方强烈建议不要执行以下操作使用新版本2026.3引入的新特性执行管理类操作如 repair、refresh、rebuild、添加或移除节点可使用sctool暂停 ScyllaDB Manager 中已调度或正在运行的 repair 任务应用 Schema 变更。1. 检查集群 Schema 同步升级过程在节点间存在 Schema 不一致时会失败因此第一步是在升级前确认所有节点的 Schema 已同步nodetool describecluster该命令的输出会列出集群中每个节点的 Schema 版本全部一致后才可继续。该命令由仓库内的 tools/scylla-nodetool.cc 实现。2. Drain 节点并备份数据官方推荐使用 ScyllaDB Manager 创建备份如不使用 Manager可以基于nodetool snapshot手工备份。对每一个节点依次执行nodetool drain nodetool snapshotnodetool drain让节点停止接收新的写入并将内存中的 memtable 刷新flush到磁盘保证快照的一致性nodetool snapshot为节点数据目录生成快照。执行后请记录 nodetool 输出的快照目录名并把/var/lib/scylla下所有以该名称命名的目录复制到外部备份设备全部节点升级完成后用nodetool clearsnapshot -t snapshot删除快照防止磁盘空间被占满。3. 备份配置文件升级前需要备份scylla.yaml配置文件和软件仓库源文件供回滚时恢复。按发行版执行Debian/Ubuntusudo cp -a /etc/scylla/scylla.yaml /etc/scylla/scylla.yaml.backup sudo cp /etc/apt/sources.list.d/scylla.list ~/scylla.list-backupRHEL/CentOSsudo cp -a /etc/scylla/scylla.yaml /etc/scylla/scylla.yaml.backup sudo cp /etc/yum.repos.d/scylla.repo ~/scylla.repo-backup/etc/scylla/scylla.yaml即 ScyllaDB 主配置文件仓库内提供了该配置的完整模板见 conf/scylla.yaml。4. 优雅停止节点sudo service scylla-server stop注意使用service而非直接 kill 进程以确保 ScyllaDB 完成优雅停机flush、关闭 SSTable 等。5. 下载并安装新版本补丁升级2026.x.y → 2026.x.z无需更换仓库直接升级即可。Debian/Ubuntusudo apt-get clean all sudo apt-get update sudo apt-get dist-upgrade scylla前两个询问均回答y。RHEL/CentOSsudo yum clean all sudo yum update scylla\* -y次版本升级2026.x → 2026.3需要先把仓库源切换到新版本。Debian/Ubuntu先更新 deb 仓库再安装sudo wget -O /etc/apt/sources.list.d/scylla.list https://downloads.scylladb.com/deb/debian/你的发行版对应列表 sudo apt-get clean all sudo apt-get update sudo apt-get dist-upgrade scyllaRHEL/CentOS先更新 rpm 仓库再安装sudo curl -o /etc/yum.repos.d/scylla.repo -L https://downloads.scylladb.com/rpm/centos/你的发行版对应repo sudo yum clean all sudo yum update scylla\* -y仓库地址中的...占位符请替换为与实际 OS 版本及目标 ScyllaDB 版本匹配的下载列表。6. 启动节点sudo service scylla-server start7. 验证升级成功升级完成后必须验证节点确实运行了新版本且工作正常执行nodetool status确认所有节点包括刚升级的节点都处于UNUp/Normal状态用 REST API 查询版本号确认与目标版本一致curl -X GET http://localhost:10000/storage_service/scylla_release_version该 API 端点定义在 api/api-doc/storage_service.json 中昵称为get_scylla_release_version由storage_service模块暴露在 10000 端口的 HTTP API 上 3. 检查日志确认没有新增错误journalctl _COMMscylla等待约 2 分钟后再次检查确认没有新问题出现。确认当前节点升级成功后再对下一个节点重复以上全部步骤。云镜像EC2/GCP/Azure的升级注意事项ScyllaDB 官方镜像基于Ubuntu 22.04见 ami-upgrade.rst。官方镜像的升级方式与 Debian/Ubuntu 完全一致直接参考对应标签页即可。如果你使用的是自建镜像且手动安装了 Ubuntu/Debian 软件包则必须执行扩展升级流程先按Debian/Ubuntu标签页更新 deb 仓库并安装新版本sudo apt-get clean all sudo apt-get update sudo apt-get dist-upgrade scylla sudo apt-get dist-upgrade scylla-machine-image运行scylla_setup但不要执行io_setup运行sudo /opt/scylladb/scylla-machine-image/scylla_cloud_io_setup回滚时也需要额外处理scylla-machine-image包见下文。回滚流程升级失败的应急通道回滚同样采用滚动方式不需要整个集群停机但有严格的前提条件只有当集群中仍有节点尚未升级到新版本时回滚才可能执行。一旦滚动升级的最后一个节点也已用新版本启动回滚便不再可行此时唯一的恢复途径是从备份还原整个集群。因此任何升级都必须保守地逐节点推进避免一口气升级全部节点。回滚同样要求逐节点串行执行且只对已经升级到新版本的节点执行。每个节点的回滚步骤为Drain 节点并停止 ScyllaDB恢复旧版本软件包恢复配置文件重新加载 systemd 配置如 unit 文件有变更重启 ScyllaDB验证回滚成功。停止节点nodetool drain sudo service scylla-server stop恢复并安装旧版本Debian/Ubuntu补丁升级回滚直接安装指定版本sudo apt-get install scylla旧版本\* scylla-server旧版本\* scylla-tools旧版本\* scylla-tools-core旧版本\* scylla-kernel-conf旧版本\* scylla-conf旧版本\*前两个询问回答y。RHEL/CentOS补丁升级回滚sudo yum downgrade scylla\*-旧版本-\* -yDebian/Ubuntu次版本升级回滚先移除新仓库文件恢复旧仓库再重新安装sudo rm -rf /etc/apt/sources.list.d/scylla.list sudo cp ~/scylla.list-backup /etc/apt/sources.list.d/scylla.list sudo chown root.root /etc/apt/sources.list.d/scylla.list sudo chmod 644 /etc/apt/sources.list.d/scylla.list sudo apt-get update sudo apt-get remove scylla\* -y sudo apt-get install scyllaRHEL/CentOS次版本升级回滚sudo rm -rf /etc/yum.repos.d/scylla.repo sudo cp ~/scylla.repo-backup /etc/yum.repos.d/scylla.repo sudo chown root.root /etc/yum.repos.d/scylla.repo sudo chmod 644 /etc/yum.repos.d/scylla.repo sudo yum clean all sudo yum remove scylla\* sudo yum install scylla自建云镜像EC2/GCP/Azure在 Debian/Ubuntu 回滚步骤的基础上额外恢复scylla-machine-image包sudo apt-get update sudo apt-get remove scylla\* -y sudo apt-get install scylla sudo apt-get install scylla-machine-image恢复配置文件sudo rm -rf /etc/scylla/scylla.yaml sudo cp /etc/scylla/scylla.yaml.backup /etc/scylla/scylla.yaml注意次版本升级回滚指南中恢复源文件路径写作scylla.yaml-backup而备份步骤使用的是scylla.yaml.backup实际操作时请与你备份时生成的文件名保持一致。重新加载 systemd 配置并启动如果 systemd unit 文件在版本间发生变化必须重载 unit 文件sudo systemctl daemon-reload sudo service scylla-server start最后按“验证”一节的方法确认节点运行的是旧版本且状态正常然后继续回滚下一个节点。2026.3 指标更新新指标与重命名指标次版本升级指南中专门附有指标更新说明 metric-update-2026.x-to-2026.3.rst。2026.3 的监控仪表盘已包含在最新版监控栈中旧版监控栈用户升级前应确认兼容性。相比 2026.22026.3 新增了以下指标节选归类如下AlternatorDynamoDB 兼容层相关指标说明scylla_alternator_conditional_check_failed条件条件不满足的请求数ConditionalCheckFailedExceptionscylla_alternator_returned_itemsQuery/Scan 操作返回的条目数scylla_alternator_returned_items_histogram每次 Query/Scan 操作返回条目数的直方图scylla_alternator_returned_recordsGetRecords 操作返回的流记录数scylla_alternator_system_errorsHTTP 500 内部服务器错误响应数scylla_alternator_user_errorsHTTP 400 客户端错误响应数不含 ConditionalCheckFailedExceptionscylla_alternator_vector_search_query带 VectorSearch 的 Query 操作数scylla_alternator_vector_search_query_items_from_base_table向量搜索查询从基表读取的条目总数scylla_alternator_vector_search_query_items_from_vs向量存储找到的最近邻总数部分可能被后置过滤而未返回scylla_alternator_vector_search_query_returned_items带向量搜索的 Query 操作返回的条目总数数据库大对象告警相关这三项指标分别统计超过compaction_large_cell_warning_threshold_mb、compaction_collection_elements_count_warning_threshold、compaction_large_row_warning_threshold_mb阈值的超大 cell、超大 collection 和超大行数量。对应配置项在 db/config.cc 中定义其中compaction_large_cell_warning_threshold_mb默认值为 1MBcompaction_collection_elements_count_warning_threshold默认值为 10000个元素二者均为 LiveUpdate 类型可在线热更新。大对象会对性能产生负面影响官方建议尽量避免。读取内存池相关scylla_database_reads_memory_borrowed_from_shared_pool、scylla_database_reads_shared_pool_available_memory、scylla_database_reads_shared_pool_total_memory三项分别反映读取操作从共享池借用的内存、共享 reader 并发信号量池的可用内存与总内存用于观测读取路径内存水位。负载均衡与修复任务相关scylla_group_name_rebuilds_produced、scylla_group_name_repairs_produced统计由 load balancer 产生的 rebuild 与 repair 任务数。logstor 存储引擎相关scylla_logstor_sm_separator_buffers_in_use当前使用中的 separator buffer 数、scylla_memory_logstor_byteslogstor 当前占用的内存字节数。S3 对象存储客户端相关针对 S3 HTTP 请求新增了一整套按方法区分的指标包括scylla_s3_integrated_request_queue_length随时间积分的排队请求数单位 request-seconds以及 CONNECT/DELETE/GET/HEAD/OPTIONS/PATCH/POST/PUT/TRACE 各方法对应的*_requests请求总数、*_latency_sec总耗时秒数、*_retries重试次数。服务等级Service Level相关scylla_service_level_worktype记录每个 service level 配置的工作负载类型0 表示未指定1 表示 batch2 表示 interactive。强一致性协调器相关新增一组读写指标包括scylla_strong_consistency_coordinator_read/write_errors失败请求数、*_latency与*_latency_summary延迟直方图与摘要、*_node_bounces请求被弹回另一节点的次数、*_shard_bounces请求被弹回另一 shard 的次数用于观测强一致性读写路径的协调行为。CQL 传输层相关scylla_transport_cql_client_timestamp_drift_histogram统计客户端提供的 CQL 时间戳与请求到达时服务器时间之间的漂移微秒可用于检测请求到达 CQL server 之前的传输延迟scylla_transport_cql_request_latency_histogram统计传输层 CQL 请求延迟微秒从请求开始处理到响应写入 socket。重命名指标2026.2 中的名称2026.3 中的名称scylla_s3_downloads_blocked_on_memoryscylla_s3_downloads_starving_on_max_concurrency如果监控告警规则引用了旧指标名scylla_s3_downloads_blocked_on_memory升级到 2026.3 后需要同步更新为新名称否则告警将失效。此前 2026.x 系列的历史指标变更如 2026.1 → 2026.2同样记录在官方文档中可在升级前一并核对。结语ScyllaDB 的升级体系始终围绕“滚动、串行、可回滚、可验证”四个原则设计通过逐节点 drain、备份、停服、换源安装、启动、验证将升级风险控制在单节点范围内通过保留旧版本包与配置备份为失败的升级保留了唯一的回滚窗口通过nodetool status、storage_service/scylla_release_versionAPI 与日志检查三重手段确认节点健康。而 2026.3 的指标更新则提示监控体系需要与数据库版本同步演进。按照本文梳理的流程操作即可在最小风险下完成 ScyllaDB 的版本升级。【免费下载链接】scylladbNoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB项目地址: https://gitcode.com/GitHub_Trending/sc/scylladb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考