nodetool snapshot 也需要模式快照(备份)吗?

nodetool snapshot takes schema snapshot (backup) too?

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

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

我的cassandra版本

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

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

您可以找到 more detailed description in the DataStax documentation.

补充问题后更新:

  1. 快照中模式的存在让生活更轻松 - 模式经常演变,如果您保证模式将与快照中的数据匹配,您可以使用非快照模式;
  2. nodetool snapshot 仅生成 table 的模式
  3. 最好不要乱用系统tables...

这是来自 DataStax 支持的 detailed knowledge base article 关于 backup/restore。

Doc link 你给出的是针对 apache Cassandra 的,而给出的答案是关于 Datastax 的,我已经完成了 snaphosts 并将其恢复到 apache-cassandra 2.0.4 中,它没有进行任何架构备份。所有模式都需要单独复制,需要在新集群中手动创建。