20.10 性能/可扩展性/容量选项

这些选项限制了备份进程使用的资源,以最大限度地减少繁忙或庞大数据库的备份开销,或者在遇到资源问题时指定进程的行为。

  • --number-of-buffers=num_buffers

    命令行格式 --number-of-buffers=NUMBER
    类型 数字
    默认值 14
    最小值 1

    指定在多线程选项期间使用的缓冲区数量,每个大小为 16MB。

    对 CPU 密集型处理(例如备份)使用较大的数字,尤其是在使用压缩时。使用较小的数字进行磁盘密集型处理,例如恢复备份。该值应至少与读取线程数或写入线程数一样高,具体取决于操作类型。

    默认值:当前为 14。

    对于压缩或增量备份操作,缓冲区大小略大于 16MB 以容纳标头。

    一个额外的缓冲区用于单文件增量备份和单文件压缩备份。

    压缩备份、压缩单文件备份和解压缩应用日志操作需要为每个进程线程提供一个额外的缓冲区。

    如果更改读取、写入和处理线程的数量,您可以尝试更改此值,使其略大于那些其他选项指定的线程总数。请参阅 第 13.1 节,“优化备份性能”第 13.2 节,“优化恢复性能”,以获取有关针对各种硬件配置(例如 RAID 或非 RAID 存储设备)的此选项和其他与性能相关的选项的推荐值组合的更多建议。

  • --read-threads=num_threads

    命令行格式 --read-threads=NUMBER
    类型 数字
    默认值 1
    最小值 1
    最大值 15

    指定用于从磁盘读取数据的线程数。此选项适用于这些类型的操作: copy-backcopy-back-and-apply-log(仅适用于目录备份) extract、、、 backupbackup-and-apply-log。如果您指定一个值 0,它会静默调整为 1。最大值为 15。如果您提供一个负值,它会静默调整为 15。对于以下操作,读取线程数始终为 1,而不管这个选项设置:

    请参阅第 13.1 节,“优化备份性能”第 13.2 节,“优化恢复性能”--read-threads ,以获取有关、 --process-threads--write-threads各种硬件配置(例如 RAID 或非 RAID 存储设备) 的推荐值组合的建议 。

    默认值:1。

  • --process-threads=num_threads

    命令行格式 --process-threads=NUMBER
    类型 数字
    默认值 6
    最小值 1
    最大值 15

    指定用于处理数据的线程数,包括压缩和解压缩、加密和解密、应用日志操作以及备份映像的打包和提取。对于 backup-and-apply-logcopy-back-and-apply-logapply-incremental-backup--process-threads为操作的应用日志阶段设置工作线程数。对于那些不涉及数据处理的操作 copy-back(除非涉及解密或解压缩)backup-dir-to-image ,或使用该 --incremental-with-redo-log-only 选项的备份操作,该选项将被忽略。

    默认值:6 适用于该选项适用的所有操作。

    如果您指定值 0,它会自动调整为 1。最大值为 15。如果您提供负值,它会自动调整为 15。请参阅 第 13.1 节,“优化备份性能”第 13.2 节,“优化还原” Performance”--read-threads以获得有关、 --process-threads--write-threads各种硬件配置(例如 RAID 或非 RAID 存储设备) 的推荐值组合的建议 。

  • --write-threads=num_threads

    命令行格式 --write-threads=NUMBER
    类型 数字
    默认值 1
    最小值 1
    最大值 15

    指定用于将数据写入磁盘的线程数。此选项适用于以下类型的操作: copy-backcopy-back-and-apply-logextractbackupbackup-and-apply-log(应用于目录备份时)。对于支持的操作,任何可搜索的写入目标都支持多个写入线程; --write-threads仅当写入目标不可查找时才强制为 1。对于其他操作,如单文件备份(始终使用 1 个写入线程)、 list-image(不使用写入线程)和validate(不使用写入线程),该选项将被忽略。

    如果指定值 0,它会自动调整为 1(对于使用写线程的操作)。最大值为 15。如果您提供负值,它会自动调整为 15。对于、 或 apply-log的操作和应用日志阶段 copy-back-and-apply-log, 无论此选项的设置如何,写入线程数始终为 0。有关建议的 、 和_ _ backup-and-apply-logapply-incremental-backup--read-threads--process-threads--write-threads用于各种硬件配置,例如 RAID 或非 RAID 存储设备。

    默认值:1。

  • --limit-memory=MB

    命令行格式 --limit-memory=MB
    类型 数字
    默认值 100 for apply-log (without uncompression), 400 for other operations
    最小值 0
    最大值 999999
    单元 兆字节

    指定mysqlbackup 可以使用的最大内存(以兆字节为 单位) 。它适用于所有操作。不要 在选项值中 包含任何后缀,例如mb或。kb

    默认值:100 表示apply-log 不解压缩,400 表示所有其他操作(以兆字节为单位)。

    此选项指定的内存限制还限制了可用于多线程处理的 16MB 缓冲区的数量。例如,对于 400 MB 的限制,最大缓冲区数为 25(云备份除外,需要额外的内存,最大缓冲区数为 18)。如果因为您增加了 、 、 和/或 的值而需要额外的缓冲区,请相应 --read-threads--process-threads增加 --write-threads--number-of-buffers--limit-memory

  • --sleep=MS

    命令行格式 --sleep=MS
    类型 数字
    默认值 0
    单元 毫秒

    指定从 InnoDB 表复制一定数量的数据后休眠的毫秒数。每个数据块是 1024 个 InnoDB 数据页,通常总计 16MB。这是为了限制数据库服务器上的 CPU 和 I/O 开销。

    默认值:0(无自愿休眠)。

  • --no-locking

    在备份期间禁用所有锁定(有关详细信息,请参阅 备份过程 )。它可用于备份服务器,减少对正常数据库处理的干扰。如果在备份这些文件时进行任何更改,则 InnoDB 和非 InnoDB 数据中可能存在不一致。

  • --lock-wait-timeout

    命令行格式 --lock-wait-timeout=S
    删除 8.0.16
    类型 数字
    默认值 60
    最小值 1
    单元 第二

    对于 MySQL Enterprise Backup 8.0.16 及更高版本:不再支持该选项。

    对于 MySQL Enterprise Backup 8.0.15 及更早版本:指定FLUSH TABLES WITH READ LOCK语句的超时秒数, mysqlbackup在备份的最后阶段发出该语句以暂时将数据库置于只读状态。如果超时,则语句失败并释放表上的锁,以便可以执行被锁阻止的查询。 mysqlbackup然后重试语句并继续备份。超时防止在服务器上运行的长查询阻止 FLUSH TABLES WITH READ LOCK声明结束,阻止进一步的查询并最终关闭服务器。默认值为 60。最小值为 1。

  • --page-reread-time=MS

    命令行格式 --page-reread-time=MS
    类型 数字
    默认值 100
    单元 毫秒

    mysqlbackup 在重新读取 未通过校验和测试的页面之前等待的 时间间隔(以毫秒为单位)。繁忙的服务器可能在mysqlbackup读取页面的同时写入页面。可以是浮点数,例如 0.05 表示 50 微秒。最佳分辨率为 1 微秒,但在某些平台上可能更差。默认值为 100 毫秒(0.1 秒)。

  • --page-reread-count=number

    命令行格式 --page-reread-count=number
    类型 数字
    默认值 500

    当页面未通过校验和测试 时,重读尝试的最大次数 。繁忙的服务器可能在mysqlbackup读取页面的同时写入页面。如果同一页连续多次校验和测试失败,并且每次尝试之间有一个基于 --page-reread-time选项的暂停,则备份失败。默认值为 500。

  • --on-disk-full={abort|abort_and_remove|warn}

    命令行格式 --on-disk-full=option
    类型 枚举
    默认值 abort
    有效值

    abort

    warn

    abort_and_remove

    指定备份进程遇到磁盘已满情况时的行为。此选项仅适用于备份操作(backupbackup-and-apply-logbackup-to-image)。

    • abort:中止备份,不删除备份目录。磁盘仍然是满的。

    • abort_and_remove:中止备份并删除备份目录。

    • warn:每 30 秒写一条警告消息并重试备份,直到磁盘空间可用。

    默认值:abort.

  • --skip-unused-pages

    备份 InnoDB 表时跳过表空间中未使用的页面。此选项适用于 backupbackup-to-image操作,但不适用于 增量 备份。该选项被 backup-and-apply-log操作忽略。

    请注意,使用该 --skip-unused-pages选项创建的备份无法使用 copy-back-and-apply-log.

    未使用的页面是通常由批量删除数据引起的空闲页面。通过在备份期间跳过未使用的页面,此选项可以减少备份大小,从而减少操作所需的磁盘空间和 I/O 资源。但是,对备份的后续apply-log操作将需要更多时间才能完成,因为未使用的页面会在操作期间插入回表中。

  • --skip-binlog

    在备份操作期间跳过将二进制日志文件包含在备份中,或在还原操作期间跳过将二进制日志文件复制到服务器上。

    二进制日志文件,连同二进制日志索引文件,默认备份和恢复所有类型的备份(完整,增量(见 二进制日志和中继日志恢复例外情况),压缩,部分( TTS备份除外),单文件等)。有关详细信息,请参见表 1.1,“备份中的文件类型”。在以下情况下使用此选项可以跳过备份二进制日志:

    • 如果出现资源或性能问题。

    • 对于 MySQL Enterprise Backup 8.0.18 及更早版本:如果您正在备份的服务器上缺少任何二进制日志文件,以避免 mysqlbackup为丢失的文件抛出错误。

    对于 MySQL Enterprise Backup 8.0.19 及更高版本:该选项不仅可以为当前备份操作跳过二进制日志,还可以为基于当前备份的所有后续增量备份跳过二进制日志。

    对于 MySQL Enterprise Backup 8.0.19 及更高版本:--skip-binlog当使用该选项 还原增量备份时 , mysqlbackup通过向其添加扩展名来重命名任何已还原到服务器上的二进制日志文件.old

  • --skip-relaylog

    使用副本服务器时,在备份操作期间跳过将中继日志文件包含在备份中,或者在还原操作期间跳过将中继日志文件复制到服务器上。

    中继日志文件,连同中继日志索引文件和master.info文件 slave.info,默认备份和恢复所有类型的备份(完整,增量(见 二进制日志和中继日志恢复例外),压缩,部分(除了用于 TTS备份)、单个文件等)的副本服务器。有关详细信息,请 参见表 1.1,“备份中的文件类型”。如果出现资源、性能或其他问题,请使用此选项跳过备份或恢复中继日志。

    笔记

    如果用户在对副本进行备份时运行FLUSH LOGS 语句,则备份过程将失败。--skip-relaylog如果您希望在备份期间运行FLUSH LOGS 语句并且不需要在备份中包含中继日志, 请使用该选项。

  • --no-redo-log-archive

    对于 MySQL Enterprise Backup 8.0.17 及更高版本:在备份期间跳过在服务器上使用 重做日志归档,这是默认使用的。该选项对备份以外的操作没有影响。有关详细信息,请参阅第 7 章,使用重做日志归档进行备份

  • --skip-final-rescan

    对于 MySQL Enterprise Backup 8.0.16 及更高版本:跳过对已被 DDL 操作修改的 InnoDB 表的最终重新扫描,这应该发生在 mysqlbackup将数据库置于 备份操作接近尾声的备份锁下之后。这可能会缩短锁定的持续时间并减少备份对服务器正常操作的影响,尤其是在备份许多表时。

    对于 MySQL Enterprise Backup 8.0.15 及更早版本:跳过对已被 DDL 操作修改的 InnoDB 表的最终重新扫描,这应该发生在数据库在备份操作接近尾声时被读取锁定之后。这可能会缩短锁定的持续时间并减少备份对服务器正常操作的影响,尤其是在备份许多表时。

    警告

    如果在备份操作期间,在file-per-table 表 空间位于 MySQL 数据目录之外的任何 InnoDB 表(即,使用 table 选项创建的任何 InnoDB 表DATA DIRECTORY) 上执行 DDL 操作,则此选项可能导致备份不完整或不一致 。

    对于使用该 --incremental-with-redo-log-only 选项的备份和非备份操作,该选项将被忽略。

  • --optimistic-time[= DATE-TIME]

    命令行格式 --optimistic-time=DATE-TIME
    类型 细绳
    默认值 now

    使用选项指定的值作为“乐观时间 执行乐观备份- 未修改的表被视为非活动表”的时间。活动表被认为在备份过程中不太可能发生变化非活动表在备份的乐观阶段进行备份,所有其他表在正常阶段进行备份。请参见 第 4.3.6 节,“进行乐观备份”有关乐观备份的概念、用例和命令示例的详细信息。

    指定选项的可接受格式包括:

    • now:这包括所有进入备份过程乐观阶段的表。未指定值时,它是选项的默认值。

    • {Number}{Unit}:表示乐观时间为过去某个持续时间的时间。{Unit}可以是years, months, hours, 和中的任何一个minutes。这种格式的选项字符串的 一些示例包括 :5years、、、、 和 。 2days13months23hours35minutes

    • 以下任何形式的日期时间格式: YYMMDD, YYYYMMDD, YYMMDDHHMMSS, YYYYMMDDHHMMSS, YY-MM-DD, YYYY-MM-DD, YY-MM-DD HH.MM.SS, 或 YYYYMMDDTHHMMSST字符 在哪里T)。

    当同时使用optimistic-timeoptimistic-busy-tables选项并且它们在确定要在乐观阶段备份哪些表时发生冲突时, optimistic-busy-tables优先于optimistic-time.

  • --optimistic-busy-tables=REGEXP

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

    执行乐观备份,使用选项指定的正则表达式来选择将在乐观备份的第一阶段跳过的表,因为它们很可能在备份过程中被修改。完全限定名称(以 database_name.的形式table_name)与正则表达式匹配的表被视为 繁忙表,将在备份的第二个或正常阶段进行备份。完全限定名称与正则表达式不匹配的表被视为非活动表,将在备份的第一个或 乐观阶段进行备份。有关乐观备份的概念、用例和命令示例的详细信息, 请参阅 第 4.3.6 节“进行乐观备份” 。

    如果使用该选项但没有提供正则表达式,MySQL Enterprise Backup 将抛出错误。

    当同时使用optimistic-timeoptimistic-busy-tables选项并且它们在确定哪些表是乐观的”optimistic-busy-tables发生冲突时,优先于optimistic-time

  • --free-os-buffers[= NUMBER]

    命令行格式

    --free-os-buffers[=NUMBER](≥ 8.0.26)

    --free-os-buffers(≤ 8.0.25)

    类型 整数
    默认值 2
    有效值

    0

    1

    2

    3

    4

    5

    对于 MySQL Enterprise Backup 8.0.25 及更早版本:通过将缓冲区缓存中的所有数据同步到硬盘,在备份操作结束时释放系统缓冲区缓存。对于存储设备较慢的系统和包含许多表的数据库,使用该选项可能会显着增加备份时间。该选项不带任何参数。

    默认值:禁用自动同步。

    对于 MySQL Enterprise Backup 8.0.26 及更高版本(仅在支持的平台上posix_fadvise()): mysqlbackup建议文件系统 posix_fadvise()从系统缓冲区缓存中释放块,以尽量减少mysqlbackup对系统的影响。使用的方式 posix_fadvise()取决于选项的参数:

    • 0posix_fadvise():完全 不要使用

    • 1,或者没有给出选项的数字:posix_fadvise()用于读取和写入,并在关闭时同步文件。此选项保留早期版本的 mysqlbackup的行为。

    • 2, or option not used : posix_fadvise()用于读取或写入,具体取决于操作。

    • 3posix_fadvise()用于阅读和写作。

    • 4: posix_fadvise()仅供阅读。

    • 5: posix_fadvise()仅用于书写。

    默认值:2.