文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  使用 NDB 集群复制进行时间点恢复

25.7.9.2 使用 NDB 集群复制进行时间点恢复

时间点恢复(即恢复自给定时间点以来进行的数据更改)是在还原完整备份(将服务器返回到创建备份时的状态)后执行的。可以使用原生 NDB 数据备份(通过在 ndb_mgm 客户端中发出 CREATE BACKUP 获取)和还原 ndb_binlog_index 表(从使用 mysqldump 创建的转储)来完成使用 NDB 集群和 NDB 集群复制对 NDB 集群表进行时间点恢复。

要执行 NDB 集群的时间点恢复,需要按照此处显示的步骤操作

  1. 使用 ndb_mgm 客户端中的 START BACKUP 命令备份集群中的所有 NDB 数据库(请参阅 第 25.6.8 节“NDB 集群的在线备份”)。

  2. 在稍后的某个时间点,在还原集群之前,对 mysql.ndb_binlog_index 表进行备份。使用 mysqldump 来完成此任务可能是最简单的。同时备份二进制日志文件。

    应定期更新此备份(甚至可能每小时更新一次),具体取决于您的需求。

  3. 发生灾难性故障或错误。)

  4. 找到最后一个已知的良好备份。

  5. 清除数据节点文件系统(使用 ndbd --initialndbmtd --initial)。

    注意

    --initial 也会删除磁盘数据表空间和日志文件。

  6. mysql.ndb_binlog_index 表使用 DROP TABLETRUNCATE TABLE

  7. 执行 ndb_restore,还原所有数据。运行 ndb_restore 时,必须包含 --restore-epoch 选项,以便正确填充 ndb_apply_status 表。(有关更多信息,请参阅 第 25.5.23 节“ndb_restore — 还原 NDB 集群备份”。)

  8. mysqldump 的输出中还原 ndb_binlog_index 表,并从备份中还原二进制日志文件(如有必要)。

  9. ndb_apply_status 表中找到最近应用的纪元(即,最大 epoch 列值)作为用户变量 @LATEST_EPOCH(已强调)

    SELECT @LATEST_EPOCH:=MAX(epoch)
        FROM mysql.ndb_apply_status;
  10. ndb_binlog_index 表中找到与 @LATEST_EPOCH 对应的最新二进制日志文件(@FIRST_FILE)和位置(Position 列值)

    SELECT Position, @FIRST_FILE:=File
        FROM mysql.ndb_binlog_index
        WHERE epoch > @LATEST_EPOCH ORDER BY epoch ASC LIMIT 1;
  11. 使用 mysqlbinlog,从给定文件和位置重放二进制日志事件,直至发生故障。(请参阅 第 6.6.9 节“mysqlbinlog — 用于处理二进制日志文件的实用程序”。)

有关二进制日志、复制和增量恢复的更多信息,请参阅 第 9.5 节“时间点(增量)恢复”