20.8 部分备份和恢复选项

要选择要备份或还原的特定数据,请使用本节中描述的部分备份和还原选项。

有关部分备份和恢复的概述,以及以下选项的使用示例,请参阅第 4.3.5 节,“进行部分备份”第 5.1.4 节,“表级恢复(TLR)”

  • --include-tables=REGEXP

    命令行格式 --include-tables=REGEXP
    类型 细绳

    仅包括那些完全限定名称(以 的形式 )与正则表达式匹配的 表(包括 Innodb 和非 Innodb)以进行备份或恢复。使用的正则表达式语法是 POSIX 1003.2 标准中指定的扩展形式。例如, 匹配 数据库中的表和。在类 Unix 系统上,适当地引用正则表达式以防止解释 shell 元字符。 当使用选项时没有提供正则表达式时, mysqlbackup会抛出错误。 db_name.table_nameREGEXP--include-tables=^mydb\.t[12]$t1t2mydb

    虽然mysqlbackup理解通过反引号引用数据库或表名(或两者)的 MySQL 约定(请参阅架构对象名称),但无需在正则表达式中包含反引号--include-tables

    该选项还可以与 backup-dir-to-imageimage-to-backup-dir命令一起使用,以在创建或解压缩备份映像时选择表。

    当没有表与指定的正则表达式匹配时, mysqlbackup会抛出错误 --include-tables

    当与 --exclude-tables选项 一起使用时,--include-tables首先应用,这意味着mysqlbackup首先选择由指定的所有表 --include-tables,然后从集合中排除由指定的那些表 --exclude-tables

    该选项不能与 legacy --include选项一起使用。

  • --exclude-tables=REGEXP

    命令行格式 --exclude-tables=REGEXP
    类型 细绳

    排除备份或恢复所有表(包括 Innodb 和非 Innodb),其完全限定名称(以 的形式 )与正则表达式匹配 。正则表达式语法是 POSIX 1003.2 标准中指定的扩展形式。例如, 匹配 数据库中的表和。在类 Unix 系统上,适当地引用正则表达式以防止解释 shell 元字符。 当使用选项时没有提供正则表达式时, mysqlbackup会抛出错误。 db_name.table_nameREGEXP--exclude-tables=^mydb\.t[12]$t1t2mydb

    虽然mysqlbackup理解通过反引号引用数据库或表名(或两者)的 MySQL 约定(请参阅架构对象名称),但无需在正则表达式中包含反引号--exclude-tables

    该选项还可以与 backup-dir-to-imageimage-to-backup-dir命令一起使用,以在创建或解压缩备份映像时选择表。

    该选项不能与 legacy --include选项一起使用。

    当与 --include-tables选项 一起使用时,--include-tables首先应用,意思是mysqlbackup首先选择由指定的所有表 --include-tables,然后从集合中排除由指定的那些表 --exclude-tables

  • --only-known-file-types

    仅供备份。默认情况下,服务器数据目录下的数据库子目录中的所有文件都包含在备份中(有关详细信息,请 参见表 1.1 “备份中的文件类型”)。如果 --only-known-file-types指定该选项,mysqlbackup只备份那些类型的文件,这些文件是 MySQL 或其内置存储引擎的数据文件,除了这些 ibdata*文件外,还具有以下扩展名:

    • .ARM: ARCHIVE 表元数据

    • .ARZ: ARCHIVE 表数据

    • .CSM: CSV 表元数据

    • .CSV: CSV表格数据

    • .ibd: InnoDB 表空间使用 file-per-table 模式创建

    • .MRG:合并存储引擎对其他表的引用

    • .MYD: MyISAM 数据

    • .MYI: MyISAM 索引

  • --only-innodb

    仅供备份。仅备份 InnoDB 数据和日志文件。排除由其他存储引擎创建的所有文件。通常在不需要复制 MyISAM 文件时使用。

    该选项与选项不兼容 --slave-info

    默认值:备份包括来自所有存储引擎的文件。

  • --use-tts[={ with-minimum-locking|with-full-locking}]

    命令行格式 --use-tts[={with-minimum-locking|with-full-locking}]
    类型 枚举
    默认值 with-minimum-locking
    有效值

    with-minimum-locking

    with-full-locking

    使用可传输表空间 (TTS) 启用 InnoDB 表的选择性备份 。这将与--include-tables--exclude-tables选项结合使用,以选择要由正则表达式备份的 InnoDB 表。使用 TTS进行备份具有以下优势:

    • 备份可以恢复到不同的服务器

    • 不备份 系统表空间 ,节省磁盘空间和I/O资源

    • 表的数据一致性由 MySQL Enterprise Backup 管理

    但是,该选项具有以下限制:

    • 无法选择性地备份或恢复单个分区。--include-tables和 选项选择的表 --exclude-tables总是完整备份或恢复。

    • 只能备份存储在它们自己的单独表空间中的表(即, 启用innodb_file_per_table 选项创建的表)

    • 不备份非 InnoDB 表

    • 对于 MySQL Enterprise Backup 8.0.20 及更早版本: 永远不会包含加密的 InnoDB 表(只要跳过与表选择条件匹配的加密 InnoDB 表,就会在日志文件中发出警告)。

    • 不能用于增量备份

    • 备份中不包括二进制日志或中继日志

    另请参阅附录 B,MySQL Enterprise Backup的局限性了解一些更小的局限性。

    该选项有两个可能的值:

    • with-minimum-locking:热备份选中的表,然后将表锁定为只读模式,同时 备份redo log(仅包含热备份后相关更改的部分)。在锁定阶段创建的任何表都将被忽略。

    • with-full-locking:选中的表在备份时被锁定为只读模式。重做日志不包含在备份中。 在锁定阶段创建的任何表都将被忽略。

      笔记

      由于一个已知问题,当使用 TTS 为包含 Antelope 和 Barracuda 文件格式混合的表的服务器创建备份时,不要对表应用完全锁定。

    默认:with-minimum-locking

    要使用该--use-tts选项, mysqlbackup连接到服务器的用户需要额外的权限;有关详细信息,请参阅 第 4.1.2 节,“将 MySQL 权限授予备份管理员”

    --use-tts 恢复使用该选项 创建的备份有一些特殊要求;有关详细信息,请参阅第 5.1.5 节 “恢复使用该 选项创建的备份--use-tts” 。

  • --rename= old_table_namenew_table_name

    --include-tables当或 --exclude-tables选项(或两者一起)选择要从使用该--use-tts选项创建的备份恢复到数据库 时,重命名单个表 。名为 的表重命名old_table_namenew_table_name。请注意,使用该选项时:

    • --include-tablesor 选项(或 两者--exclude-tables一起)必须在 restore 命令中使用才能使--rename选项生效,除非备份中只有一个表。此外,--include-tables or--exclude-tables选项(或两者一起)在使用时应指定一个且仅一个表用于还原 --rename,否则还原将失败。

    • old_table_name并且 new_table_name可以是完全限定的(包含数据库名称,以 old_db_name.old_tb_namenew_db_name.的形式new_tb_name)或不是。通过使用完全限定的表名,可以将表恢复到与其原始数据库不同的数据库中。如果指定的数据库 new_db_name在目标服务器上不存在,它将在还原过程中创建。选项的参数中不接受正则表达式。

    • 如果与使用或 选项(或两者一起) old_table_name指定的表不匹配 ,或者如果已存在于目标数据库中 ,则 还原失败 。--include-tables--exclude-tablesnew_table_name

    • 第 5.1.5 节“恢复使用选件创建的备份”--use-tts 中列出的要求 适用。

    有关选择性恢复的更多信息以及表重命名的示例, 请参阅第 5.1.5 节,“恢复使用该 选项创建的备份”。--use-tts

