时间点恢复(即恢复自给定时间点以来所做的数据更改)是在恢复完整备份(将服务器恢复到备份时的状态)之后执行的。使用NDB Cluster和NDB Cluster Replication执行NDB Cluster表的时间点恢复可以使用本机完成NDB.
数据备份(通过发出拍摄创建备份
在ndb_mgm客户)并恢复ndb_binlog_index.
表(来自使用的垃圾箱mysqldump.)。
要执行NDB集群的时间点恢复,有必要按照以下步骤操作:
备份
NDB.
集群中的数据库,使用开始备份
命令的ndb_mgm客户(参见第23.5.8节“NDB集群的在线备份”)。在一些稍后的点,在恢复群集之前,请备份
mysql.ndb_binlog_index.
表格它可能是最容易使用的mysqldump.为此任务。此时还备份了二进制日志文件。此备份应定期更新 - 甚至每小时 - 根据您的需求。
(灾难性的失败或错误发生。)
找到最后一个已知的良好备份。
清除数据节点文件系统(使用NDBD.
——初始
或者ndbmtd——初始
)。笔记从NDB 8.0.21开始,磁盘数据表空间和日志文件被删除
——初始
.以前,需要手动删除这些文件。执行ndb_restore.,恢复所有数据。您必须包含
- restore-epoch
选项,当你运行ndb_restore., 所以这样ndb_apply_status.
表格正确地填充。(看第23.4.23节“ndb_restore - 恢复NDB群集备份”, 想要查询更多的信息。)恢复
ndb_binlog_index.
表来自输出mysqldump.如有必要,请从备份恢复二进制日志文件。找出最近应用的时代——也就是最大值
时代
的列值。ndb_apply_status.
表 - 作为用户变量@latest_poch
(强调):选择@latest_poch:=来自mysql.ndb_apply_status的max(epoch);
查找最新的二进制日志文件(
@first_file.
)和位置(位置
该文件中的列值)对应于的此文件中@latest_poch
在ndb_binlog_index.
桌子:选择位置,@first_file.:=来自mysql.ndb_binlog_index的文件,其中epoch>@latest_pochORDER BY epoch ASC LIMIT 1;
使用mysqlbinlog.,重放从给定文件和位置直到故障点的二进制日志事件。(看第4.6.9节“mysqlbinlog - 处理二进制日志文件的实用程序”。)
也可以看看第7.5节,“时间点(增量)恢复”,有关二进制日志,复制和增量恢复的更多信息。