Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Using Backups for Recovery

9.3.2 从备份中恢复

现在,假设我们在周三上午8点遇到了灾难性的意外退出,需要从备份中恢复。要恢复,首先我们恢复最后一个完整的备份(来自星期天下午1点的备份)。完整备份文件只是一个SQL语句集,因此恢复非常容易:

$> mysql < backup_sunday_1_PM.sql

到目前为止,数据已经恢复到星期天下午1点的状态。要恢复自那以来所做的更改,我们必须使用增量备份;即,gbichot2-bin.000007gbichot2-bin.000008二进制日志文件。如果需要,从备份位置获取文件,然后像这样处理它们的内容:

$> mysqlbinlog gbichot2-bin.000007 gbichot2-bin.000008 | mysql

现在,我们已经恢复了数据到星期二下午1点的状态,但仍然缺少从那个日期到崩溃日期的更改。为了不失去它们,我们需要让MySQL服务器将其二进制日志存储到一个安全的位置(RAID磁盘、SAN、...),不同于存储数据文件的位置,以便这些日志不在被销毁的磁盘上。(也就是说,我们可以使用--log-bin选项指定一个不同于数据目录所在的物理设备上的位置。这样,日志就安全了,即使包含目录的设备丢失了。)如果我们这样做了,我们将拥有gbichot2-bin.000009文件(和任何后续文件),并可以使用mysqlbinlogmysql恢复崩溃时刻的最新数据更改,且不丢失:

$> mysqlbinlog gbichot2-bin.000009 ... | mysql

有关使用mysqlbinlog处理二进制日志文件的更多信息,请参阅第9.5节,“点时间(增量)恢复”