从4节点集群备份和还原Cassandra

时间:2015-08-24 09:00:59

标签: cassandra

我有一个Cassandra 4节点集群。每个节点都有50%的数据。任何人都可以建议我如何采取备份的最佳方式,以便在我恢复时我应该取回所有数据。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

最佳做法是创建快照(基本上通过创建sstables的硬链接来备份所有现有数据,这些链接是cassandra的数据文件)。其他线程似乎没有提到您还要备份架构。这可以使用cqlsh的describe命令来完成,例如:

DESCRIBE TABLE system.schema_columns;

CREATE TABLE system.schema_columns (
    keyspace_name text,
// some output removed
    PRIMARY KEY (keyspace_name, columnfamily_name, column_name)
) WITH CLUSTERING ORDER BY (columnfamily_name ASC, column_name ASC)
// removed rest ouf output.

还可以使用并行ssh工具在所有节点上创建快照(pssh是流行的工具之一)

所以概述过程:

  1. 备份您的架构(每个表只需要一次ALTER)
  2. 使用pssh创建并行快照
  3. 将快照备份到另一台非cassandra计算机的某处(如果您遇到硬件故障,将快照保留在与cassandra相同的计算机上,则意味着您可能会同时丢失它们和节点)。
  4. 概述了如何快照here以及如何使用快照here恢复丢失的节点的概述。