MySQL 逻辑备份恢复
- 恢复时任务会报错“不覆盖原库模式,需要手动删除原库,然后进行恢复。”异常号:416481288。
恢复目的地已存在要恢复的数据源同名数据库。
解决方案
如果要恢复同名数据库到目的地,可通过以下方法恢复成功:
- 方法一:恢复时开启“覆盖现有数据库”。
- 方法二:恢复前删除目的地同名数据库,恢复时可以不开启“覆盖现有数据库”。
图1 恢复开启覆盖现有数据库
- 异机恢复失败,报错“发送管道信息失败”。
图2 恢复失败报错
问题原因
备份数据库的某个或某些分区表指定了独立数据文件存放的路径,但是异机上没有此路径。
解决方案
手动在异机上创建该目录,然后再执行恢复。
- MySQL自定义函数恢复失败
代码不支持MySQL自定义函数恢复。
解决方案
恢复任务结束后,在MySQL自定义函数未备份中提到的/tmp目录下,有一个数据库命名的.txt文件,将.txt文件中的数据库命令在客户端生产机的数据库中手动执行,即可创建自定义函数。
- 增量备份时间点恢复失败,报错“运用MySQL binlog日志出现异常”。
图3 恢复失败报错
问题原因
binlog应用过程中,由于数据库线程状态异常、包含大事务、有长时间的锁等待信息或者长时间未提交的事务导致的恢复失败。
解决方案
修改配置文件,使用MySQL工具执行恢复,具体步骤如下:
- 修改mysqlEnv.config配置文件。
图4 修改配置文件
修改参数MySQLBinlogPath = ,填写MySQLbinlog应用工具真实地址。
图5 修改对应参数图6 查看binlog工具路径
- 使用增量时间点再次发起恢复。
- 修改mysqlEnv.config配置文件。
- MySQL逻辑备份D2C、D2D2C、D2D2T恢复失败,抛错数据库恢复出现异常,如图所示。
图7 恢复失败
问题原因
当单条SQL语句大于4MiB 或8MiB时,数据库记录的属性值存储里未标记。
解决方案
该场景暂不支持,如果已出现该问题,可以出补丁将数据恢复出来。