首页 > 解决方案 > Cassandra 备份和恢复 - 删除表/模式更改

问题描述

我正在为我们的 cassandra 系统制定 cassandra 备份和恢复策略,并试图了解备份和 sstable 恢复在 cassandra 中的工作原理。这是我的观察和相关问题(我需要设置一个备用/备份集群,如果主集群出现故障,该集群将变为活动状态。所以我想让它们在数据方面保持同步,所以我想定期进行在我的活动集群上备份并恢复到备用集群)

  1. 进行快照备份。在 cassandra 中丢了一张桌子。停止 cassandra,从快照备份中恢复(将 sstables 复制到 data/ 文件夹),启动 cassandra。在节点上运行 cqlsh,我仍然看不到创建的表。这应该工作吗?我错过了任何步骤吗?
  2. 在上述场景中,然后我尝试使用 cql commant source 重新设置架构(我在快照中备份架构)。这为我创建了表格。然而,它为我创建了一个“新版本”的表格。当我恢复快照具有旧版本(不同的 uuid 标记的表文件夹)。恢复后,我仍然看不到表中的数据。可能是因为我创建了一个新表?

nodetool repair在运行并使用sstableloader从集群中的另一个节点恢复表数据后,我终于能够恢复数据。我的问题是
一个。从快照设置新(空白-无模式)集群的正确方法是什么?您如何设置架构和恢复数据?

湾。如何从具有表更改的备份中恢复集群。从备份(快照或增量)恢复时,如何将运行旧版本模式的集群带入新版本模式?

(注意:这里是 cassandra 新手)

标签: cassandracassandra-3.0

解决方案


所以如果要恢复快照,需要将快照文件拷贝回sstable目录,然后运行:nodetool refresh。你可以阅读: https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/operations/opsBackupSnapshotRestore.html

了解更多信息。此外,还有 3rd 方工具可以备份您的数据,然后将其还原为备份时的状态。我们使用一个工具:Cohesity(正式名称为 Talena/Imanis)。它有很多功能(将 A 刷新到 B、还原/重命名等)。还有其他流行的。它们都有与之相关的成本。

希望这有帮助吗?

-吉姆


推荐阅读