传统的部分备份选项

重要的

本小节中的信息仅适用于使用--include弃用的遗留选项。要创建部分备份,请改用 --include-tables--exclude-tables选项。

此外--include,下面还讨论了一些其他选项,但该信息仅适用于与 一起使用的选项 --include

有关这些遗留选项的部分备份和使用示例的概述,请参阅使用遗留选项进行部分备份(已弃用)

  • --include=REGEXP

    此选项用于过滤 InnoDB 表以进行备份。根据选项指定的正则表达式检查 InnoDB 表的完全限定名称。如果 REGEXP 匹配 ,则包含该表。使用的正则表达式语法是 POSIX 1003.2 标准中指定的扩展形式。例如, 匹配数据库 中的表和 。当使用选项时没有提供正则表达式时, mysqlbackup 会抛出错误。 db_name.table_name--include=mydb\.t[12]t1t2mydb

    此选项仅适用于在 innodb_file_per_table启用 MySQL 选项(这是 MySQL 5.6 及更高版本的默认设置)的情况下创建的 InnoDB 表,在这种情况下,表位于单独的文件中,可以包含在备份中或从备份中排除。InnoDB 系统表空间中的所有表总是被备份。

    当没有 InnoDB 表名与指定的正则表达式匹配时,将抛出一条错误消息,指示没有匹配项。

    默认值:备份所有 InnoDB 表。

    笔记

    该选项不过滤非 InnoDB 表。

  • --use-tts[={ with-minimum-locking|with-full-locking}]

    使用可传输表空间 (TTS) 启用 InnoDB 表的选择性备份 。这将与选项结合使用,该--include选项选择要由正则表达式备份的 InnoDB 表。使用 TTS进行备份具有以下优势:

    • 备份可以恢复到不同的服务器

    • 不备份 系统表空间 ,节省磁盘空间和I/O资源

    • 表的数据一致性由 MySQL Enterprise Backup 管理

    请参阅此处有关使用该 --use-tts选项 的限制的 重要讨论 。

    该选项有两个可能的值:

    • with-minimum-locking:热备份选中的表,然后将表锁定为只读模式,同时 备份redo log(仅包含热备份后相关更改的部分)。在锁定阶段创建的任何表都将被忽略。

    • with-full-locking:选中的表在备份时被锁定为只读模式。重做日志不包含在备份中。 在锁定阶段创建的任何表都将被忽略。

    默认值:以最小锁定备份

    --use-tts 恢复使用该选项 创建的备份有一些特殊要求;有关详细信息,请参阅 第 5.1 节“执行还原操作”中 的说明