首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nodetool备份cassandra密钥空间

使用nodetool备份cassandra密钥空间
EN

Stack Overflow用户
提问于 2016-02-14 13:22:35
回答 1查看 12.2K关注 0票数 5

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

代码语言:javascript
复制
nodetool snapshot <keyspace name> 

创建我的密钥空间的快照。

该命令的输出是:

代码语言:javascript
复制
nodetool snapshot my_keyspace                       
Requested creating snapshot(s) for [my_keyspace] with snapshot name [1455455429118]
Snapshot directory: 1455455429118

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

代码语言:javascript
复制
/var/lib/cassandra/data/my_keyspace/<table names>/snapshots/1455455429118

但是,表名的末尾有一些散列值。

我不知道这是从哪里来的,也不确定这个价值是否总是一样的。例如,表名为user_agents,快照目录为:

代码语言:javascript
复制
/var/lib/cassandra/data/my_keyspace/user_agents-147c8cc0d31c11e5aacb3b02dd594b59/snapshots/1455455429118

我不知道147c8cc0d31c11e5aacb3b02dd594b59代表什么。

我正在尝试自动化这个过程,如果我不知道这个随机的散列值,就不可能知道要选择哪个目录。有没有任何方法可以禁用此命令或从nodetool命令的输出中破译此操作?

EN

回答 1

Stack Overflow用户

发布于 2016-02-14 18:40:17

从文件上看。

拍快照

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

快照首先刷新所有内存中的写入磁盘,然后为每个键空间创建SSTable文件的硬链接。您必须在节点上有足够的空闲磁盘空间,以容纳数据文件的快照。一个快照只需要很少的磁盘空间。但是,快照会导致磁盘使用随着时间的推移而增长得更快,因为快照可以防止旧的过时的数据文件被删除。快照完成后,如果需要,可以将备份文件移动到另一个位置,也可以将它们放在适当的位置。

运行nodetool快照命令,指定主机名、JMX端口和键空间。

代码语言:javascript
复制
$ nodetool -h localhost -p 7199 snapshot mykeyspace

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

Cassandra在获取快照之前刷新节点,获取快照,并将数据存储在数据目录中每个键空间的快照目录中。如果不使用-t选项指定快照目录的名称,则Cassandra将使用快照的时间戳(例如1391460334889 )命名该目录。升级Cassandra之前,请遵循快照的步骤。升级时,备份所有键空间。有关快照的更多信息,请参见Apache文档

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

示例:单表快照

只拍摄音乐键空间中的播放列表表的快照。例如,在Linux上的Cassandra bin目录中:

代码语言:javascript
复制
$ ./nodetool snapshot -cf playlists music

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

卡珊德拉创建名为1391461910600的快照目录,该目录包含

代码语言:javascript
复制
/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,后面跟着快照名称。
  • -将可能被误认为选项的选项和论点分开。
  • 键空间是使用-cf选项时所需的一个键空间名称,或者一个或多个可选的键空间名称,由空格分隔。

更新::

代码语言:javascript
复制
/var/lib/cassandra/data/music/playlists-bf8118508cfd11e3972273ded3cb6170/snapshots

playlists-bf8118508cfd11e3972273ded3cb6170,-bf8118508cfd11e3972273ded3cb6170UUID

因此,它在way.Ad中生成了一些选项,可以监视正在编写的存储库,并逐步备份这些文件。

看看汤匙,& 卡桑德拉快照

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35392285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档