Cassandra将数据库恢复到较新版本

时间:2014-04-15 07:59:02

标签: cassandra database-backups database-restore

我从cassandra 1.2.4的密钥空间获得备份。当我在cassandra 2.0.5版本中恢复快照时,我无法启动cassandra服务。

我收到此错误:

could not access pidfile for Cassandra

当cassandra目录的修复权限再次启动cassandra时,它没有运行。

在system.log文件中有例外:

ERROR [SSTableBatchOpen:1] 2014-04-15 12:25:45,797 SSTableReader.java (line 268) Corrupt sstable /var/lib/cassandra/data/keyspace/users667409781968744488$ java.io.EOFException

有什么问题?我该如何解决这个问题?

是因为将Cassandra快照从1.2.4恢复到2.0.5吗?

1 个答案:

答案 0 :(得分:0)

<强>更新

  1. 从官方网站下载Cassandra版本1.2.13和2.0.5。打开包装。在下载Cassandra的两个版本中配置cassandra.yaml。以现有(旧)版本cassandra.yaml。
  2. 为基础
  3. 为旧的Cassandra制作快照:nodetool snapshot。
  4. 停止录制单元(读取将继续工作):nodetool drain。
  5. 停止老卡桑德拉。
  6. 在新版本1.2.13中复制当前(旧)Cassandra的数据。运行它(1.2.13)。
  7. 执行Cassandra 1.2.13更新命令表格式:nodetool upgradesstables -a。
  8. 将数据从Cassandra 1.2.13复制到Cassandra 2.0.5。
  9. 精细点

    1. 在2.0.5中默认包含虚拟主机 - vnodes(在cassandra.yaml中记录“num_tokens:256”)。
    2. 在2.0.5记录中,“index_interval:128”从文件cassandra.yaml中分解为表的级别属性。
    3. 在2.0.5中,以前版本的cassandra.yaml中的某些设置不存在。