备份cassandra集群的最佳做法是什么?

And*_*rew 8 cassandra cassandra-2.0

我有一个cassandra集群,在多个数据中心有大约20个节点.我想备份cassandra数据库.我希望可以将备份恢复到新群集,即使现有节点中的每个节点同时被流星命中.

  1. 我究竟需要从服务器中复制并保留以便对cassandra数据库进行从头开始恢复,以及这些项目存储在何处?我认为这并不像"拍摄快照并将其同步到某个地方"那么简单.
  2. 如何执行备份和还原?
  3. 这个过程记录在哪里?

ash*_*hic 9

传统的"备份和恢复"信息可以在这里找到:http: //docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_backup_restore_c.html

基本上,您在每台计算机上拍摄快照,然后备份文件.几乎"拍摄快照并将其同步到某个地方"!! 增量备份有助于减少备份大小等.链接更详细地解释了它.

但是,如果您想要的只是机器被流星击中的"辅助",那么常见的方法是使用另一个数据中心(通常具有较少的节点),并在键空间上设置复制因子( s)以便"备份"数据中心将数据复制到.您的应用程序通常会使用本地仲裁来写入"主"数据中心,而备份将用作......作为备份.如果备用DC功能强大,它甚至可以作为热备份.

通过此设置,cassandra会在添加时将数据流式传输到备份.这可以防止基于快照的繁琐备份与存储在网络上的文件.但是,这不会保护dev不会错误地删除cassandra中的数据.(像drop keypace这样的东西可以恢复到一定的时间段,但是如果你错误地删除了某些行......它们就会消失).

希望有所帮助.

  • (搞笑的是,后者假设旧群集在描述如何恢复到新群集时将会存活.这就是我决定在这里提出的问题) (3认同)