搜索

3.5. 备份 MySQL 数据

download PDF

在 Red Hat Enterprise Linux 9 中,备份 MySQL 数据库数据有两个主要方法:

  • 逻辑备份
  • 物理备份

逻辑备份 由恢复数据所需的 SQL 语句组成。这种类型的备份以纯文本文件的形式导出信息和记录。

与物理备份相比,逻辑备份的主要优势在于可移植性和灵活性。数据可以在其他硬件配置、MySQL 版本或数据库管理系统(DBMS)上恢复,而这些数据无法进行物理备份。

请注意,如果 mysqld.service 正在运行,也可以执行逻辑备份。逻辑备份不包括日志和配置文件。

物理备份由保存内容的文件和目录副本组成。

与逻辑备份相比,物理备份具有以下优点:

  • 输出更为紧凑。
  • 备份的大小会较小。
  • 备份和恢复速度更快。
  • 备份包括日志和配置文件。

请注意,当 mysqld.service 没有运行或数据库中的所有表被锁住时,才能执行物理备份,以防在备份过程中数据有更改。

您可以使用以下 MySQL 备份方法之一从 MySQL 数据库备份数据:

  • 使用 mysqldump 的逻辑备份
  • 文件系统备份
  • 作为备份解决方案复制

3.5.1. 使用 mysqldump 执行逻辑备份

mysqldump 客户端是一种备份实用程序,可用于转储数据库或数据库集合,用于备份或传输到其他数据库服务器。mysqldump 的输出通常由 SQL 语句组成,用于重新创建服务器表结构,生成表的数据。mysqldump 也可以以其他格式生成文件,包括 XML 和分隔的文本格式,如 CSV。

要执行 mysqldump 备份,您可以使用以下一种选项:

  • 备份一个或多个所选的数据库
  • 备份所有数据库
  • 从一个数据库备份表子集

流程

  • 要转储单个数据库,请运行:

    # mysqldump [options] --databases db_name > backup-file.sql
  • 要一次转储多个数据库,请运行:

    # mysqldump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
  • 要转储所有数据库,请运行:

    # mysqldump [options] --all-databases > backup-file.sql
  • 要将一个或多个转储的完整数据库加载回服务器,请运行:

    # mysql < backup-file.sql
  • 要将数据库加载到远程 MySQL 服务器,请运行:

    # mysql --host=remote_host < backup-file.sql
  • 要从一个数据库转储表的字面子集,请在 mysqldump 命令的末尾添加一个所选表的列表:

    # mysqldump [options] db_name [tbl_name ...​] > backup-file.sql
  • 要加载从一个数据库转储的表的字面子集,请运行:

    # mysql db_name < backup-file.sql
    注意

    此时,db_name 数据库必须存在。

  • 要查看 mysqldump 支持的选项列表,请运行:

    $ mysqldump --help

3.5.2. 执行文件系统备份

要创建 MySQL 数据文件的文件系统备份,请将 MySQL 数据目录的内容复制到您的备份位置。

要同时备份当前的配置或日志文件,请使用以下流程的可选步骤:

流程

  1. 停止 mysqld 服务:

    # systemctl stop mysqld.service
  2. 将数据文件复制到所需位置:

    # cp -r /var/lib/mysql /backup-location
  3. (可选)将配置文件复制到所需位置:

    # cp -r /etc/my.cnf /etc/my.cnf.d /backup-location/configuration
  4. (可选)将日志文件复制到所需位置:

    # cp /var/log/mysql/* /backup-location/logs
  5. 启动 mysqld 服务:

    # systemctl start mysqld.service
  6. 将备份位置的备份数据加载到 /var/lib/mysql 目录时,请确保 mysql:mysql/var/lib/mysql 中所有数据的所有者:

    # chown -R mysql:mysql /var/lib/mysql

3.5.3. 作为备份解决方案复制

复制是源服务器的一个替代的备份解决方案。如果源服务器复制到副本服务器,备份可以在副本上运行,而不会对源造成任何影响。当您关闭副本,并从副本备份数据时,源仍然可以运行。

有关如何复制 MySQL 数据库的说明,请参阅 复制 MySQL

警告

复制本身并不是一个足够的备份解决方案。复制可以防止源服务器出现硬件故障,但它不能确保防止数据的丢失。建议您将对副本的任何其他备份解决方案与此方法一起使用。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.