容器中的 Cassandra - 如何(事件序列)对存储卷进行快照?
Cassandra in a container - what to do (sequence of events) to snapshot the storage volume?
运行 Docker 中的 Apache Cassandra 3。我需要对存储卷进行快照。显然,我希望稍后能够从快照重新启动 Cassandra。所以快照需要处于一致的状态。
对于大多数数据库,事件的顺序是这样的:
- 将数据库刷新到磁盘
- “冻结”数据库
- 快照存储
- “解冻”数据库
用 Cassandra 的说法,这个序列意味着什么?
当我从旧快照启动数据库时需要发生的事件顺序是什么?是否会有恢复程序,或者我可以像往常一样启动它吗?
不需要做任何特别的事情。使用默认设置,Cassandra 将每 10 秒同步一次存储。 fsync之后,保证了一致性。因此,随时拍摄快照,可能发生的最坏情况是您丢失 10 秒的交易。
如果愿意,可以使用“nodetool flush”强制同步,然后对存储进行快照。这将强制提前进行 fsync 并最大限度地减少交易损失。但这不是强制性的。
运行 Docker 中的 Apache Cassandra 3。我需要对存储卷进行快照。显然,我希望稍后能够从快照重新启动 Cassandra。所以快照需要处于一致的状态。
对于大多数数据库,事件的顺序是这样的:
- 将数据库刷新到磁盘
- “冻结”数据库
- 快照存储
- “解冻”数据库
用 Cassandra 的说法,这个序列意味着什么?
当我从旧快照启动数据库时需要发生的事件顺序是什么?是否会有恢复程序,或者我可以像往常一样启动它吗?
不需要做任何特别的事情。使用默认设置,Cassandra 将每 10 秒同步一次存储。 fsync之后,保证了一致性。因此,随时拍摄快照,可能发生的最坏情况是您丢失 10 秒的交易。
如果愿意,可以使用“nodetool flush”强制同步,然后对存储进行快照。这将强制提前进行 fsync 并最大限度地减少交易损失。但这不是强制性的。