使用nodetool备份cassandra密钥空间

时间:2016-02-14 13:22:35

标签: cassandra

我在Ubuntu 14.04上使用Cassandra。从文档中,我可以看到运行命令:

nodetool snapshot <keyspace name> 

创建我的键空间的快照。

命令的输出是:

nodetool snapshot my_keyspace                       
Requested creating snapshot(s) for [my_keyspace] with snapshot name [1455455429118]
Snapshot directory: 1455455429118

根据文档,快照应该出现在目录中:

/var/lib/cassandra/data/my_keyspace/<table names>/snapshots/1455455429118

但是,表名末尾有一些哈希值。

我不确定它来自何处,也不确定该值是否始终相同。例如,表名是user_agents,快照目录是:

/var/lib/cassandra/data/my_keyspace/user_agents-147c8cc0d31c11e5aacb3b02dd594b59/snapshots/1455455429118

我不确定147c8cc0d31c11e5aacb3b02dd594b59代表什么。

我正在尝试自动化这个过程,如果我不知道这个随机哈希值,就不可能知道要选择哪个目录。有没有办法从nodetool命令的输出中禁用它或解密它?

1 个答案:

答案 0 :(得分:3)

来自文档。

拍摄快照

使用nodetool snapshot命令为每个节点拍摄快照。要获取全局快照,请使用并行ssh实用程序(如pssh)运行nodetool snapshot命令。

  

快照首先刷新所有内存中的磁盘写入,然后创建一个   每个键空间的SSTable文件的硬链接。你必须有足够的   节点上的可用磁盘空间,以容纳您的快照   数据文件。单个快照需要很少的磁盘空间。然而,   快照可能会导致磁盘使用量随时间增长更快   因为快照可以防止旧的过时数据文件   删除。快照完成后,您可以移动备份文件   如果需要,可以到另一个地方,或者你可以将它们留在原地。

运行nodetool snapshot命令,指定主机名,JMX端口和密钥空间。

$ nodetool -h localhost -p 7199 snapshot mykeyspace

快照在data_directory_location/keyspace_name/table_name/snapshots/snapshot_name目录中创建。每个快照目录都包含许多.db文件,其中包含快照时的数据。

  

Cassandra在拍摄快照之前刷新节点,然后拍摄   快照,并将数据存储在每个的快照目录中   数据目录中的键空间。如果您没有指定a的名称   快照目录使用-t选项,Cassandra命名目录   使用快照的时间戳,例如1391460334889.关注   升级Cassandra之前拍摄快照的过程。什么时候   升级,备份所有键空间。有关快照的更多信息,   见Apache documentation

如果未指定快照名称,Cassandra会使用快照的timestamp命名快照目录。如果键空间不包含数据,则不会创建空目录。

示例:单表快照

仅拍摄音乐键区中的播放列表表格。在Linux上,在Cassandra bin目录中,例如:

$ ./nodetool snapshot -cf playlists music

Requested creating snapshot(s) for [music] with snapshot name [1391461910600]
Snapshot directory: 1391461910600

Cassandra创建名为1391461910600的快照目录,其中包含

中播放列表表的备份数据
/var/lib/cassandra/data/music/playlists-bf8118508cfd11e3972273ded3cb6170/snapshots

nodetool <options> snapshot ( 
  ( -cf <table> | --column-family <table> ) 
  ( -t <tag> | --tag <tag> )
  -- ( <keyspace> ) | ( <keyspace> ... )
)
  • 选项包括:

  • -h | --host)|

  • -p | --port
  • -pw | --password
  • -u | --username

  • -cf--column-family,后跟要备份的表的名称。

  • -t--tag,后跟快照名称。

  • - 分隔可能被误认为选项的选项和参数。

  • keyspace是使用-cf时所需的一个键空间名称 选项,或一个或多个可选的键空间名称,用空格分隔。

<强> UPDATE ::

/var/lib/cassandra/data/music/playlists-bf8118508cfd11e3972273ded3cb6170/snapshots

此处playlists-bf8118508cfd11e3972273ded3cb6170, - bf8118508cfd11e3972273ded3cb6170 UUID

因此它以这种方式生成.Ad有一些选项可以监视正在编写的sstables,并逐步备份这些文件。

查看 tablesnap ,&amp; cassandra snapshotter