使用 Zmanda Recovery Manager 恢复 MySQL 表
发布于 2008 年 5 月 12 日
如果有人不小心删除了 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。