14.4 备份存储库选项

这些选项指定与备份目录及其布局相关的各种参数,或者与备份恢复方式相关的参数。通常,是您在使用mysqlbackup--backup-dir时需要指定的组中的唯一选项 。

备份存储库选项用于以下操作:

备份存储库选项分为两组:第一组确定备份的结构,第二组提供有关备份服务器上数据原始结构的信息,以便将来对备份进行操作。

以下选项确定备份的结构:

  • --backup_dir=PATH

    与 相同 --backup-dir。永久或临时存储备份数据和元数据的目录。它是大多数类型的备份和恢复操作所需的关键参数。

    该选项在不同的操作和不同的情况下使用不同:

    • 备份到目录:用于 --backup-dir指定存放备份数据和元数据(包括mysqlbackup 消息日志、起止 LSN等)的目录。指定的目录 --backup-dir不能是指定目录的子目录 --datadir

      --with-timestamp还指定该选项时,将在其下创建一个附加级别的子目录,其名称中包含时间戳 --backup-dir(有关详细信息,请参阅该 --with-timestamp选项的说明)。除非 --with-timestamp使用该选项,否则指定的目录 --backup-dir必须为空,否则备份操作将失败并出错。

    • 对于备份到单个文件(包括增量、压缩、加密和云备份):用于 --backup-dir提供一个临时文件夹来保存备份元数据(包括mysqlbackup 消息日志、开始和结束 LSN等)和一些临时文件输出。备份数据连同元数据的副本将存储在一个单独的文件中,该文件的名称由该 --backup-image选项指定。但是请注意,如果 --backup-image没有给出完整路径名, mysqlbackup实际上会将 的值 --backup-image作为相对于 指定目录的路径 --backup-dir,因此将单文件备份存储在 --backup-dir(或者,如果 --with-timestamp使用该选项,则存储在 下创建的子目录下 --backup-dir,其名称中包含时间戳)。

    • 用于恢复备份目录:用于 --backup-dir指定备份目录的位置,数据将从该目录恢复到服务器。

    • 用于恢复单文件备份(包括增量备份、压缩备份、加密备份和云备份):用于 copy-back-and-apply-log 恢复单文件备份时,用于 --backup-dir提供一个临时文件夹,用于存放恢复操作的临时数据。指定的目录 --backup-dir应为空——如果使用非空目录,恢复操作仍将进行,但恢复数据可能已损坏。

      use-tts恢复使用选项设置= 创建的单文件备份时 with-minimum-locking,指定的文件夹 --backup-dir还用于临时提取备份中的所有表,并用于执行 apply-log操作以使数据在恢复到服务器之前是最新的数据目录。

  • backup_innodb_data_home_dir=PATH

    要存储备份的 InnoDB 数据文件的目录。如果您想将数据文件放在默认位置(即 backup-dir/datadir)以外的其他位置,请指定该选项。如果参数的值与 不同 backup-dir/datadir,则backup-my.cnf 作为信息存储到文件中innodb_data_home_dir,以便mysqlbackup在对备份进行各种操作时了解备份的结构。它与 backup_innodb_data_file_path选项一起确定备份中 InnoDB 数据文件的实际文件路径。

    参数值的推导如下:

    • 如果backup_innodb_data_home_dir未指定,则其值为 backup-dir/datadir.

    • 如果backup_innodb_data_home_dir是绝对路径,则按原样使用其值。

    • 如果backup_innodb_data_home_dir是相对路径,则该路径被认为是相对于(即在下方) backup-dir

    • 一个空字符串( ) for backup_innodb_data_home_dir表示的值 innodb_data_file_path将被视为绝对路径..

    此参数仅适用于备份操作;在还原期间,InnoDB 数据文件将还原到由 指定的数据目录下 ,除非在还原期间使用该选项 --datadir指定了另一个位置 。--innodb_data_home_dir

  • backup_innodb_data_file_path=VALUE

    InnoDB 数据文件的名称和大小。例子:

    ibdata1:32M;ibdata2:32M:autoextend
    /abs/path/ibdata1:32M:autoextend
    innodb-dir/ibdata1:32M:autoextend

    此参数与 一起 backup_innodb_data_home_dir确定 InnoDB 数据文件在备份存储库中的存储位置。使用此选项指定的任何文件路径都被认为是相对于 backup_innodb_data_home_dir选项值的(即使文件路径是以绝对路径的形式指定的,如 /abs/path/ibdata1:32M:autoextend)也是如此。要使用此选项为备份中的 InnoDB 数据文件指定真正的绝对路径,除了为此选项使用绝对路径外 ,还必须将 backup_innodb_data_home选项设置为 [empty string]。""

    innodb_data_file_path不指定该参数时,从备份服务器上 的选项值继承值 。如果备份的源和目标都尝试使用解析为相同文件的相同绝对路径,则备份将被取消。

    参数的值作为信息存储到 backup-my.cnf文件中 innodb_data_file_path,以便mysqlbackup在对备份进行各种操作时了解备份的结构。

  • backup_innodb_log_group_home_dir=PATH

    将存储备份的 InnoDB 日志的目录。仅当您想将日志放在默认位置(即 backup-dir/datadir)以外的其他位置时才指定此选项。如果参数的值与 不同 backup-dir/datadir,则backup-my.cnf 作为信息存储在文件中innodb_log_group_home_dir,以便mysqlbackup在对备份进行各种操作时了解备份的结构。请注意,虽然您可以指定用于保存日志的目录,但日志文件的名称是固定的且不可重新配置。

    此参数仅适用于备份操作;在还原期间,InnoDB 日志文件将还原到指定的数据目录下 ,除非在还原期间使用该选项--datadir指定了另一个位置 。--innodb_log_group_home_dir参数值推导如下:

    • 如果backup_innodb_log_group_home_dir 未指定,则其值为 backup-dir/datadir.

    • 如果backup_innodb_log_group_home_dir 是绝对路径,则按原样使用其值。

    • 如果backup_innodb_log_group_home_dir 是相对路径,则该路径被认为是相对于(即在下方) backup-dir

    • 一个空字符串( ) 选项会产生错误。

  • backup_innodb_undo_directory=PATH

    在备份期间为 InnoDB 撤消日志创建单独表空间的相对或绝对目录路径。未指定时,该选项采用与 ; 相同的值 backup_innodb_log_group_home_dir。仅当您想将撤消日志放在其他位置时才指定此选项。如果参数的值与 不同 backup-dir/datadir,则backup-my.cnf 作为信息存储在文件中innodb_undo_directory,以便mysqlbackup在对备份进行各种操作时了解备份的结构。

    此参数仅适用于备份操作;在恢复期间,InnoDB 撤消日志表空间将恢复到指定的数据目录下 --datadir,除非在恢复期间选项指定了另一个位置 --innodb_undo_directory

  • --with-timestamp

    在备份目录下创建一个子目录,其名称由备份操作的时间戳组成。它对于维护包含许多放在不同子目录下的备份快照的单个备份目录很有用。

    默认值:不创建带时间戳的子目录。要在不使用此选项的情况下将同一备份目录重新用于新备份,请手动删除以前的备份文件,或者对于单文件备份,指定 --force覆盖旧备份文件的选项。

