Cassandra备份包括模式

时间:2018-02-27 12:22:36

标签: cassandra snapshot recovery

我感兴趣的有两种类型的备份技术:

a)SCHEMA备份,恢复数据库架构(添加或删除列,更改列类型,添加表等)

b)数据备份,用于恢复数据(更新,从一个表读取到另一个表)。

让我举例说明:

  1. 首先,我创建了实体' customer'
  2. 客户

    | id |名称|

    | 11 |杰克|

    1. 现在我使用nodetool
    2. 创建快照
    3. 之后我改变了表格,添加了一个新列' test'
    4. | id |名字|测试|

      | 11 |杰克|值|

      1. 使用nodetool制作第二个快照
      2. 现在我尝试通过将快照数据复制到正确的目录(as described here)来恢复第一个快照,不幸的是我得到了:
      3. | id |名字|测试|

        | 11 |杰克| NULL |

        ...而不是预期......

        | id |名称|

        | 11 |杰克|

        如何获得预期的第一张快照?

        更新1

        相关问题:

2 个答案:

答案 0 :(得分:2)

要在同一状态恢复,还需要恢复系统密钥空间。例如,检查system.schema_columns,您将看到表结构。

另外,请记住,如果只想恢复一个表,还需要表模式。因此,在快照之前运行desc表。

在恢复快照之前,您需要使用架构。

答案 1 :(得分:1)

使用以下命令导出特定键空间的架构:

cqlsh 10.0.0.1 -u username -e "DESC keyspace testkeyspace" > testkeyspace.cql

还使用以下命令导入架构: 打开包含testkeyspace.cql fie的目录中的cqlsh,然后运行以下命令:

source 'testkeyspace.cql';