本文总结了MySQL8.0数据库进行备份的一些常规方法。
使用MySQL Enterprise Backup进行热备份
MySQL企业版的客户可以使用 MySQL企业备份产品对整个实例或选定的数据库,表或两者进行 物理备份。该产品包括 增量备份和 压缩备份的功能。备份物理数据库文件使恢复比逻辑技术(如mysqldump 命令)快得多。InnoDB使用热备份机制复制表 。(理想情况下,这些InnoDB表应代表大部分数据。)使用热备份从其他存储引擎复制表机制。
使用mysqldump进行备份
该 mysqldump 的程序可以进行备份。它可以备份各种表。
对于InnoDB表,可以使用mysqldump–single-transaction选项 执行不对表进行任何锁定的在线备份 。
通过复制表文件进行备份
可以通过复制表文件(.MYD,.MYI文件和关联*.sdi文件)来备份MyISAM表。要获得一致的备份,请停止服务器或锁定并刷新相关表:
FLUSH TABLES tbl_list WITH READ LOCK;
您只需要一个读锁;这样,当您在数据库目录中复制文件时,其他客户端就可以继续查询表。需要刷新才能确保在开始备份之前将所有活动索引页都写入磁盘。请参见第13.3.6节“ LOCK TABLES和UNLOCK TABLES语句”和 第13.7.8.3节“ FLUSH语句”。
只要服务器不更新任何内容,您也可以简单地通过复制表文件来创建二进制备份。(但是请注意,如果数据库中包含InnoDB表,则表文件复制方法将不起作用。而且,即使服务器未在主动更新数据,InnoDB 也可能仍将修改后的数据缓存在内存中且未刷新到磁盘。)
有关此备份方法的示例,请参见第13.2.5节“ IMPORT TABLE语句”中的导出和导入示例。
进行定界文本文件备份
要创建包含表数据的文本文件,可以使用 。该文件是在MySQL服务器主机而非客户端主机上创建的。对于此语句,输出文件不能已经存在,因为允许文件被覆盖会构成安全风险。请参见 第13.2.10节“ SELECT语句”。此方法适用于任何类型的数据文件,但仅保存表数据,而不保存表结构。 SELECT * INTO OUTFILE ‘file_name’ FROM tbl_name
创建文本数据文件(以及包含CREATE TABLE用于备份表的语句的文件)的另一种方法 是将mysqldump与该 --tab选项一起使用。
要重新加载带分隔符的文本数据文件,请使用 LOAD DATA或 mysqlimport。
通过启用二进制日志进行增量备份
MySQL支持使用二进制日志进行增量备份。二进制日志文件为您提供了将更改复制到数据库的信息,这些更改是在执行备份之后进行的。因此,为了允许将服务器还原到某个时间点,必须在其上启用二进制日志记录,这是MySQL 8.0的默认设置。
目前,您要进行增量备份(包含自上次完全备份或增量备份以来发生的所有更改),应使用旋转二进制日志 FLUSH LOGS。完成此操作后,您需要将所有二进制日志复制到备份位置,范围从上次完全备份或增量备份的那一刻到最后一次备份。这些二进制日志是增量备份。在还原时,您可以按照第7.5节“时间点(增量)恢复”中的说明应用它们 。下次进行完全备份时,还应该使用FLUSH LOGS或mysqldump --flush-logs旋转二进制 日志。
使用复制从站进行备份
如果在进行备份时主服务器出现性能问题,则可以帮助您解决问题的一种策略是在从服务器上而不是在主服务器上设置复制并执行备份。
如果要备份从属复制服务器,则在备份从属数据库时,无论备份方法如何,都应备份其主信息和中继日志信息存储库(请参见 第17.2.4节“复制中继和状态日志”)。你选。恢复从站的数据后,始终需要此信息来恢复复制。如果从属服务器正在复制 LOAD DATA语句,则还应备份SQL_LOAD-*该从属服务器用于此目的的目录中存在的所有文件。从站需要这些文件来恢复任何中断的LOAD DATA操作的复制 。该目录的位置是 slave_load_tmpdir系统变量。如果服务器不是使用该变量集启动的,则目录位置是tmpdir系统变量的值 。
恢复损坏的表
如果必须还原MyISAM已损坏的表,请先尝试使用REPAIR TABLEor myisamchk -r恢复它们 。这应该在所有情况下的99.9%中起作用。
使用文件系统快照进行备份
如果使用的是Veritas文件系统,则可以进行如下备份:
- 在客户端程序中,执行FLUSH TABLES WITH READ LOCK。
- 从另一个外壳执行mount vxfs snapshot。
- 从第一个客户端执行 UNLOCK TABLES。
- 从快照复制文件。
- 卸载快照。
类似的快照功能可能在其他文件系统(例如LVM或ZFS)中可用。




