数据已被意外地使用TRUNCATE
命令从生产数据库中删除,我不知道应该如何恢复它。我已阅读auto_snapshot
[1],幸运的是此选项已开启。我们在snapshots
文件夹中有一堆快照(如下所示),我们不知道应该使用哪些快照来恢复数据。
root@server:/raid0/cassandra/data/raw_data_keyspace/raw_buy_hits-d5e2fc5005f411e5bc39c93f22adf770/snapshots# du
44 ./1439296902349-raw_buy_hits
44 ./1439296723590-raw_buy_hits
48 ./1439296608175-raw_buy_hits
171964 ./1439296089074-raw_buy_hits
171032 ./1439203561681
44 ./1439296856042-raw_buy_hits
44 ./1439296234966-raw_buy_hits
343224 .
当我阅读Cassandra的文档时,我没有发现任何关于这个问题的提及。
我们应该使用哪些快照?它应该是其中之一还是我们应该使用它们来恢复我们丢失的所有数据?
答案 0 :(得分:0)
如果在截断后有其他快照,则需要使用最新的快照(或截断前的最新快照)。
Cassandra在创建快照时使用硬链接,这就是为什么这些快照的大小如此不同的原因。获取每个单独快照的大小,为每个快照运行单独的du
命令,这样您就可以看到快照时的大小。
因此,不是仅依靠du
按日期列出目录(ls -ltr
),而是选择要还原的快照,然后使用du
命令验证它是否为你期待的大小。