Apache Cassandra:数据库进程运行时能否创建快照?
无需停止Cassandra进程即可执行nodetool snapshot,且可配合cleanup操作
完全可以在Cassandra进程运行状态下执行快照:
nodetool snapshot是Cassandra原生支持的在线备份操作,执行过程不需要停止节点服务。它的原理是对节点上的SSTable文件创建硬链接,几乎不额外占用磁盘空间(后续SSTable被修改或删除时才会占用独立空间),执行期间节点能正常处理读写请求,不会影响业务。快照前执行
nodetool cleanup是合理操作:cleanup的作用是移除节点上不属于当前令牌范围的冗余副本数据,确保快照只包含该节点应该存储的有效数据,避免快照中混入无效的副本文件。不过要注意,cleanup会消耗一定的CPU和磁盘IO资源,建议选在业务低峰期执行,避免对正常服务造成影响。
补充几个实用细节:
- 执行快照时可以用
-t参数指定自定义名称,方便后续管理,比如:nodetool snapshot -t daily_backup - 快照文件默认存放在每个数据目录下的
snapshots/[快照名称]子目录中 - 如果集群规模较大,cleanup可能耗时较久,可以通过
nodetool status查看节点状态,确认cleanup完成后再执行快照
内容的提问来源于stack exchange,提问作者database_enjoyer
相关产品推荐
相关产品推荐