以下参数提供有关备份服务器上数据的原始结构的信息,以供将来对备份进行操作,但不影响备份本身的结构:

  • backup_innodb_log_files_in_group=N

    还原服务器上日志组中 InnoDB 日志文件的数量。请参阅 innodb_log_files_in_group MySQL 服务器手册中的说明。此参数的值保存 innodb_log_files_in_groupbackup-my.cnf文件中,派生如下:

    • 如果指定,使用 backup_innodb_log_files_in_group 来自命令行或配置文件的值。

    • 否则, innodb_log_files_in_group 如果是在线备份,则使用来自备份服务器的值。

    • 否则,使用 innodb_log_files_in_group来自mysqlbackup命令行或配置文件的值。

  • backup_innodb_log_file_size=SIZE

    在还原服务器上切换到下一个日志文件之前备份中的最大单个 InnoDB 日志文件大小。请参阅 innodb_log_file_sizeMySQL 服务器手册中的说明。此参数的值保存 innodb_log_file_sizebackup-my.cnf文件中,派生如下:

    • 如果指定,使用backup_innodb_log_file_size 来自命令行或配置文件的值。

    • 否则, innodb_log_file_size 如果是在线备份,则使用来自备份服务器的值。

    • 否则,使用 mysqlbackup命令行或配置文件 中的指定innodb_log_file_size值 。

  • backup_innodb_page_size=SIZE

    对于脱机备份,指定还原服务器上所有 InnoDB 表空间的页面大小。应仔细指定此选项,因为页面大小必须与备份的 MySQL 实例的页面大小相同,否则备份可能变得无用。对于联机备份,该值取自 innodb_page_size备份服务器上的选项值。

    该选项的值保存在 backup-my.cnf文件中,用于恢复数据库。

  • backup_innodb_undo_logs=NUMBER

    对于脱机备份,指定还原服务器上 InnoDB 系统表空间中的回滚段数。应谨慎指定此选项,因为该值必须与 innodb_undo_logs备份的 MySQL 实例上的值相同,否则备份可能变得无用。对于联机备份,参数值取自 innodb_undo_logs备份服务器上的选项值。

  • backup_innodb_undo_tablespaces=NUMBER

    当您使用非零 backup_innodb_undo_logs 设置时,指定撤消日志在其中划分的表空间文件数。应谨慎指定此选项,因为该值必须与 innodb_undo_tablespaces 备份的 MySQL 实例上的值相同,否则备份可能变得无用。对于联机备份,参数值取自 innodb_undo_tablespaces 备份服务器上的选项值。默认情况下,所有的undo日志都是系统表空间的一部分,系统表空间除了innodb_undo_tablespaces配置的表空间之外,总会包含一个undo表空间。

  • backup_innodb_checksum_algorithm=NAME

    对于脱机备份,指定用于验证还原服务器上的 InnoDB 表空间的校验和算法的名称。应仔细指定此选项,因为校验和算法必须与备份的 MySQL 实例相同,否则备份可能变得无用。对于联机备份,该值取自 innodb_checksum_algorithm备份服务器上的选项值。

    该选项的默认值为innodb

    该选项的值保存在 backup-my.cnf文件中,用于恢复数据库。