首页 > 解决方案 > nodetool 快照也拍摄模式快照(备份)?

问题描述

Cassandra doc提到“nodetool snapshot”命令获取表数据的快照。但是,我还可以在生成所有快照文件的快照目录中看到 schema.cql 和 manifest.json 文件。

这是预期的行为吗?如果需要,我还可以使用这个 schema.cql 文件来恢复架构吗?

我的卡桑德拉版本

cqlsh> show version
[cqlsh 5.0.1 | Cassandra 3.0.9 | CQL spec 3.4.0 | Native protocol v4]

>nodetool version
ReleaseVersion: 3.0.9

编辑:

  1. 还原数据时是否必须使用快照中的 cql 文件?假设我已经创建了存储在其他地方的表 cql。我可以用那个吗?我进行了一些测试。当我使用快照中的 cql 重新创建表时,表名中的 ID 保持不变“employee -42a71380966111e8870f97a01282a56a ”。但是,当我使用原始 cql 重新创建表时,表名中的 ID 发生了变化。这可能是一个问题,这就是为什么我们应该从快照中使用 cql?注意-:当我从快照中恢复数据时,它在上述两种情况下都能正常加载
  2. 此 cql 文件用于表。我们可以从快照中获取 cql 来创建密钥空间吗?
  3. 是否仅为用户定义的表生成 cql 文件?我看不到为系统表生成 cql 文件..

标签: cassandracassandra-3.0

解决方案


是的,这些文件是恢复此特定表所必需的。并schema.cql在快照时捕获表的结构,因为您需要将快照恢复到具有相同结构的表。

您可以在 DataStax 文档中找到更详细的描述

添加更多问题后更新:

  1. 快照中模式的存在使生活更轻松 - 模式通常会发展,如果您保证模式与快照中的数据匹配,您可以使用非快照模式;
  2. nodetool snapshot只生成表的模式
  3. 最好不要乱用系统表...

这是来自 DataStax 支持的关于备份/恢复的详细知识库文章。


推荐阅读