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

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

  • --number-of-buffers=num_buffers

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

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

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

    默认值:当前为 14。

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

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

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

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

  • --read-threads=num_threads

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

    指定用于从磁盘读取数据的线程数。

    默认值:当前为 1。此默认值适用于以下类型的操作:copy-backextractbackup。如果指定值为 0,它会自动调整为 1。最大值为 15;如果您提供负值,它会自动调整为 15。对于apply-log操作,无论此选项设置如何,读取线程数始终为 1。有关建议的 、 和 _ _ --read-threads--process-threads--write-threads用于各种硬件配置,例如 RAID 或非 RAID 存储设备。

  • --process-threads=num_threads

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

    指定用于处理数据(例如压缩或解压缩备份文件)的线程数。

    默认值:当前为 6。此默认值适用于以下类型的操作:extractbackup--incremental-with-redo-log-only当您使用任何选项、 apply-incremental-backupcopy-back或 时,它会被忽略 backup-dir-to-image

    如果指定值为 0,它会自动调整为 1。最大值为 15;如果您提供负值,它会自动调整为 15。对于 apply-log操作,无论此选项设置如何,进程线程数始终为 1。请参阅第 7.1 节,“优化备份性能”第 7.2 节,“优化恢复性能”以获取关于 、 和 各种硬件配置(例如 RAID 或非 RAID 存储设备)的推荐值组合 --read-threads--process-threads建议 --write-threads

  • --write-threads=num_threads

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

    指定用于将数据写入磁盘的线程数。

    指定用于将数据写入磁盘的线程数。此选项适用于以下类型的操作: copy-backcopy-back-and-apply-logextractbackup-to-imagebackupbackup-and-apply-log。任何可搜索的写入目标都支持多个写入线程;--write-threads仅当写入目标不可搜索时(例如,当备份写入 stdout、磁带或云存储时)才强制为 1。当与其他单文件备份操作一起使用时,该选项将被 list-image忽略 validate

    如果指定值为 0,它会自动调整为 1。最大值为 15;如果您提供负值,它会自动调整为 15。对于 apply-log操作,无论此选项设置如何,写线程数始终为 0。请参阅第 7.1 节,“优化备份性能”第 7.2 节,“优化恢复性能”以获取关于 、 和 各种硬件配置(例如 RAID 或非 RAID 存储设备)的推荐值组合 --read-threads--process-threads建议 --write-threads

    默认值:1。

  • --limit-memory=MB

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

    指定mysqlbackup 可以使用的最大内存(以兆字节为 单位) 。以前只适用于 apply-log操作,但在 MySQL Enterprise Backup 3.8 及更高版本中它适用于所有操作。不要在选项值中 包含任何后缀,例如mb或 。kb

    默认值:100 表示apply-log不与 一起使用--uncompress,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 数据,减少对正常数据库处理的干扰。如果在备份这些文件时进行了任何更改,则非 InnoDB 数据可能会出现不一致。

  • --lock-wait-timeout

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

    指定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=retry_limit

    命令行格式 --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

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

    二进制日志文件以及二进制日志索引文件默认包含在所有类型的在线备份(完整、增量、压缩、部分、单个文件等)中。有关详细信息,请参阅表 1.1,“MySQL 企业备份输出目录中的文件”。在以下情况下使用此选项可以跳过备份二进制日志:

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

    • 如果您正在备份的服务器上缺少任何二进制日志文件,以避免 mysqlbackup为丢失的文件抛出错误。

    • 如果您正在制作基于使用该选项创建的备份(完整或增量)的增量备份, 因为在这种情况下二进制日志信息将对mysqlbackup--no-locking不可用 。

    二进制日志文件和二进制日志索引文件,当包含在备份中时,在还原操作期间总是被复制到还原服务器的数据目录中;如果这不是您想要的行为,请使用此选项跳过二进制日志的恢复。

  • --skip-relaylog

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

    中继日志文件,以及中继日志索引文件和master.info文件 slave.info,默认包含在副本服务器的所有类型的在线备份(完整、增量、压缩、部分、单个文件等)中。有关详细信息,请参见第 1.4 节 “备份的文件”。如果出现资源、性能或其他问题,请使用此选项跳过备份中继日志。

    笔记

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

    中继日志文件和与它们一起备份的文件,当包含在备份中时,在恢复操作期间总是被复制到恢复服务器的数据目录中;如果这不是您想要的行为,请使用此选项跳过中继日志的恢复。

  • --skip-final-rescan

    在数据库在备份操作接近尾声时被读取锁定后,跳过由 DDL 操作修改的 InnoDB 表的最终重新扫描。这可能会缩短锁定的持续时间并减少备份对服务器正常操作的影响,尤其是在备份许多表时。

    警告

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

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

  • --log-bin-index[= PATH]

    命令行格式 --log-bin-index=FILENAME
    类型 文件名
    默认值 data_dir/host_name-bin.index

    对于 MySQL 5.5 及更早版本,以及所有离线备份:如果与给定的默认路径不同,请指定列出所有已使用二进制日志文件的 MySQL 服务器上索引文件的绝对路径(包括文件名和扩展名)下面,为了在备份中包含二进制日志文件。

    默认值: . data_dir/host_name-bin.index

  • --relay-log-index[= PATH]

    命令行格式 --relay-log-index=FILENAME
    类型 文件名
    默认值 data_dir/host_name-relay-bin.index

    仅用于副本服务器的离线备份:指定索引文件在列出所有使用的中继日志文件的MySQL服务器上的绝对路径(包括文件名和扩展名),如果它与下面给出的默认路径不同,以便在备份中包含中继日志文件。

    默认值: . data_dir/host_name-relay-bin.index

  • --master-info-file[= PATH]

    命令行格式 --master-info-file=FILENAME
    类型 文件名
    默认值 data_dir/master.info

    仅适用于副本服务器的离线备份:指定副本记录有关其源信息的信息文件的绝对路径(包括文件名和扩展名),如果它与下面给出的默认路径不同,则为了包含信息备份中的文件。

    默认值: data_dir/master.info.

  • --relaylog-info-file[= PATH]

    命令行格式 --relaylog-info-file=FILENAME
    类型 文件名
    默认值 data_dir/relay-log.info

    仅适用于副本服务器的离线备份:指定副本服务器记录中继日志信息的信息文件的绝对路径(包括文件名和扩展名),如果它与下面给出的默认路径不同,为了包括备份中的信息文件。

    默认值: data_dir/relay-log.info.

  • --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

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

    默认值:禁用自动同步。