我在Ubuntu 14.04上使用Cassandra.从文档中,我可以看到运行命令:
nodetool snapshot <keyspace name>
Run Code Online (Sandbox Code Playgroud)
创建我的键空间的快照.
该命令的输出是:
nodetool snapshot my_keyspace
Requested creating snapshot(s) for [my_keyspace] with snapshot name [1455455429118]
Snapshot directory: 1455455429118
Run Code Online (Sandbox Code Playgroud)
根据文档,快照应该出现在目录中:
/var/lib/cassandra/data/my_keyspace/<table names>/snapshots/1455455429118
Run Code Online (Sandbox Code Playgroud)
但是,表名末尾有一些哈希值.
我不确定它来自何处,也不确定该值是否始终相同.例如,表名是user_agents,快照目录是:
/var/lib/cassandra/data/my_keyspace/user_agents-147c8cc0d31c11e5aacb3b02dd594b59/snapshots/1455455429118
Run Code Online (Sandbox Code Playgroud)
我不确定147c8cc0d31c11e5aacb3b02dd594b59代表什么.
我试图自动化这个过程,如果我不知道这个随机哈希值,就不可能知道要选择哪个目录.有没有办法从nodetool命令的输出中禁用它或解密它?
来自文档。
使用nodetool snapshot 命令为每个节点拍摄快照。要拍摄全局快照,请使用并行 ssh 实用程序(例如 pssh)运行 nodetool snapshot 命令。
快照首先将所有内存中的写入刷新到磁盘,然后为每个键空间创建 SSTable 文件的硬链接。节点上必须有足够的可用磁盘空间来容纳数据文件的快照。单个快照需要很少的磁盘空间。但是,快照可能会导致磁盘使用量随着时间的推移增长得更快,因为快照可以防止删除旧的过时数据文件。快照完成后,您可以根据需要将备份文件移动到其他位置,也可以将它们保留在原处。
运行 nodetool snapshot 命令,指定主机名、JMX 端口和键空间。
$ nodetool -h localhost -p 7199 snapshot mykeyspace
Run Code Online (Sandbox Code Playgroud)
快照是在data_directory_location/keyspace_name/table_name/snapshots/snapshot_name目录中创建的。每个快照目录都包含许多 .db 文件,其中包含快照时的数据。
Cassandra 在拍摄快照之前刷新节点,拍摄快照,并将数据存储在数据目录中每个键空间的快照目录中。如果未使用 -t 选项指定快照目录的名称,Cassandra 将使用快照的时间戳来命名目录,例如 1391460334889。请按照升级 Cassandra 之前拍摄快照的过程进行操作。升级时,备份所有密钥空间。有关快照的更多信息,请参阅Apache 文档。
如果您未指定快照名称,Cassandra 将使用快照的名称来命名快照目录timestamp。如果键空间不包含数据,则不会创建空目录。
示例:单表快照
仅拍摄音乐键空间中的播放列表表的快照。在 Linux 上,在 Cassandra bin 目录中,例如:
$ ./nodetool snapshot -cf playlists music
Requested creating snapshot(s) for [music] with snapshot name [1391461910600]
Snapshot directory: 1391461910600
Run Code Online (Sandbox Code Playgroud)
Cassandra 创建名为 1391461910600 的快照目录,其中包含播放列表表的备份数据
/var/lib/cassandra/data/music/playlists-bf8118508cfd11e3972273ded3cb6170/snapshots
nodetool <options> snapshot (
( -cf <table> | --column-family <table> )
( -t <tag> | --tag <tag> )
-- ( <keyspace> ) | ( <keyspace> ... )
)
Run Code Online (Sandbox Code Playgroud)
选项有:
( -h| --host) |
-p| --port)-pw| --password)( -u| --username)
-cf、 或--column-family,后跟要备份的表的名称。
-t或--tag,后跟快照名称。
-- 分隔选项和可能被误认为选项的参数。
keyspace 是使用该选项时所需的一个键空间名称 -cf
,或者是一个或多个可选键空间名称,以空格分隔。
更新::
/var/lib/cassandra/data/music/playlists-bf8118508cfd11e3972273ded3cb6170/snapshots
Run Code Online (Sandbox Code Playgroud)
这里playlists-bf8118508cfd11e3972273ded3cb6170,-bf8118508cfd11e3972273ded3cb6170是UUID
所以它是以这种方式生成的。有一些选项可以监视正在写入的 sstables,并增量备份这些文件。
查看tablesnap和cassandra snapshotter。
| 归档时间: |
|
| 查看次数: |
8615 次 |
| 最近记录: |