第14章mysqlbackup

mysqlbackup客户端是一个易于使用的工具,所有备份和恢复操作。备份过程中,mysqlbackup备份:

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

    • InnoDB的系统表空间,默认包含所有InnoDB表。

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

  • 所有MyISAM表和索引。

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

  • MySQL数据目录下的其他文件,例如.frm记录每个表结构的文件。

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

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

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

可以通过数据库连接检索数据文件的信息。#在命令行中指定连接选项。mysqlbackup——user=dba——password——port=3306 \——with-timestamp——backup-dir=/export/backups \ backup #或者我们可以在[mysqlbackup]部分的配置文件#中包含上述选项,并且只指定配置文件#和'backup'操作。mysqlbackup——defaults-file=/usr/local/mysql/my.cnf backup #或者我们可以像上面那样指定配置文件,但是要在命令行上覆盖一些选项。Mysqlbackup——defaults-file=/usr/local/mysql/my.cnf \——compress——user=backupadmin——password——port=18080 \ backup

——用户——密码用于连接MySQL服务器。这个MySQL用户必须在MySQL服务器上有一定的权限,如第4.1.2节,“授予备份管理员MySQL权限”

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

有关其他命令行选项的含义,请参见第十六章,mysqlbackup命令行选项.有关配置文件的信息,请参见17章,配置文件及参数

确保用户或cron作业正在运行mysqlbackup具有将MySQL数据库目录下的文件拷贝到备份目录的权限。

请确保您的连接超时时间足够长,以便mysqlbackup命令可以使到服务器的连接在备份运行期间保持打开状态。mysqlbackup在复制每个数据库后ping服务器以保持连接激活。

重要的
  • 虽然mysqlbackup在不中断数据库使用的情况下备份InnoDB表,最后阶段复制非InnoDB文件(如MyISAM表和.frmFiles)使用语句将数据库暂时置于只读状态用读锁刷新表.为了获得最佳的备份性能和对数据库处理的影响最小:

    1. 不要跑太久选择查询或其他SQL语句在备份运行时。

    2. 保持MyISAM表相对较小,主要用于只读或以读为主的工作。

    然后是a末端的锁相mysqlbackup运行时间短(可能只有几秒钟),并且不影响正常的处理mysqld多。如果您的数据库应用程序不满足上述条件,请使用——only-innodb选项只备份InnoDB表,或者使用——无固定选项备份非innodb文件。注意MyISAM,.frm,以及复制在——无固定如果在备份的最后阶段更新了设置,则不能保证它们是一致的。

  • 对于大型数据库,备份运行可能需要很长时间。总是检查mysqlbackup通过验证,命令已成功完成mysqlbackup返回了退出代码0,还是通过观察mysqlbackup打印了文本mysqlbackup完成OK!

  • mysqlbackup和前者不一样吗MySQL备份开源项目从MySQL 6.0源代码树。MySQL企业备份产品取代了MySQL备份计划。

  • 在不运行涉及表的DDL操作期间安排备份。看到附录B,MySQL企业备份的局限性与DDL操作并行创建备份的限制。