如何将键空间作为cassandra中的转储?

时间:2013-11-27 05:24:05

标签: cassandra

我需要从服务器获取一个密钥空间作为转储并将该转储恢复到我当地的cassandra, 我知道在mysql中做但在nosql中怎么办? 我从网站上了解到nodetool,snapshot和csv文件格式可以实现这一点,但我无法得到它?

3 个答案:

答案 0 :(得分:12)

您可以使用“nodetool”执行此操作。有关参考文档的详细信息,请查看此处:http://www.datastax.com/docs/1.1/backup_restore

您需要执行以下步骤:

  1. 使用以下内容获取密钥空间的“快照”:nodetool snapshot <keyspace-name>。这在服务器上运行,您要在其中生成“快照”。它会这样做,为每个密钥空间表存储一个“快照”。
  2. 将“快照”复制到本地服务器。为每个键空间表执行此操作:<cassandra-dir>/data/<keyspace-name>/<table-name>/snapshots/(查找“最新”拍摄的快照 - 当您拍摄快照时,它会告诉您拍摄快照的“名称”/“ID”)。
  3. 在本地服务器中,在放置“服务器”快照之前,请执行以下操作:停止cassandra,删除该“键空间”的内容(对于每个键空间表:<cassandra-dir>/data/<keyspace>/<table-name>/),然后放置“服务器” “每个”keyapce表“中的快照(直接在<cassandra-dir>/data/<keyspace>/<table-name>/中,而不是在”snapshot“目录中)。
  4. 重新启动本地服务器,您应该拥有本地服务器中服务器的数据。
  5. HTH。

答案 1 :(得分:0)

通过快照来做到这一点..

拍摄快照的命令 -

<-path to cassandra's bin folder> nodetool -h <-server host name/ IP> -p <-server port> snapshot

这将在VAR文件夹中创建一个SNAPSHOT目录,该目录包含快照

服务器的当前数据库,您可以将其用作本地服务器的转储。

答案 2 :(得分:0)

虽然nodetool是首选方法,但是,如果您不能直接访问基础文件结构,我建议使用类似以下内容的方法:cassandradump

$ python cassandradump.py --keyspace system --export-file dump.cql
Exporting schema for keyspace system
Exporting schema for column family system.peers
Exporting data for column family system.peers
Exporting schema for column family system.range_xfers
Exporting data for column family system.range_xfers
Exporting schema for column family system.schema_columns
Exporting data for column family system.schema_columns
...