操作模式

可以在以下模式之一中调用xtrabackup:

  • --backup模式,用于在目标目录中进行备份
  • --prepare模式,用于从备份中恢复数据(在--backup模式下创建)
  • --copy-back模式,用于从备份中复制数据到原始数据所在的位置;若要移动数据而不是复制,请使用替代的--move-back模式。
  • --stats模式,用于扫描指定的数据文件并打印出索引统计信息。

当你打算在这些模式中运行xtrabackup时,请使用以下语法:

1$ xtrabackup [--defaults-file=#] --backup|--prepare|--copy-back|--stats [OPTIONS]

例如,--prepare模式的应用如下:

1$ xtrabackup --prepare --target-dir=/data/backup/mysql/

对于所有模式,将从以下顺序中的给定文件读取xtrabackup和mysqld配置组的默认选项:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. /usr/etc/my.cnf
  4. ~/.my.cnf

作为xtrabackup的第一个参数(替代--defaults-file),你可以提供以下之一:

  • --print-defaults,使xtrabackup打印参数列表并退出。
  • --no-defaults,禁止从任何文件读取选项,仅从登录文件读取。
  • --defaults-file,从给定文件中读取默认选项。
  • --defaults-extra-file,在全局文件读取后,读取指定的附加文件。
  • --defaults-group-suffix,读取具有给定后缀的配置组。有效的组名由连接默认配置组(xtrabackup和mysqld)与给定后缀构成。
  • --login-path,从登录文件中读取给定路径。

InnoDB参数选项

有一大组InnoDB选项通常从my.cnf配置文件中读取,以便xtrabackup以与当前服务器相同的配置启动其内嵌的InnoDB。通常情况下,你不需要显式指定它们。这些选项在InnoDB和XtraDB中具有相同的行为。

参数选项

  • --apply-log-only() 此选项在准备备份时仅执行redo阶段。对于增量备份非常重要。

  • --backup() 创建备份并将其放置在--target-dir中。

  • --backup-lock-timeout() 获取元数据锁的尝试超时时间,以秒为单位。

  • --backup-lock-retry-count() 获取元数据锁的尝试次数。

  • --backup-locks() 此选项控制备份阶段是否应该使用备份锁,而不是在备份阶段使用FLUSH TABLES WITH READ LOCK。当服务器不支持备份锁时,该选项不起作用。此选项默认启用,可以使用--no-backup-locks来禁用。

  • –check-privileges() 此选项检查Percona XtraBackup是否具有所有所需的权限。如果当前操作需要缺失的权限,它将终止并打印出错误消息。如果当前操作不需要缺失的权限,但某些其他XtraBackup操作可能需要这些权限,进程不会被中止,并会打印出警告。

    1xtrabackup: Error: missing required privilege LOCK TABLES on *.*
    2xtrabackup: Warning: missing required privilege REPLICATION CLIENT on *.*
    
  • --close-files() 不保持文件打开。当xtrabackup打开表空间时,通常不会关闭其文件句柄,以便正确处理DDL操作。然而,如果表空间的数量非常庞大且无法适应任何限制,那么就有一个选项可以在不再访问文件句柄时关闭它们。启用此选项可能会导致Percona XtraBackup生成不一致的备份。使用时请谨慎。

  • --compress() 此选项告诉xtrabackup压缩所有输出数据,包括事务日志文件和元数据文件。从Percona XtraBackup 8.0.34-29开始移除了qpress/QuickLZ,并将ZSTD压缩方法移至通用可用性。在此版本中,ZSTD成为--compress选项的默认压缩方法。

    • --compress生成`*.zst 文件。你可以使用 –compress-zstd-level(=#) 选项指定 ZSTD 压缩级别。
    • --compress=lz4生成 *.lz4文件。你可以使用lz4`程序提取这些文件的内容。
    • 你可以使用--decompress选项来提取文件的内容。
  • --compress-chunk-size(=#) 压缩线程的工作缓冲区大小(以字节为单位)。默认值为64K。

  • --compress-threads(=#) 此选项指定xtrabackup用于并行数据压缩的工作线程数。此选项默认为1。并行压缩(--compress-threads)可以与并行文件复制(--parallel)一起使用。例如,--parallel=4 --compress --compress-threads=2 将创建4个I/O线程,这些线程将读取数据并将其传输到2个压缩线程。

  • --compress-zstd-level(=#) 此选项指定ZSTD压缩级别。默认值为1。允许的取值范围为1到19,较高的级别通常会提供更高的压缩比,但会消耗更多的CPU资源和时间来执行压缩和解压缩操作。级别越高,压缩比越高,但执行速度可能会变慢。。该选项在Percona XtraBackup 8.0.30-22中实现。

  • --copy-back() 将先前制作的备份中的所有文件从备份目录复制到其原始位置。除非指定了--force-non-empty-directories选项,否则此选项不会覆盖现有文件。

  • --core-file() 在fatal signals时生成核心文件。

  • --databases(=#) 此选项指定应备份的数据库和表的列表。选项接受的格式为databasename1[.table_name1] databasename2[.table_name2] ...

  • --databases-exclude(=name) 基于名称排除数据库,操作方式与--databases相同,但匹配的名称将从备份中排除。请注意,此选项的优先级高于--databases

  • --databases-file(=#) 此选项指定包含应备份的数据库和表列表的文件路径。文件可以包含以databasename1[.table_name1]形式的列表元素,每行一个元素。

  • --datadir(=DIRECTORY) 备份的源目录。这应该与MySQL服务器的数据目录(datadir)相同,因此如果存在my.cnf,应该从中读取;否则,你必须在命令行上指定它。

    • 与–copy-back或–move-back选项结合使用时,–datadir 指的是目标目录。
    • 一旦连接到服务器,为了执行备份,你需要在服务器的数据目录(datadir)上拥有文件系统级别的读取和执行权限。
  • --debug-sleep-before-unlock(=#) 这是xtrabackup测试套件专用的调试选项。

  • --debug-sync(=name) 调试同步点。此选项仅由xtrabackup测试套件使用。

  • --decompress() 解压缩使用--compress选项先前制作的备份中的所有文件。--parallel选项允许同时解压缩多个文件。要Percona XtraBackup不会自动删除压缩文件。为了清理备份目录,用户应该使用--remove-original选项。

  • --decompress-threads(=#) 强制 xbstream 使用指定数量的线程进行解压缩。

  • --decrypt(=ENCRYPTION-ALGORITHM) 解密先前使用--encrypt选项制作的备份中具有.xbcrypt扩展名的所有文件。--parallel选项允许同时解密多个文件。Percona XtraBackup不会自动删除加密文件。为了清理备份目录,用户应该使用--remove-original选项。

  • --defaults-extra-file(=[MY.CNF]) 在全局文件读取后读取此文件。必须在命令行上的第一个选项中给出。

  • --defaults-file(=[MY.CNF]) 仅从给定文件中读取默认选项。必须在命令行上的第一个选项中给出。必须是一个真实的文件;它不能是一个符号链接。

  • --defaults-group(=GROUP-NAME) 此选项用于设置应从配置文件中读取的组。如果使用 –defaults-group 选项,则xtrabackup 将使用此选项。对于 mysqld_multi 部署,需要此选项。

  • --defaults-group-suffix(=#) 还会读取 concat(group, suffix) 的组。

  • --dump-innodb-buffer-pool() 此选项控制是否应执行缓冲池内容的新转储。

    • 使用 –dump-innodb-buffer-pool,xtrabackup 在备份开始时向服务器发出缓冲池转储请求(它需要一些时间才能完成,并在后台完成),前提是 innodb_buffer_pool_dump_status 状态变量报告转储已完成。
    1$ xtrabackup --backup --dump-innodb-buffer-pool --target-dir=/home/user/backup
    
    • 默认情况下,此选项设置为 OFF。
    • 如果innodb_buffer_pool_dump_status报告正在运行缓冲池转储,xtrabackup 将根据--dump-innodb-buffer-pool-timeout的值等待转储完成。
    • ib_buffer_pool文件存储表空间ID和页面ID 数据,用于更早地预热缓冲池。
  • --dump-innodb-buffer-pool-timeout() 此选项包含 xtrabackup 应监视innodb_buffer_pool_dump_status的值多少秒,以确定缓冲池转储是否已完成。此选项与--dump-innodb-buffer-pool结合使用。默认情况下,设置为10\秒。

  • --dump-innodb-buffer-pool-pct() 此选项包含要转储的最近使用的缓冲池页面的百分比。

    • 如果--dump-innodb-buffer-pool选项设置为 ON,则此选项生效。如果此选项包含一个值,xtrabackup将设置MySQL系统变量innodb_buffer_pool_dump_pct。缓冲池转储完成或停止(请参阅--dump-innodb-buffer-pool-timeout)后,将恢复 MySQL 系统变量的值。
  • --encrypt(=ENCRYPTION_ALGORITHM) 此选项指示 xtrabackup 使用指定的 ENCRYPTION_ALGORITHM 加密 InnoDB 数据文件的备份副本。目前支持的算法为:AES128、AES192 和 AES256。

  • --encrypt-key(=ENCRYPTION_KEY) 要使用的合适长度的加密密钥。不建议在机器上存在无控制访问的情况下使用此选项,因为命令行以及密钥可以视为进程信息的一部分。

  • --encrypt-key-file(=ENCRYPTION_KEY_FILE) 指定一个文件名,从中可以读取适当长度的原始密钥。该文件必须是一个简单的二进制(或文本)文件,其中包含要使用的确切密钥。它会直接传递给xtrabackup子进程。

  • --encrypt-threads(=#) 此选项指定用于并行加密/解密的工作线程数。

  • --encrypt-chunk-size(=#)此选项指定每个加密线程的内部工作缓冲区大小,以字节为单位。它会直接传递给xtrabackup进程。要调整加密文件的块大小,请使用--read-buffer-size--encrypt-chunk-size

  • --estimate-memory(=#) 此选项处于技术预览阶段。在生产环境中使用此选项之前,我们建议你在你的环境中测试从物理备份还原生产环境,并且还使用另一种备份方法进行冗余。在 Percona XtraBackup 8.0.32-26 中实现了此选项,该选项允许你启用或禁用智能内存估计功能。默认值为 OFF。通过在备份阶段设置-estimate-memory=ON并在--prepare阶段设置--use-free-memory-pct选项来启用该功能。如果禁用了--estimate-memory设置,将忽略--use-free-memory-pct设置。

    • 以下是如何启用智能内存估计功能的示例:
    1$ xtrabackup --backup --estimate-memory=ON --target-dir=/data/backups/
    2$ xtrabackup --prepare --use-free-memory-pct=50 --target-dir=/data/backups/
    
  • --export() 创建用于导出表所需的文件。请参考还原单个表。

  • --extra-lsndir(=DIRECTORY) (用于-–backup):在此目录中保存xtrabackup_checkpointsxtrabackup_info文件的额外副本。

  • --force-non-empty-directories() 指定此选项后--copy-back--move-back选项将文件传输到非空目录。不会覆盖现有文件。如果从备份目录复制/移动到目标目录的文件已存在,则仍会失败并显示错误。

  • --ftwrl-wait-timeout(=SECONDS) 此选项指定xtrabackup在运行FLUSH TABLES WITH READ LOCK之前等待阻止该查询的查询的时间(以秒为单位)。如果超时时仍存在此类查询,则xtrabackup 会以错误终止。默认值为 0,这样它不会等待查询完成,并立即启动FLUSH TABLES WITH READ LOCK。在支持的情况下,xtrabackup 将自动使用备份锁作为FLUSH TABLES WITH READ LOCK的轻量级替代方法,以复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。

  • --ftwrl-wait-threshold(=SECONDS) 此选项指定用于检测具有非零值的--ftwrl-wait-timeout的长时间运行查询的查询运行时间阈值。只有在存在此类长时间运行的查询时,才会启动FLUSH TABLES WITH READ LOCK。如果--ftwrl-wait-timeout为0,则此选项无效。默认值为60秒。在支持的情况下,xtrabackup 将自动使用备份锁作为FLUSH TABLES WITH READ LOCK的轻量级替代方法,以复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。

  • --ftwrl-wait-query-type(=all|update) 此选项指定在xtrabackup发出全局锁之前允许哪种类型的查询完成。默认为all

  • --galera-info() 此选项将创建xtrabackup_galera_info文件,其中包含备份时本地节点的状态。在执行Percona XtraDB Cluster的备份时应使用此选项。在使用备份锁创建备份时,此选项无效。

  • --generate-new-master-key() 在进行复制回复制时生成新的主密钥。

  • --generate-transition-key() xtrabackup 在准备和复制回复期间需要访问相同的密钥环文件或保险库服务器,但不应取决于服务器密钥是否已被清除。

  • --generate-transition-key 创建并添加到密钥环中供 xtrabackup 使用的过渡密钥,如果加密所使用的主密钥未找到,因为它已被旋转和清除。

  • --get-server-public-key() 获取服务器的公钥。

  • --help() 使用此选项运行或不带任何选项运行 xtrabackup,将显示有关如何在命令行上运行该程序的信息,以及所有支持的选项和适用的默认值的变量。

  • --history(=NAME) 此选项启用在PERCONA_SCHEMA.xtrabackup_history表中跟踪备份历史记录。可以指定可选的历史系列名称,该名称将放置在当前正在进行的备份的历史记录中。

  • --host(=HOST) 此选项接受一个字符串参数,指定在使用 TCP/IP 连接到数据库服务器时要使用的主机。它会以未经修改的方式传递给mysql子进程。有关详细信息,请参阅mysql --help

  • --incremental-basedir(=DIRECTORY) 创建增量备份时,这是包含增量备份基础数据集的完整备份的目录。

  • --incremental-dir(=DIRECTORY) 在准备增量备份时,这是将增量备份与完整备份结合以制作新完整备份的目录。

  • --incremental-force-scan() 在创建增量备份时,强制对该实例中的数据页进行全面扫描。

  • --incremental-history-name(=name) 此选项指定存储在PERCONA_SCHEMA.xtrabackup_history历史记录中的备份系列的名称,以基于增量备份。xtrabackup 将在历史记录表中搜索最近的(innodb_to_lsn 最高),在该系列中成功的备份,并将 to_lsn 值用作增量备份的起始 lsn。这将与--incremental-history-uuid--incremental-basedir--incremental-lsn互斥。如果找不到有效的 lsn(没有该名称的系列,没有该名称的成功备份),则 xtrabackup 将返回错误。它与--incremental选项一起使用。

  • --incremental-history-uuid(=name) 此选项指定存储在 PERCONA_SCHEMA.xtrabackup_history 中的特定历史记录记录的 UUID,以基于增量备份。--incremental-history-name--incremental-basedir--incremental-lsn。如果找不到有效的 lsn(没有该 UUID 的成功记录),则 xtrabackup 将返回错误。它与--incremental选项一起使用。

  • --incremental-lsn(=LSN) 在创建增量备份时,你可以指定日志序列号(LSN),而不是指定--incremental-basedi。对于在5.1及更高版本中创建的数据库,请将LSN指定为一个64位整数。重要提示:如果指定了错误的 LSN 值(这是 Percona XtraBackup 不会检测到的用户错误),则备份无法使用。请谨慎操作!

  • --innodb([=name]) 此选项对于MySQL选项的兼容性而被忽略。

  • --innodb-miscellaneous() 有一个大的InnoDB 选项组,通常从my.cnf配置文件中读取,以便xtrabackup在启动其嵌入式InnoDB时使用与当前服务器相同的配置。通常你不需要明确指定这些选项。这些选项在InnoDB和XtraDB中具有相同的行为。

  • --keyring-file-data(=FILENAME) 密钥keyring文件的路径。将此选项与 –xtrabackup-plugin-dir 结合使用。

  • --kill-long-queries-timeout(=SECONDS) 此选项指定xtrabackup在启动FLUSH TABLES WITH READ LOCK并杀死阻塞它的查询之间等待的秒数。默认为0秒,这意味着 xtrabackup 不会尝试杀死任何查询。为了使用此选项,xtrabackup用户应该具有PROCESS和SUPER 权限。在支持的情况下,xtrabackup 会自动使用备份锁作为 FLUSH TABLES WITH READ LOCK 的轻量级替代方案,以复制非 InnoDB 数据,以避免阻塞修改 InnoDB 表的 DML 查询。

  • --kill-long-query-type(=all|select) 此选项指定应杀死以解除全局锁定的查询类型。默认为select

  • --lock-ddl() 在备份开始时,如果服务器支持(否则使用LOCK INSTANCE FOR BACKUP),则发出LOCK TABLES FOR BACKUP以阻止所有DDL操作。

    • 在Percona XtraBackup 8.0.22-15.0 之前,使用safe-slave-backup在备份InnoDB表之后和非InnoDB表之前停止SQL复制线程。
    • 从Percona XtraBackup 8.0.22-15.0 开始,使safe-slave-backup选项在复制 InnoDB 文件之前停止 SQL 复制线程。
  • --lock-ddl-timeout() 如果LOCK TABLES FOR BACKUPLOCK INSTANCE FOR BACKUP在给定的超时时间内没有返回,则中止备份。

  • --log 此选项对于MySQL被忽略。

  • --log-bin() 用于日志序列的基本名称。

  • --log-bin-index(=name) 保存二进制日志文件名的文件。

  • --log-copy-interval(=#) 此选项指定日志复制线程在毫秒内进行的检查之间的时间间隔(默认为 1 秒)。

  • --login-path() 从登录文件中读取给定路径。

  • --move-back() 将以前创建的备份中的所有文件从备份目录移动到它们的原始位置。由于此选项会删除备份文件,因此必须小心使用。

  • --no-backup-locks() 显式禁用默认情况下启用的--backup-locks选项。

  • --no-defaults() 默认选项仅从登录文件中读取。

  • --no-lock() 禁用使用FLUSH TABLES WITH READ LOCK的表锁。仅当所有表都是InnoDB表并且你不关心备份的二进制日志位置时才使用此选项。如果正在执行任何DDL语句或在非InnoDB表上进行任何更新(这包括mysql数据库中的系统MyISAM表),则不应使用此选项,否则可能导致备份不一致。在支持的情况下,xtrabackup将自动使用备份锁作为FLUSH TABLES WITH READ LOCK的轻量级替代方案,以复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。如果你考虑使用此选项,因为备份无法获取锁定,那可能是因为传入的复制事件阻止了锁定的成功。请尝试使用--safe-slave-backup来暂时停止复制副本线程,这可能有助于备份成功,并且你不需要使用此选项。

  • --no-server-version-check() 自Percona XtraBackup 8.0.21版本开始实现。--no-server-version-check选项禁用了服务器版本检查。默认行为是进行检查,将源系统版本与Percona XtraBackup版本进行比较。如果源系统版本高于XtraBackup版本,则备份将中止并显示一条消息。添加此选项会覆盖此检查,备份将继续进行,但备份可能存在问题。

  • --no-version-check() 此选项禁用版本检查。如果不传递此选项,在xtrabackup以--backup模式运行时,将隐式启用自动版本检查。要禁用版本检查,应在调用xtrabackup时显式传递--no-version-check选项。启用自动版本检查时,xtrabackup 在创建服务器连接后在备份阶段对服务器执行版本检查。xtrabackup 将以下信息发送到服务器:

    • MySQL 的类型和版本
    • 操作系统名称
    • Percona Toolkit 版本
    • Perl版本

    每个信息都有唯一的标识符,这是一个 MD5 哈希值,Percona Toolkit 用于获取有关其如何使用的统计信息。这是一个随机 UUID;不会收集或存储任何客户端信息。

  • --open-files-limit(=#) 使用setrlimit()保留的最大文件描述符数。

  • --parallel(=#) 此选项指定在创建备份时并发地复制多个数据文件所使用的线程数。默认值为(即没有并发传输)。在 Percona XtraBackup 2.3.10 及更高版本中,此选项可与--copy-back选项一起使用,以并行复制用户数据文件(redo日志和系统表空间在主线程中复制)。

  • --password(=PASSWORD) 此选项指定连接到数据库时要使用的密码。它接受一个字符串参数。有关详细信息,请参见mysql --help

  • --plugin-load() 要加载的插件列表。

  • --port(=PORT) 此选项接受一个字符串参数,指定在使用TCP/IP连接到数据库服务器时要使用的端口。它传递给 mysql 子进程,没有任何修改。有关详细信息,请参见mysql --help

  • --prepare() 使xtrabackup在使用--backup创建的备份上执行恢复,使其准备就绪。

  • --print-defaults() 打印程序参数列表并退出。必须作为命令行上的第一个选项给出。

  • --print-param() 使xtrabackup打印出可用于将数据文件复制回其原始位置以进行还原的参数。

  • --read-buffer-size() 设置读缓冲区大小。给定的值会缩放到页面大小。默认大小为 10MB。使用此选项可以从默认大小增加xbcloud/xbstream的块大小。要调整加密文件的块大小,请使用--read-buffer-size--encrypt-chunk-size

  • --rebuild-indexes() 在紧凑备份中重建索引。此选项仅在提供--prepare--rebuild-threads选项时才生效。

  • --rebuild-threads(=#) 使用给定数量的线程在紧凑备份中重建索引。此选项仅与--prepare--rebuild-indexes选项一起生效。

  • --redo-log-arch-dir(=name) 此选项在 Percona XtraBackup 8.0.34-29 版本中实现,如果尚未在服务器上设置重做日志归档目录,则可设置其目录。

  • --register-redo-log-consumer() --register-redo-log-consumer参数默认情况下处于禁用状态。启用时,此参数允许 Percona XtraBackup 在备份开始时将自身注册为redo日志消费者。服务器不会删除 Percona XtraBackup(消费者)尚未复制的redo日志。消费者读取redo日志并手动推进日志序列号(LSN)。服务器在此过程中阻塞写入。基于重做日志的消耗,服务器确定何时可以清除日志。这在Percona XtraBackup 8.0.30-23 版本中实现。

  • --remove-original() 自Percona XtraBackup 2.4.6版本开始实现,指定此选项后,将在解密和解压缩后删除 .qp.xbcrypt.qp.xbcrypt文件。

  • --rocksdb-datadir() RocksDB 数据目录。

  • --rocksdb-wal-dir() RocksDB WAL(Write-Ahead Logging)目录。

  • --rocksdb-checkpoint-max-age() 在备份完成后,检查点的年龄不能大于此秒数。

  • --rocksdb-checkpoint-max-count() 即使在此数目的检查点后,未达到检查点年龄要求,也会完成备份。

  • --rollback-prepared-trx() 强制回滚准备好的 InnoDB 事务。

  • --rsync() 使用rsync实用程序优化本地文件传输。当指定此选项时,xtrabackup使用rsync复制所有非InnoDB文件,而不是为每个文件生成单独的cp进程,这对于具有大量数据库或表的服务器来说可以更快。此选项不能与--stream一起使用。

  • --safe-slave-backup() 当指定时,xtrabackup 将在运行FLUSH TABLES WITH READ LOCK之前停止复制 SQL 复制线程,并等待开始备份,直到SHOW STATUS中的Slave_open_temp_tables为零。如果没有打开的临时表,备份将进行,否则SQL线程将启动并停止,直到没有打开的临时表为止。如果在--safe-slave-backup-timeout秒后Slave_open_temp_tables仍然不为零,则备份将失败。在备份完成后,复制 SQL 线程将重新启动。此选项的实现是为了处理复制临时表,对于基于行的复制,不需要使用此选项。

    • 在Percona XtraBackup 8.0.22-15.0 版本之前,使用 safe-slave-backup 会在备份 InnoDB 表之后、非 InnoDB 表之前停止 SQL 复制线程。
    • 从Percona XtraBackup 8.0.22-15.0 版本开始,使用 safe-slave-backup 选项在复制 InnoDB 文件之前停止 SQL 复制线程。
  • --safe-slave-backup-timeout(=SECONDS) 指定--safe-slave-backup等待Slave_open_temp_tables变为零的秒数。默认为300秒。

  • --secure-auth() 如果服务器端使用旧协议(pre-4.1.1),拒绝与其连接的客户端。(默认启用;使用--skip-secure-auth来禁用。)

  • --server-id(=#)正在备份的服务器实例。

  • --server-public-key-path() 服务器公共 RSA 密钥的 PEM 格式文件路径。

  • --skip-tables-compatibility-check()参见 –tables-compatibility-check。

  • --slave-info() 在备份复制副本服务器时,此选项非常有用。它打印源服务器的二进制日志位置。还将二进制日志坐标写入xtrabackup_slave_info文件,作为CHANGE MASTER命令。可以通过在此备份上启动复制副本服务器并发出一个带有在xtrabackup_slave_info文件中保存的二进制日志位置的CHANGE MASTER命令来设置此源的新副本。

  • --socket() 此选项接受一个字符串参数,指定使用 UNIX 域套接字与本地数据库服务器连接时要使用的套接字。它在传递给mysql子进程时不会被修改。详细信息请参见mysql --help

  • --ssl() 启用安全连接。

  • --ssl-ca() 包含受信任的 SSL CA(证书颁发机构)列表的文件路径。

  • --ssl-capath() 包含以 PEM 格式存储的受信任 SSL CA 证书的目录路径。

  • --ssl-cert() 包含 X509 证书的 PEM 格式文件路径。

  • --ssl-cipher() 用于连接加密的允许密码列表。

  • --ssl-crl() 包含证书吊销列表的文件路径。MySQL 服务器文档。

  • --ssl-crlpath() 包含证书吊销列表文件的目录路径。

  • --ssl-fips-mode() SSL FIPS 模式(仅适用于 OpenSSL);允许的值为:OFF、ON、STRICT。

  • --ssl-key() 包含 X509 密钥的 PEM 格式文件路径。

  • --ssl-mode() 与服务器的连接的安全状态。

  • --ssl-verify-server-cert() 验证服务器证书的通用名称值与连接服务器时使用的主机名是否匹配。

  • --stats() 使 xtrabackup 扫描指定的数据文件并打印出索引统计信息。

  • --stream(=FORMAT) 以指定的格式将所有备份文件流式传输到标准输出。目前,此选项仅支持 xbstream 格式。

  • --strict() 如果指定了此选项,当传递无效参数时,xtrabackup 将失败并显示错误。

  • --tables(=name) 一个正则表达式,用于匹配数据库名.表名 格式的完整表名。如果匹配成功,将备份该表。

  • --tables-compatibility-check() 启用引擎兼容性警告。默认值为 ON。要禁用引擎兼容性警告,请使用 –skip-tables-compatibility-check。

  • --tables-exclude(=name) 按表名的正则表达式进行过滤。与 –tables 相同的方式进行操作,但匹配的名称将从备份中排除。请注意,此选项的优先级高于--tables

  • --tables-file(=name) 一个文件,每行包含一个表名,格式为数据库名.表名。备份将限制为指定的表。

  • --target-dir(=DIRECTORY) 此选项指定备份的目标目录。如果目录不存在,xtrabackup 将创建它。如果目录存在且为空,xtrabackup 将成功。然而,xtrabackup 不会覆盖现有文件;如果文件已存在,它将失败并显示操作系统错误 17,文件已存在。

    • 如果此选项是相对路径,则被解释为相对于执行 xtrabackup 的当前工作目录。
    • 要执行备份,你需要在文件系统级别为提供给--target-dir值的目录拥有读、写和执行权限。
  • --innodb-temp-tablespaces-dir(=DIRECTORY)¶` 临时表空间文件的目录,此路径可以是绝对路径。

  • --throttle(=#) 此选项限制每秒钟复制的块数。块大小为 10 MB。要将带宽限制为 10 MB/s,将该选项设置为 1。

  • --tls-ciphersuites() 要使用的 TLS v1.3 密码套件。

  • --tls-version() 要使用的 TLS 版本,允许的值为:TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。

  • --tmpdir(=name) 指定在备份过程中用于存储临时文件的目录。

  • --transition-key(=name) 此选项用于在不访问密钥环保管库服务器的情况下启用备份处理。在这种情况下,xtrabackup 从指定的密码短语派生 AES 加密密钥,并使用它来加密正在备份的表空间密钥。

  • 如果--transition-key没有任何值,xtrabackup 将会询问。同样的密码短语应该为 –prepare 命令指定。

  • --use-free-memory-pct()–use-free-memory-pct 是技术预览选项。在生产中使用此选项之前,建议你在你的环境中测试从物理备份还原生产,并且还使用替代备份方法来实现冗余。

    • 在 Percona XtraBackup 8.0.30-23 中实现,此选项允许你配置智能内存估计功能。此选项控制可用于--prepare备份的空闲内存量。默认值为0(零),将该选项定义为禁用。例如,如果设置--use-free-memory-pct=50,那么会使用50%的空闲内存来准备备份。允许的最大值为100。

    • 此选项仅在启用--estimate-memory选项时起作用。如果禁用 –estimate-memory 选项,则忽略 –use-free-memory-pct 设置。

      以下是如何启用智能内存估计功能的示例:

      1$ xtrabackup --backup --estimate-memory=ON --target-dir=/data/backups/
      2
      3$ xtrabackup --prepare --use-free-memory-pct=50 --target-dir=/data/backups/
      
  • --use-memory() 此选项影响分配的内存量,类似于innodb_buffer_pool_size。此选项仅在--prepare阶段或使用--stats分析统计信息时才相关。默认值为100MB。建议值在1GB 到2GB之间。如果提供了单位(例如,1MB、1M、1GB、1G),则支持多个值。

  • --user(=USERNAME) 此选项指定连接到服务器时使用的 MySQL 用户名,如果不是当前用户。该选项接受一个字符串参数。有关详细信息,请参见mysql --help

  • -v() 参见 –version

  • --version() 此选项打印 xtrabackup 版本并退出。

  • --xtrabackup-plugin-dir(=DIRNAME) 包含keyring件的绝对路径的目录。

参考