第18章 mysql备份

mysqlbackup客户端是用于所有备份和恢复操作的易于使用的工具。在备份操作期间, mysqlbackup备份:

  • 所有 InnoDB 表和索引,包括:

    • InnoDB系统表空间,默认情况下包含所有 InnoDB 表。

    • 使用 InnoDB file-per-table 设置生成的任何单独的数据文件。每个都包含一个表及其关联的索引。每个数据文件都可以使用原始的 Antelope或新的 Barracuda文件格式。

  • 所有 MyISAM 表和索引。

  • 由其他存储引擎管理的表。

  • MySQL数据目录下的其他文件,如 .sdi记录MyISAM表结构的文件。

  • 服务器数据目录下数据库子目录中的任何其他文件。

除了创建备份之外,mysqlbackup 还可以打包和解包备份数据,将备份操作期间发生的 InnoDB 表的任何更改应用到备份数据,并将数据、索引和日志文件恢复到它们的原始位置或其他位置.

以下是使用mysqlbackup 启动备份操作的一些示例命令 :

# Information about data files can be retrieved through the database connection.
# Specify connection options on the command line.
mysqlbackup --user=dba --password --port=3306 \
  --with-timestamp --backup-dir=/export/backups \
  backup

# Or we can include the above options in the configuration file
# under the [mysqlbackup] section, and just specify the configuration file
# and the 'backup' operation.
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf backup

# Or we can specify the configuration file as above, but
# override some of those options on the command line.
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \
  --compress --user=backupadmin --password --port=18080 \
  backup

您指定的--user--password 用于连接到 MySQL 服务器。此 MySQL 用户必须在 MySQL 服务器中具有某些权限,如第 4.1.2 节“将 MySQL 权限授予备份管理员”中所述。

--with-timestamp选项将备份放置在您在上面指定的目录下创建的子目录中。备份子目录的名称由备份运行的日期和时钟时间组成。

有关其他命令行选项的含义,请参阅 第 20 章,mysqlbackup命令行选项。有关配置文件的信息,请参阅第 21 章,配置文件和参数

确保运行 mysqlbackup的用户或 cron 作业有权将文件从 MySQL 数据库目录复制到备份目录。

确保连接超时足够长,以便mysqlbackup命令可以在备份运行期间保持与服务器的连接打开。 mysqlbackup在复制每个数据库后对服务器执行 ping 操作以保持连接有效。

查看第 13.1 节,“优化备份性能”以了解可能影响 MySQL Enterprise Backup 性能的各种问题。