nodetool快照也需要架构快照(备份)吗?

时间:2018-08-02 10:00:39

标签: cassandra cassandra-3.0

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文件。.

2 个答案:

答案 0 :(得分:3)

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

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

添加更多问题后进行更新:

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

这里是detailed knowledge base article的有关备份/还原的DataStax支持。

答案 1 :(得分:2)

您给出的文档链接是针对Apache Cassandra的,而给出的答案是关于Datastax的,我已经完成了快照主机的恢复并将其恢复到apache-cassandra 2.0.4中,它不进行任何模式备份。所有架构都需要单独复制,并需要在新集群中手动创建。