cassandra - Cassandra 备份和恢复 - 删除表/模式更改
问题描述
我正在为我们的 cassandra 系统制定 cassandra 备份和恢复策略,并试图了解备份和 sstable 恢复在 cassandra 中的工作原理。这是我的观察和相关问题(我需要设置一个备用/备份集群,如果主集群出现故障,该集群将变为活动状态。所以我想让它们在数据方面保持同步,所以我想定期进行在我的活动集群上备份并恢复到备用集群)
- 进行快照备份。在 cassandra 中丢了一张桌子。停止 cassandra,从快照备份中恢复(将 sstables 复制到 data/ 文件夹),启动 cassandra。在节点上运行 cqlsh,我仍然看不到创建的表。这应该工作吗?我错过了任何步骤吗?
- 在上述场景中,然后我尝试使用 cql commant source 重新设置架构(我在快照中备份架构)。这为我创建了表格。然而,它为我创建了一个“新版本”的表格。当我恢复快照具有旧版本(不同的 uuid 标记的表文件夹)。恢复后,我仍然看不到表中的数据。可能是因为我创建了一个新表?
nodetool repair
在运行并使用sstableloader
从集群中的另一个节点恢复表数据后,我终于能够恢复数据。我的问题是
一个。从快照设置新(空白-无模式)集群的正确方法是什么?您如何设置架构和恢复数据?
湾。如何从具有表更改的备份中恢复集群。从备份(快照或增量)恢复时,如何将运行旧版本模式的集群带入新版本模式?
(注意:这里是 cassandra 新手)
解决方案
所以如果要恢复快照,需要将快照文件拷贝回sstable目录,然后运行:nodetool refresh。你可以阅读:
https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/operations/opsBackupSnapshotRestore.html
了解更多信息。此外,还有 3rd 方工具可以备份您的数据,然后将其还原为备份时的状态。我们使用一个工具:Cohesity(正式名称为 Talena/Imanis)。它有很多功能(将 A 刷新到 B、还原/重命名等)。还有其他流行的。它们都有与之相关的成本。
希望这有帮助吗?
-吉姆
推荐阅读
- python - PySpark 计算公共列上两个表平均值的有效方法
- firebase - 如何在 Firestore 中“填充”?
- unreal-engine4 - 反转对象虚幻引擎的旋转
- inheritance - Modelica:如何将 Child 类型的实例分配给 Parent 类型的变量?
- jenkins - 字符串变量赋值不包括 Jenkinsfile 中的字符串引用
- javascript - 是否可以从 react-leaflet 更改默认请求行为?
- javascript - 带有 websocket 的无服务器 lambda 不保存接收到的数据
- shell - 终端创建 Mac 别名给出权限错误
- docker - “在上游找不到主机......”使用“kubectl apply -f”但在“docker-compose up”中有效
- python - 如何将自定义过滤器应用于 django 过滤器 ModelChoicefilter