Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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服务器将其MySQL二进制日志文件存储在一个安全的位置(RAID磁盘、SAN等),而不是存储数据文件的位置(即,我们可以使用--log-bin选项指定一个不同物理设备上的位置,从而使日志文件安全,即使包含目录的设备丢失。)如果我们这样做,我们将拥有gbichot2-bin.000009文件(及其后续文件),然后可以使用mysqlbinlogmysql将最近的数据更改恢复到崩溃时刻:

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

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