更新时间:2025-07-16 GMT+08:00
分享

MySQL 逻辑备份恢复

  • 恢复时任务会报错“不覆盖原库模式,需要手动删除原库,然后进行恢复。”异常号:416481288。

    问题原因

    恢复目的地已存在要恢复的数据源同名数据库。

    解决方案

    如果要恢复同名数据库到目的地,可通过以下方法恢复成功:

    • 方法一:恢复时开启“覆盖现有数据库”。
    • 方法二:恢复前删除目的地同名数据库,恢复时可以不开启“覆盖现有数据库”。
      图1 恢复开启覆盖现有数据库
  • 异机恢复失败,报错“发送管道信息失败”
    图2 恢复失败报错

    问题原因

    备份数据库的某个或某些分区表指定了独立数据文件存放的路径,但是异机上没有此路径。

    解决方案

    手动在异机上创建该目录,然后再执行恢复。

  • MySQL自定义函数恢复失败

    问题原因

    代码不支持MySQL自定义函数恢复。

    解决方案

    恢复任务结束后,在MySQL自定义函数未备份中提到的/tmp目录下,有一个数据库命名的.txt文件,将.txt文件中的数据库命令在客户端生产机的数据库中手动执行,即可创建自定义函数。

  • 增量备份时间点恢复失败,报错“运用MySQL binlog日志出现异常”。
    图3 恢复失败报错

    问题原因

    binlog应用过程中,由于数据库线程状态异常、包含大事务、有长时间的锁等待信息或者长时间未提交的事务导致的恢复失败。

    解决方案

    修改配置文件,使用MySQL工具执行恢复,具体步骤如下:

    1. 修改mysqlEnv.config配置文件。
      图4 修改配置文件

      修改参数MySQLBinlogPath = ,填写MySQLbinlog应用工具真实地址。

      图5 修改对应参数
      图6 查看binlog工具路径
    1. 使用增量时间点再次发起恢复。
  • MySQL逻辑备份D2C、D2D2C、D2D2T恢复失败,抛错数据库恢复出现异常,如图所示。
    图7 恢复失败

    问题原因

    当单条SQL语句大于4MiB 或8MiB时,数据库记录的属性值存储里未标记。

    解决

    该场景暂不支持,如果已出现该问题,可以出补丁将数据恢复出来。

相关文档