我已经用2个dc设置了一个Cassandra集群。DC1 -9节点,rep 5,一致性-本地仲裁。DC2 -4个节点,rep 3,一致性-本地仲裁。一直在测试备份和恢复,并观察到在恢复数据后修复节点需要很长时间。System.log和compactionstats显示,大部分时间都花在重建二级索引上。寻找以下问题的答案:
有没有办法备份和恢复二级索引?Cassandra如何修复二级索引?它总是经过完全重建吗?有没有一种方法可以专门从nodetool修复过程中排除辅助索引重建?
备份策略:基于快照,存储在云中。Lucene目录保存索引也会被备份
恢复策略:从快照恢复sstables,复制回Lucene目录。
发布于 2021-06-10 17:23:16
当您运行nodetool snapshot时,它还会生成辅助索引的快照。
来自instaclustr doc:用于备份文件的确切位置和文件命名约定取决于二级索引的类型和Cassandra的版本。
二级索引将作为sstables存储在各自表中的单独目录下。辅助索引目录命名为“.nameOfTheIndex”。sstable文件的命名约定是,‘md-#-big-*’,例如。md-1-big-Data.db
二级索引将作为sstables存储在各自表的同一目录中。sstable文件的命名约定是,Cassandra2.0.x的
‘’keyspace table.nameOfTheIndex-jb-#-‘,例如。testkeyspace-testtable.testindex-jb-1-Data.db -对于Cassandra 2.1.x,‘keyspace-table.nameOfTheIndex-ka-#-’,例如。testkeyspace-testtable.testindex-ka-1-Data.db
与SASI索引的另一个重要区别是,如果群集在启动Instaclustr备份服务之前已经具有SASI索引,则备份服务将不会备份SASI索引。在这种情况下,需要重启Cassandra服务。如果生产集群出现这种情况,请联系我们的技术支持团队协助解决。命名约定:‘md-1-big-SI_table_column_idx.db’
https://stackoverflow.com/questions/59024350
复制相似问题