使用 Zmanda Recovery Manager 恢复 MySQL 表

如果有人不小心删除了 MySQL 中的一个关键表,应用程序将无法工作。解决此问题的方法是使用(开源)Zmanda Recovery Manager。您是一名 MySQL 数据库管理员。您定期备份 MySQL 数据库。有人删除了对 MySQL 应用程序至关重要的表(例如,SugarCRM 应用程序中的“accounts”表)。MySQL 应用程序不再工作。您如何从这种情况中恢复?答案是 MySQL 二进制日志。二进制日志跟踪对数据库的所有更新,对数据库性能的影响最小。必须在服务器上启用 MySQL 二进制日志。您可以使用 mysqlbinlog MySQL 命令从二进制日志中恢复。一个更全面的解决方案是使用 Zmanda Recovery Manager for MySQL。 mysql-zrm 工具允许用户浏览二进制日志并有选择地从增量备份中恢复数据库

      # mysql-zrm --action parse-binlogs   --source-directory=/var/lib/mysql
      /sugarcrm/20060915101613
      Log filename                 | Log Position | Timestamp         | Event Type |    Event
      /var/lib/mysql/my-bin.000015 | 11013        | 06-09-12 06:20:03 | Xid = 4413 | COMMIT;
      /var/lib/mysql/my-bin.000015 | 11159        | 06-09-12 06:20:03 | Query      | DROP TABLE IF EXISTS `accounts`;

在这里,我们对 SugarCRM 数据库中没有 DROP customer 表的增量备份进行选择性恢复。执行两个选择性恢复命令,从 2006 年 9 月 15 日完成的增量备份中恢复,而不执行日志位置 11159 处的数据库事件 DROP TABLE

      # mysql-zrm --action restore  --backup-set sugarcrm \
         --source-directory=/var/lib/mysql/ sugarcrm/20060915101613/ \
         --stop-position 11014
      # mysql-zrm --action restore   --backup-set sugarcrm \
         --source-directory=/var/lib/mysql/ sugarcrm/20060915101613/ \
         --start-position 11160

有关更多信息,请参阅 Zmanda Recovery Manager for MySQL:http://mysqlbackup.zmanda.com

加载 Disqus 评论