2016-02-27 110 views
0

我想从Cassandra升级到最新的Datastax Enterprise,除了事实上我无法获取我的数据,一切都很顺利。升级后恢复数据Cassandra

基本上,升级后我有一个干净的cassandra,然后我重新创建模式,并尝试以某种方式将旧数据库中剩下的文件链接到新数据库。

这就是我现在所拥有的在/var/lib/cassandra/data/wowch目录,例如:

drwxr-x--- 4 cassandra cassandra 4.0K Feb 27 13:05 users-247834809d2011e58d82b7a748b1d9c2/ 
drwxr-xr-x 2 cassandra cassandra 4.0K Feb 27 18:53 users-f41a5300dd5611e58bc7b7a748b1d9c2/ 

我得到,旧的目录是什么在升级之前的分贝。它包含了一些数据库文件:

total 144K 
drwxr-x--- 4 cassandra cassandra 4.0K Feb 27 13:05 ./ 
drwxr-x--- 60 cassandra cassandra 20K Feb 27 14:35 ../ 
drwxr-x--- 2 cassandra cassandra 4.0K Dec 7 21:21 backups/ 
-rwxr-x--- 2 cassandra cassandra 51 Jan 20 00:05 ma-46-big-CompressionInfo.db* 
-rwxr-x--- 2 cassandra cassandra 828 Jan 20 00:05 ma-46-big-Data.db* 
-rwxr-x--- 2 cassandra cassandra 10 Jan 20 00:05 ma-46-big-Digest.crc32* 
-rwxr-x--- 2 cassandra cassandra 16 Jan 20 00:05 ma-46-big-Filter.db* 
-rwxr-x--- 2 cassandra cassandra 83 Jan 20 00:05 ma-46-big-Index.db* 
-rwxr-x--- 2 cassandra cassandra 4.9K Jan 20 00:05 ma-46-big-Statistics.db* 
-rwxr-x--- 2 cassandra cassandra 92 Jan 20 00:05 ma-46-big-Summary.db* 
-rwxr-x--- 2 cassandra cassandra 92 Jan 20 00:05 ma-46-big-TOC.txt* 
-rwxr-x--- 2 cassandra cassandra 43 Feb 12 15:05 ma-47-big-CompressionInfo.db* 
-rwxr-x--- 2 cassandra cassandra 41 Feb 12 15:05 ma-47-big-Data.db* 
-rwxr-x--- 2 cassandra cassandra 10 Feb 12 15:05 ma-47-big-Digest.crc32* 
-rwxr-x--- 2 cassandra cassandra 16 Feb 12 15:05 ma-47-big-Filter.db* 
-rwxr-x--- 2 cassandra cassandra 20 Feb 12 15:05 ma-47-big-Index.db* 
-rwxr-x--- 2 cassandra cassandra 4.5K Feb 12 15:05 ma-47-big-Statistics.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 15:05 ma-47-big-Summary.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 15:05 ma-47-big-TOC.txt* 
-rwxr-x--- 2 cassandra cassandra 43 Feb 12 16:05 ma-48-big-CompressionInfo.db* 
-rwxr-x--- 2 cassandra cassandra 169 Feb 12 16:05 ma-48-big-Data.db* 
-rwxr-x--- 2 cassandra cassandra 10 Feb 12 16:05 ma-48-big-Digest.crc32* 
-rwxr-x--- 2 cassandra cassandra 16 Feb 12 16:05 ma-48-big-Filter.db* 
-rwxr-x--- 2 cassandra cassandra 20 Feb 12 16:05 ma-48-big-Index.db* 
-rwxr-x--- 2 cassandra cassandra 4.9K Feb 12 16:05 ma-48-big-Statistics.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 16:05 ma-48-big-Summary.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 16:05 ma-48-big-TOC.txt* 
-rwxr-x--- 1 cassandra cassandra 31 Dec 7 21:26 manifest.json* 
drwxr-x--- 3 cassandra cassandra 4.0K Feb 27 13:05 snapshots/ 

我试图从这里复制所有的东西到users-f41a5300dd5611e58bc7b7a748b1d9c2/目录并运行nodetool repairnodetool refresh -- wowch users,但没有成功 - 数据仍然没有加载。

我忘记了什么吗?什么是正确的做法以及如何获取数据?

回答

0

这有可能是你碰到的this issue,但没有更多的信息,我不能肯定地说。

您还没有提供关于开始和结束的版本的信息。多一点信息会非常有帮助。你能否澄清一下 - 你是从社区Cassandra升级到DSE吗?我不能从你的问题措辞的方式来分辨。

检查的东西:您是否拥有旧版本的令牌分配?我没有使用vnodes,我发现在备份/恢复群集后,我必须在cassandra.yaml中手动设置initial_token。确保cassandra拥有所有的dirs和文件。导入架构后,停止DSE,然后清空commitlog目录的内容。如有必要,将数据移动到新文件夹中,然后重新启动DSE。希望这可以帮助。

+0

是的,我从社区Cassandra(2.2)更新到DSE(4.8)。 –

+0

和我完全复制了旧配置中的配置文件到新配置文件,所以最初的令牌在这里不是这种情况(此外,我没有指定它,它保留为默认值) –

+0

如果您有输出' nodetool ring',您将看到自动分配的节点的令牌范围。在您还原的系统上,您必须在每个节点上编辑cassandra.yaml并手动分配相同的令牌。否则,当分区器试图查询环时,节点将不知道它们负责的令牌环的哪一部分。 – LHWizard