【问题标题】:Cassandra restore database to a newer versionCassandra 将数据库恢复到较新版本
【发布时间】:2014-04-15 07:59:01
【问题描述】:

我从 cassandra 1.2.4 的 keyspace 获取备份。当我在 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 吗?

【问题讨论】:

    标签: cassandra database-backups database-restore


    【解决方案1】:

    您不能直接从 1.2.4 升级到 2.0.5。您必须进行滚动升级。您必须先升级到 1.2.15,然后再升级到 2.0.5。

    http://www.datastax.com/documentation/upgrade/doc/upgrade/cassandra/upgradeC_c.html

    【讨论】:

      【解决方案2】:

      更新

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

      要点

      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 中的某些设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-20
        • 2011-07-30
        • 1970-01-01
        相关资源
        最近更新 更多