Cassandra键空间恢复
我已使用此链接备份了我在cassandra中的密钥空间 为了恢复,我编写了一个脚本,它从备份文件夹中复制内容,备份文件夹中包含快照并粘贴到/var/lib/cassandra/data/mykeypsace/下的相应目录中,但是当我看到mykeyspace的表内容时,没有任何内容被恢复。 例如,备份文件夹:path/mykeyspace/tableOne/snapshot/all contents to var/lib/cassandra/data/mykeyspace/tableOne/all contents 我要遵循的恢复过程:Cassandra键空间恢复,cassandra,ubuntu-16.04,restore,cassandra-3.0,Cassandra,Ubuntu 16.04,Restore,Cassandra 3.0,我已使用此链接备份了我在cassandra中的密钥空间 为了恢复,我编写了一个脚本,它从备份文件夹中复制内容,备份文件夹中包含快照并粘贴到/var/lib/cassandra/data/mykeypsace/下的相应目录中,但是当我看到mykeyspace的表内容时,没有任何内容被恢复。 例如,备份文件夹:path/mykeyspace/tableOne/snapshot/all contents to var/lib/cassandra/data/mykeyspace/tableOne/all
其他细节:cqlsh 5.0.1 | Cassandra 3.11.3 | Ubuntu16.04讨厌成为一个杀手锏,但备份过程并不像复制sstables那么简单。您需要跟踪哪些节点实际生成了特定的SSTable(或包含它的快照) 您需要: 备份
nodetool-ring
或nodetool-info-T
)此示例:
初始令牌:1,2
rm/var/lib/Cassandra/data
(在每个节点上)nodetool refresh
使Cassandra加载新复制的数据。(在每个节点上)$ nodetool ring
Datacenter: datacenter1
==========
Address Rack Status State Load Owns Token
6
127.0.0.1 rack1 Up Normal 156.55 MiB 33.33% 1
127.0.0.1 rack1 Up Normal 156.55 MiB 33.33% 2
127.0.0.2 rack1 Up Normal 156.54 MiB 33.33% 3
127.0.0.2 rack1 Up Normal 156.54 MiB 33.33% 4
127.0.0.3 rack1 Up Normal 156.55 MiB 33.33% 5
127.0.0.3 rack1 Up Normal 156.55 MiB 33.33% 6
从快照恢复时,我必须为每个节点设置以下初始\u令牌:
# node 127.0.0.1's cassandra.yaml
initial_token: 1,2
# node 127.0.0.2's cassandra.yaml
initial_token: 3,4
# node 127.0.0.3's cassandra.yaml
initial_token: 5,6
这通常是自动的,因为虚拟令牌的默认设置是256 当sstables就位时,您应该启动Cassandra,并且只运行
nodetool refresh
(这应该适用于实时集群)。sstable必须在它们最初所属的正确节点上恢复。@Mandraenke我发现sstable_活动。。。。在cassandra的系统文件夹下。我应该把它们也换了,然后开始卡桑德拉吗?天哪!如此忙碌的过程?我确实运行了'ring'有256行o/p,但令牌是个位数,我猜它们是时间戳示例'Token:-9156630274167109527'。顺便问一下,当你说每个节点时,我怎样才能得到节点的信息?因为我在ubuntu pc上运行它,我只需要备份和恢复我的1个数据库(keyspace)。即使要恢复1个键空间,我也必须执行您描述的步骤?@AmitL是的,即使是一个键空间。无论您要备份50 KSs还是1个表,该过程都是相同的。此恢复过程非常复杂,因为它是一个完整的群集恢复。如果某个节点发生故障,而您只希望恢复该节点,则应转而依赖复制因子和cassandra修复过程。关于令牌大小,其范围为-2^63到2^63-1