MySQL 8.4 发行说明
现在,假设我们在周三早上 8 点发生了灾难性的意外退出,需要从备份中恢复。为了恢复,首先我们要恢复最新的完整备份(周日下午 1 点的备份)。完整备份文件只是一组 SQL 语句,因此恢复它非常容易
$> mysql < backup_sunday_1_PM.sql
此时,数据已恢复到周日下午 1 点的状态。要恢复此后进行的更改,我们必须使用增量备份;也就是说,gbichot2-bin.000007
和 gbichot2-bin.000008
二进制日志文件。如果需要,从备份位置获取这些文件,然后像这样处理它们的内容
$> mysqlbinlog gbichot2-bin.000007 gbichot2-bin.000008 | mysql
我们现在已经将数据恢复到周二下午 1 点的状态,但仍然缺少从那一天到崩溃时间的更改。为了不丢失它们,我们需要让 MySQL 服务器将其 MySQL 二进制日志存储到与数据文件存储位置不同的安全位置(RAID 磁盘、SAN 等),以便这些日志不在损坏的磁盘上。(也就是说,我们可以使用指定不同物理设备上的位置的 --log-bin
选项启动服务器。这样,即使包含目录的设备丢失,日志也是安全的。)如果我们已经这样做了,我们就可以获得 gbichot2-bin.000009
文件(以及任何后续文件),并且可以使用 mysqlbinlog 和 mysql 来应用它们,以便将最新数据更改恢复到崩溃时刻,无任何丢失
$> mysqlbinlog gbichot2-bin.000009 ... | mysql
有关使用 mysqlbinlog 处理二进制日志文件的更多信息,请参阅 第 9.5 节,“时间点(增量)恢复”。