文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  从副本备份原始数据

19.4.1.2 从副本备份原始数据

为了保证复制文件的完整性,在您的 MySQL 副本服务器关闭时应进行备份。如果 MySQL 服务器仍在运行,后台任务可能仍在更新数据库文件,特别是那些涉及具有后台进程的存储引擎(如 InnoDB)的文件。对于 InnoDB,这些问题应该在崩溃恢复期间解决,但由于副本服务器可以在备份过程中关闭而不会影响源的执行,因此利用此功能是有意义的。

要关闭服务器并备份文件

  1. 关闭副本 MySQL 服务器

    $> mysqladmin shutdown
  2. 复制数据文件。您可以使用任何合适的复制或归档实用程序,包括 cptarWinZip。例如,假设数据目录位于当前目录下,您可以将整个目录归档如下

    $> tar cf /tmp/dbbackup.tar ./data
  3. 再次启动 MySQL 服务器。在 Unix 下

    $> mysqld_safe &

    在 Windows 下

    C:\> "C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld"

通常,您应该备份副本 MySQL 服务器的整个数据目录。如果您希望能够恢复数据并作为副本运行(例如,在副本发生故障的情况下),除了数据之外,您还需要副本的连接元数据存储库和应用器元数据存储库,以及中继日志文件。这些项目是在您恢复副本数据后恢复复制所需的。假设表已被用于副本的连接元数据存储库和应用器元数据存储库(请参阅 第 19.2.4 节,“中继日志和复制元数据存储库”),这是 MySQL 9.0 中的默认设置,这些表将与数据目录一起备份。如果文件已被用于存储库,这是不建议的,您必须分别备份它们。如果将中继日志文件放在与数据目录不同的位置,则必须分别备份它们。

如果您丢失了中继日志,但仍然拥有 relay-log.info 文件,您可以检查它以确定复制 SQL 线程在源的二进制日志中执行到哪里。然后,您可以使用 CHANGE REPLICATION SOURCE TO 以及 SOURCE_LOG_FILESOURCE_LOG_POS 选项告诉副本从该点重新读取二进制日志。这需要源服务器上仍然存在二进制日志。

如果您的副本正在复制 LOAD DATA 语句,您还应该备份副本为此目的使用的目录中存在的任何 SQL_LOAD-* 文件。副本需要这些文件才能恢复对任何中断的 LOAD DATA 操作的复制。此目录的位置是系统变量 replica_load_tmpdir 的值。如果服务器不是以设置该变量的方式启动的,则目录位置是 tmpdir 系统变量的值。