查看我的键空间目录,我看到了大多数表的几个版本。我假设这是因为我在某些时候删除它们并重新创建它们,因为我正在改进模式。
table1-b3441432142142sdf02328914104803190
table1-ba234143018dssd810412asdfsf2498041
这些创建的表名称使用起来非常麻烦。尝试更改到其中一个目录,而不从终端窗口粘贴目录名称...痛苦。很容易输入错误。
除此之外,如何判断哪个目录是该表的最新版本? 我可以自动删除旧版本吗? 我是不清楚这些是否被视为快照,因为每个目录也可以包含快照。我在另一篇文章中读到你可以停止自动快照,但我不确定我是否想要那样。我只是自动删除当前未使用的任何表格(即:不是最新版本)。
我偶然发现了这个尝试做备份的事情。我意识到我被迫去每个表目录并复制出快照文件(有50个目录......不包括所有旧表版本),这看起来像一个糟糕的设计(也许我错过了什么?) 。
我假设我可以对整个密钥空间进行快照并获取一个文件,或者至少将所有文件输出到表示整个密钥空间快照的单个目录。至少可以知道当前版本是什么,所以我可以抓取正确的文件并将它们卸载到某个地方。
DataStax Enterprise具有备份功能,但它仅支持AWS,我使用的是Azure。
所以澄清一下:
答案 0 :(得分:1)
您可以通过查看系统键空间并检查cf_id字段来查看表的活动版本。例如,要在“测试”中查看表格的版本。使用表名' temp'的键空间,你可以这样做:
cqlsh> SELECT cf_id FROM system.schema_columnfamilies WHERE keyspace_name='test' AND columnfamily_name='temp' allow filtering;
cf_id
--------------------------------------
d8ea9830-20e9-11e5-afc0-c381f961c62a
据我所知,删除不再有效的(rm -r)过时表版本目录是安全的。我想他们不会自动删除它们,以便您可以在错误地删除数据时恢复数据。即使禁用了自动快照,我也不知道如何自动删除它们。
我认为没有命令将所有快照文件写入单个目录。根据快照文档,"快照完成后,您可以根据需要将备份文件移动到其他位置,也可以将它们留在原位。"因此,应由程序开发人员决定如何处理归档快照文件。