一、安装
1.下载压缩包
根据当前地址选择对应的版本和系统
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/tarball/percona-xtrabackup-2.4.28-Linux-x86_64.glibc2.17.tar.gz
2.解压缩
tar xvf percona-xtrabackup-2.4.28-Linux-x86_64.glibc2.17.tar.gz
到这里就可以正常使用xtrabackup了,当然还有很多其他的方式可以安装xtrabackup,可以通过官方文档查看,这里就不一一介绍了。
二、简介
1.程序文件用途
文件名 | 用途 |
---|---|
innobackupex | xtrabackup的软链,目前仍可使用,但是现在已经弃用,将在下一个主要版本中删除 |
xtrabackup | 提供备份功能 |
xbcrypt | 用于加密和解密备份文件的程序 |
xbstream | 允许流式传输文件和从中提取文件的程序 |
xbcloud | 用于从云中下载或者上传的程序 |
2.备份工作原理
Percona XtraBackup 基于 InnoDB 的崩溃恢复功能。 它复制你的 InnoDB 数据文件,导致数据内部不一致; 但随后它会对文件执行崩溃恢复,使它们再次成为一致的、可用的数据库。
Percona XtraBackup 的工作原理是在启动时记住日志序列号 (LSN),然后复制数据文件。 这样做需要一些时间,所以如果文件发生变化,那么它们反映了数据库在不同时间点的状态。 同时,Percona XtraBackup 运行一个监视事务日志文件的后台进程,并从中复制更改。 Percona XtraBackup 需要持续执行此操作,因为redo log是以循环方式编写的,并且可以重复使用。 Percona XtraBackup 需要事务日志记录自开始执行以来对数据文件的每一次更改。
Percona XtraBackup 将使用备份锁作为 FLUSH TABLES WITH READ LOCK 的轻量级替代方案。 此功能在 Percona Server for MySQL 5.6+ 中可用。 Percona XtraBackup 自动使用它来复制非 InnoDB 数据,以避免阻塞修改 InnoDB 表的 DML 查询。 当服务器支持备份锁时,xtrabackup 将首先复制 InnoDB 数据,运行 LOCK TABLES FOR BACKUP (这个只适用于Percona mysql,官方社区版本mysql目前没有这种写法,还需使用FLUSH TABLES WITH READ LOCK )并复制 MyISAM 表和 .frm 文件。 完成后,文件的备份将开始。 它将备份 .frm、.MRG、.MYD、.MYI、.TRG、.TRN、.ARM、.ARZ、.CSM、.CSV、.par 和 .opt 文件。
(如果是官方社区版本mysql,则不需要用 LOCK BINLOG FOR BACKUP 来阻止变更,继续使用FLUSH TABLES WITH READ LOCK来保证binlog不会发生变化)
之后,xtrabackup 将使用 LOCK BINLOG FOR BACKUP 来阻止所有可能更改二进制日志位置或 Exec_Master_Log_Pos 或 Exec_Gtid_Set(即与复制副本上当前 SQL 线程状态对应的源二进制日志坐标)的操作,如 SHOW MASTER/SLAVE STATUS。 xtrabackup 然后将完成复制重做日志文件并获取二进制日志坐标。 完成后 xtrabackup 将解锁二进制日志和表。
最后,二进制日志位置将打印到 STDERR 并且 xtrabackup 退出,如果一切正常则返回 0。
注意,xtrabackup 的 STDERR 未写入任何文件。 您必须将其重定向到一个文件,例如 xtrabackup OPTIONS 2> backupout.log。
3.还原工作原理
在准备阶段,Percona XtraBackup使用复制的redo log对复制的数据文件执行崩溃恢复。完成此操作后,数据库即可还原和使用。
xtrabackup 将从 my.cnf 中读取变量 datadir、innodb_data_home_dir、innodb_data_file_path、innodb_log_group_home_dir 并检查目录是否存在。
它将首先复制 MyISAM 表、索引等(.frm、.MRG、.MYD、.MYI、.TRG、.TRN、.ARM、.ARZ、.CSM、.CSV、par 和 .opt 文件), 接下来是 InnoDB 表和索引,最后是日志文件。 它会在复制文件时保留文件的属性,您可能必须在启动数据库服务器之前将文件的所有权更改为 mysql,因为它们将由创建备份的用户所有。
4.所需权限
# 2.4授权
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;
# 8.0授权
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cr%T';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost';
GRANT SELECT ON performance_schema.replication_group_members TO bkpuser@'localhost';
FLUSH PRIVILEGES;
5.产生的文件内容与示例
文件名称 | 用途 | 示例 |
---|---|---|
backup-my.cnf | 该文件包含在 xtrabackup --prepare 期间启动 InnoDB 迷你实例的信息。 这不是原始 my.cnf 的备份。 InnoDB 配置是从备份时由 innobackupex 创建的文件 backup-my.cnf 读取的。 xtrabackup --prepare 默认使用 backup-my.cnf 中的 InnoDB 配置,或者如果指定xtrabackup --defaults-file,则在指定的文件中读取 InnoDB 配置。 在此上下文中的 InnoDB 配置是指影响数据格式的服务器变量,即 innodb_page_size 选项、innodb_log_block_size 等。与位置相关的变量,如 innodb_log_group_home_dir 或 innodb_data_file_path 总是被 xtrabackup --prepare 忽略,因此准备备份总是与来自 备份目录,而不是任何外部目录 | |
xtrabackup_checkpoints | 备份的类型(例如完整或增量)、它的状态(例如准备好的)和其中包含的 LSN 范围 | 全量备份 backup_type = full-backuped from_lsn = 0 to_lsn = 15188961605 last_lsn = 15188961605 增量备份 backup_type = incremental from_lsn = 15188961605 to_lsn = 15189350111 last_lsn = 15189350111 |
xtrabackup_binlog_info | 服务器使用的二进制日志文件及其在备份时的位置。 SHOW MASTER STATUS 的结果。 | |
xtrabackup_binlog_pos_innodb | InnoDB 或 XtraDB 表的二进制日志文件及其当前位置。 | |
xtrabackup_binary | 进程中使用的 xtrabackup 二进制文件。 | |
xtrabackup_logfile | 包含运行xtrabackup --prepare所需的数据。 这个文件越大,xtrabackup --prepare 过程则需要越长的时间才能完成。 | |
<table_name>.delta.meta | 执行增量备份时将创建此文件。 它包含每个表的增量元数据:页面大小,压缩大小 页面(如果值为 0,则表示表空间未压缩)和 空间 ID | page_size = 16384 zip_size = 0 space_id = 0 |
xtrabackup_slave_info | 设置从属服务器所需的语句 | |
xtrabackup_galera_info | 与 Galera 和 Percona XtraDB 集群相关的信息,包含srep_local_state_uuid,wsrep_last_committed |
三、使用案例
通过官网文章可以了解具体案例
1.xtrabackup
1.1.全量备份恢复
# 1.备份
xtrabackup --backup -uroot -p --target-dir=./
# 2.进行prepare
xtrabackup --prepare --target-dir=./
# 3.迁移备份文件
# 这里需要制定配置文件,配置文件的里的datadir就是迁移的路径,--target-dir就是当前备份数据所在的路径,这里也可以用--move-back实现,也可以加上--force-non-empty-directories,但是注意,这里只是不覆盖文件,如果用同名文件仍然会报错,或者直接用cp,rsync等实现迁移的目的,rsync -avrP /data/backup/ /var/lib/mysql/
xtrabackup --defaults-file=/etc/my2.cnf --copy-back --target-dir=./
# 4.更改文件所有权
chown -R mysql:mysql /data/mysql_data2
# 5.启动数据库
mysqld_safe --defaults-file=/etc/my2.cnf &
1.2.增量备份恢复
# 1.基线备份
xtrabackup --backup -uroot -p --target-dir=./base
# 2.增量1,2,3备份,当然,这里所有的inc都可以依据/base,这样还原的时候就只用还原base和最新的一个增量了
xtrabackup --backup -uroot -p --target-dir=./inc --incremental-basedir=./base
xtrabackup --backup -uroot -p --target-dir=./inc2 --incremental-basedir=./inc
xtrabackup --backup -uroot -p --target-dir=./inc3 --incremental-basedir=./inc2
# 2.进行prepare
xtrabackup --prepare --apply-log-only --target-dir=./base/
xtrabackup --prepare --apply-log-only --target-dir=./base/ --incremental-dir=./inc/
xtrabackup --prepare --apply-log-only --target-dir=./base/ --incremental-dir=./inc2/
# 注意,最后一个增量不要使用apply-log-only参数
xtrabackup --prepare --target-dir=./base/ --incremental-dir=./inc3/
# 3.迁移备份文件
# 这里需要制定配置文件,配置文件的里的datadir就是迁移的路径,--target-dir就是当前备份数据所在的路径,这里也可以用--move-back实现,也可以加上--force-non-empty-directories,但是注意,这里只是不覆盖文件,如果用同名文件仍然会报错,或者直接用cp,rsync等实现迁移的目的,rsync -avrP /data/backup/ /var/lib/mysql/
xtrabackup --defaults-file=/etc/my2.cnf --copy-back --target-dir=./base
# 4.更改文件所有权
chown -R mysql:mysql /data/mysql_data2
# 5.启动数据库
mysqld_safe --defaults-file=/etc/my2.cnf &
2.innobackupex
2.1全量备份
innobackupex --defaults-file=/etc/my.cnf -uroot -p 'password' ./
# 2.进行数据崩溃恢复
innobackupex --use-memory=4G --apply-log ./2023-05-30_10-58-45
# 3.迁移备份文件
# 这里需要制定配置文件,配置文件的里的datadir就是迁移的路径,--target-dir就是当前备份数据所在的路径,这里也可以用--move-back实现,也可以加上--force-non-empty-directories,但是注意,这里只是不覆盖文件,如果用同名文件仍然会报错,或者直接用cp,rsync等实现迁移的目的,rsync -avrP /data/backup/ /var/lib/mysql/
innobackupex --defaults-file=/etc/my2.cnf --copy-back ./2023-05-30_10-58-45
# 4.更改文件所有权
chown -R mysql:mysql /data/mysql_data2
# 5.启动数据库
mysqld_safe --defaults-file=/etc/my2.cnf &
2.2增量备份
#1.基线备份
innobackupex --user=root --password='password' ./base
#2.增量1,2备份,因为xtra默认会生成时间戳的目录,所以这里也可以不用特意新建inc目录
innobackupex --user=root --password='password' --incremental-basedir=./base/2023-05-31_11-15-01 --incremental ./base
innobackupex --user=root --password='password' --incremental-basedir=./base/2023-05-31_13-47-22 --incremental ./base
# 2.进行数据崩溃恢复
innobackupex --apply-log --redo-only --use-memory=1G ./base/2023-05-31_11-15-01
innobackupex --apply-log --redo-only --use-memory=1G ./base/2023-05-31_11-15-01 --incremental-dir=./base/2023-05-31_13-47-22
innobackupex --apply-log --use-memory=1G ./base/2023-05-31_11-15-01 --incremental-dir=./base/2023-05-31_13-56-07
# 3.迁移备份文件
# 这里需要制定配置文件,配置文件的里的datadir就是迁移的路径,--target-dir就是当前备份数据所在的路径,这里也可以用--move-back实现,也可以加上--force-non-empty-directories,但是注意,这里只是不覆盖文件,如果用同名文件仍然会报错,或者直接用cp,rsync等实现迁移的目的,rsync -avrP /data/backup/ /var/lib/mysql/
innobackupex --defaults-file=/etc/my2.cnf --copy-back ./base/2023-05-31_11-15-01/
# 4.更改文件所有权
chown -R mysql:mysql /data/mysql_data2
# 5.启动数据库
mysqld_safe --defaults-file=/etc/my2.cnf &
四、参数介绍
通过官网了解详细参数解释,下面介绍一些用到的参数
参数 | 意义 | 是否xtrabackup独有参数 |
---|---|---|
--apply-log | 通过应用位于同一目录中名为 xtrabackup_logfile 的事务日志文件(即redo),在 BACKUP-DIR 中准备备份。 此外,创建新的事务日志。 InnoDB 配置是从备份时由 innobackupex 创建的文件 backup-my.cnf 读取的。 innobackupex --apply-log 默认使用来自 backup-my.cnf 的 InnoDB 配置,除非指定 --defaults-file 来读取InnoDB 配置。 这里的InnoDB 配置意味着影响数据格式的服务器变量,即 innodb_page_size、innodb_log_block_size 等。与位置相关的变量,如 innodb_log_group_home_dir 或 innodb_data_file_path 总是被 --apply-log 忽略,因此准备备份总是适用于来自 备份目录,而不是任何外部目录。 | |
--redo-only | 准备基本完整备份和合并除最后一个以外的所有增量备份时,应使用此选项。 它直接传递给 xtrabackup 的 xtrabackup --apply-log-only 选项。 这会强制 xtrabackup 跳过“rollback”阶段并仅执行“redo”。 如果稍后将对备份应用增量更改,则这是必需的。 | |
--copy-back | 将先前制作的备份中的所有文件从备份目录复制到它们的原始位置。 除非指定 xtrabackup --force-non-empty-directories 选项,否则此选项不会复制现有文件。 | |
--move-back | 将先前制作的备份中的所有文件从备份目录移动到它们的原始位置。 由于此选项会删除备份文件,因此必须谨慎使用。 | |
--galera-info | 此选项创建 xtrabackup_galera_info 文件,其中包含备份时的本地节点状态。 执行 Percona-XtraDB-Cluster 的备份时应使用此选项。 | |
--slave-info | 此选项在备份复制副本服务器时很有用。 它打印源服务器的二进制日志位置和名称。 它还将此信息作为 CHANGE MASTER 命令写入 xtrabackup_slave_info 文件。 可以通过在此备份上启动副本服务器并使用保存在 xtrabackup_slave_info 文件中的二进制日志位置发出 CHANGE MASTER 命令来设置此源的新副本。 | |
--incremental | 此选项告诉 xtrabackup 创建增量备份,而不是完整备份 | |
--no-lock | 使用此选项可通过带读锁的 FLUSH TABLES 禁用表锁。 仅当您的所有表都是 InnoDB 并且您不关心备份的二进制日志位置时才使用它。 如果正在执行任何 DDL 语句或在非 InnoDB 表(这包括 mysql 数据库中的系统 MyISAM 表)上发生任何更新,则不应使用此选项,否则可能导致备份不一致。 如果您正在考虑使用 innobackupex --no-lock 因为您的备份无法获取锁,这可能是因为传入的复制事件阻止了锁成功。 请尝试使用 innobackupex --safe-slave-backup 暂时停止复制副本线程,这可能有助于备份成功,然后您无需诉诸于使用此选项。 使用 –no-lock 选项时不会创建 xtrabackup_binlog_info(因为 SHOW MASTER STATUS 可能不一致),但在某些情况下,可以使用 xtrabackup_binlog_pos_innodb 来获取一致的 binlog 坐标,如使用二进制日志中所述。 | |
--safe-slave-backup | 指定后,innobackupex 将在运行 FLUSH TABLES WITH READ LOCK 之前停止副本 SQL 线程,并等待开始备份,直到 SHOW STATUS 中的 Slave_open_temp_tables 为零。 如果没有打开的临时表,将进行备份,否则将启动和停止 SQL 线程,直到没有打开的临时表。 如果 Slave_open_temp_tables 在 innobackupex --safe-slave-backup-timeout 秒后没有变为零,备份将失败。 备份完成后,副本 SQL 线程将重新启动。 | |
--rsync | 使用 rsync 实用程序优化本地文件传输。 指定此选项时,innobackupex 使用 rsync 复制所有非 InnoDB 文件,而不是为每个文件生成一个单独的 cp,这对于具有大量数据库或表的服务器来说会快得多。 此选项不能与 innobackupex --stream 一起使用。 | |
--force-non-empty-directories | 指定后,它使 innobackupex --copy-back 选项或 innobackupex --move-back 选项将文件传输到非空目录。 不会覆盖现有文件。 | |
--no-timestamp | 此选项可防止在命令行上给定的 BACKUP-ROOT-DIR 创建带时间戳的子目录。 指定后,备份将在 BACKUP-ROOT-DIR 中完成。 | |
--no-version-check | 此选项禁用版本检查。 | |
--no-backup-locks | 明确禁用了默认启用的选项 –-backup-locks( --backup-locks只有在Percona mysql才有效)。 | |
--decompress | 解压缩先前使用 innobackupex --compress 选项创建的备份中所有扩展名为 .qp 的文件。 innobackupex --parallel 选项将允许同时解密和/或解压缩多个文件。 | |
-u, --user=name | 数据库用户 | |
-H, --host=name | 数据库主机 | |
-P, --port=# | 数据库端口 | |
-p, --password=name | 数据库密码 | |
-S, --socket=name | 数据库链接的socket信息 | |
--incremental-history-name=name | 此选项指定存储在 PERCONA_SCHEMA.xtrabackup_history 历史记录中的备份系列的名称,以作为增量备份的基础。 Percona Xtrabackup 将搜索历史表以查找该系列中最近(最高的 innodb_to_lsn)、成功的备份,并将 to_lsn 值用作增量备份的起始 lsn。 这将与 innobackupex --incremental-history-uuid、innobackupex --incremental-basedir 和 innobackupex --incremental-lsn 互斥。 如果找不到有效的 lsn(没有该名称的系列,没有该名称的成功备份)xtrabackup 将返回错误。 它与 innobackupex --incremental 选项一起使用。 | |
--incremental-history-uuid=name | 此选项指定存储在 PERCONA_SCHEMA.xtrabackup_history 中的特定历史记录的 UUID,以作为增量备份的基础。 | |
--decrypt=name | 解密先前使用 –encrypt 选项创建的备份中所有扩展名为 .xbcrypt 的文件。 innobackupex --parallel 选项将允许同时解密和/或解压缩多个文件。 | |
--ftwrl-wait-query-type=name | 此选项指定在 innobackupex 发出全局锁之前允许完成哪些类型的查询。 默认为全部。 | |
--kill-long-query-type=name | 此选项指定应终止哪些类型的查询以解除全局锁定。 默认为“全部”。 | |
--history[=name] | 此选项启用对 PERCONA_SCHEMA.xtrabackup_history 表中备份历史记录的跟踪。 可以指定一个可选的历史系列名称,该名称将与当前备份的历史记录一起放置。 | |
--include=name | 此选项是一个正则表达式,用于匹配 databasename.tablename 格式的表名。 | |
--databases=name | 此选项指定 innobackupex 应备份的数据库列表。 该选项接受一个字符串参数或包含要备份的数据库列表的文件路径。 该列表的形式为“databasename1[.table_name1] databasename2[.table_name2] …”。 | |
--kill-long-queries-timeout=# | 此选项指定 innobackupex 在启动 FLUSH TABLES WITH READ LOCK 和终止那些阻止它的查询之间等待的秒数。 默认为 0 秒,这意味着 innobackupex 不会尝试终止任何查询。 为了使用这个选项,xtrabackup 用户应该有 PROCESS 和 SUPER 权限 | |
--ftwrl-wait-timeout=# | 此选项指定以秒为单位的时间,innobackupex 在运行它之前应该等待会阻塞 FLUSH TABLES WITH READ LOCK 的查询。 如果在超时到期时仍然有这样的查询,innobackupex 将以错误终止。 默认为 0,在这种情况下,innobackupex 不会等待查询完成并且会立即启动带读锁的 FLUSH TABLES。 | |
--ftwrl-wait-threshold=# | 此选项指定查询运行时间阈值,innobackupex 使用该阈值来检测具有非零值 innobackupex –ftwrl-wait-timeout 的长时间运行的查询。 FLUSH TABLES WITH READ LOCK 在存在此类长时间运行的查询之前不会启动。 如果 –ftwrl-wait-timeout 为 0,则此选项无效。默认值为 60 秒。 | |
--debug-sleep-before-unlock=# | Xtrabackup 测试套件使用的仅调试选项。 | |
--safe-slave-backup-timeout=# | innobackupex --safe-slave-backup 应该等待 Slave_open_temp_tables 变为零的秒数。 默认为 300 秒。 | |
--close-files | 不要让文件保持打开状态。 此选项直接传递给 xtrabackup。 当 xtrabackup 打开表空间时,它通常不会关闭其文件句柄以正确处理 DDL 操作。 但是,如果表空间的数量确实很大并且无法满足任何限制,则可以选择在不再访问文件句柄后关闭它们。 启用此选项后,Percona XtraBackup 可能会生成不一致的备份。 使用风险自负。 | |
--compact | 通过跳过二级索引页面来创建紧凑备份。 | |
--compress[=name] | 该选项指示 xtrabackup 压缩 InnoDB 数据文件的备份副本。 它直接传递给 xtrabackup 子进程 | |
--compress-threads=# | 此选项指定将用于并行压缩的工作线程数 | |
--compress-chunk-size=# | 此选项指定每个压缩线程的内部工作缓冲区的大小,以字节为单位。 它直接传递给 xtrabackup 子进程。 默认值为 64K | |
--encrypt=name | 此选项指示 xtrabackup 使用 ENCRYPTION_ALGORITHM 中指定的算法加密 InnoDB 数据文件的备份副本。 它直接传递给 xtrabackup 子进程。 目前,支持以下算法:AES128、AES192 和 AES256。 | |
--encrypt-key=name | 此选项指示 xtrabackup 在使用 –encrypt 选项时使用给定的适当长度的加密密钥作为 ENCRYPTION_KEY。 | |
--encrypt-key-file=# | 此选项指示 xtrabackup 在使用 –encrypt 选项时使用存储在给定 ENCRYPTION_KEY_FILE 中的加密密钥 | |
--encrypt-threads=# | 此选项指定将用于并行加密的工作线程数。 | |
--encrypt-chunk-size=# | 此选项指定每个加密线程的内部工作缓冲区的大小,以字节为单位。 它直接传递给 xtrabackup 子进程 | |
--export | 它允许导出单个表以导入到另一台服务器中。 | |
--extra-lsndir=name | 此选项接受一个字符串参数,该参数指定用于保存 xtrabackup_checkpoints 文件的额外副本的目录。 | |
--incremental-basedir=name | 此选项接受一个字符串参数,该参数指定包含作为增量备份基础数据集的完整备份的目录。 | |
--incremental-dir=name | 此选项接受一个字符串参数,该参数指定增量备份将与完整备份合并以生成新的完整备份的目录。 | |
--incremental-force-scan | 创建增量备份时,强制对实例中要用于备份的数据页进行全扫描,即使完整更改的页位图数据可用。 | |
--log-copy-interval=# | 此选项指定日志复制线程完成的检查之间的时间间隔(以毫秒为单位)。 | |
--incremental-lsn=name | 此选项接受一个字符串参数,该参数指定用于增量备份的日志序列号 (LSN)。 它与 innobackupex --incremental 选项一起使用。 它用于代替指定 innobackupex --incremental-basedir | |
--parallel=# | 此选项接受一个整数参数,该参数指定 xtrabackup 子进程应该用于并发备份文件的线程数。 请注意,此选项适用于文件级别,也就是说,如果您有多个 .ibd 文件,它们将被并行复制。 如果您的表一起存储在单个表空间文件中,则不会有任何影响。 | |
--rebuild-indexes | 此选项仅在与 --apply-log <innobackupex --apply-log> 选项一起使用时有效,并直接传递给 xtrabackup。 使用时,使 xtrabackup 在应用日志后重建所有二级索引。 此选项通常用于准备压缩备份。 | |
--rebuild-threads=# | 此选项仅在与 innobackupex --apply-log 和 innobackupex --rebuild-indexes 选项一起使用时有效,并直接传递给 xtrabackup。 使用时,xtrabackup 在重建索引时以指定线程数并行处理表空间。 | |
--stream=name | 此选项接受一个字符串参数,该参数指定执行流式备份的格式。 备份将以指定格式完成到 STDOUT。 目前,支持的格式是 tar 和 xbstream。 使用 xbstream,它在 Percona XtraBackup 发行版中可用。 如果在此选项后指定路径,它将被解释为 tmpdir 的值 | |
--tables-file=name | 此选项接受一个字符串参数,该参数指定文件中包含 database.table 形式的名称列表,每行一个。 | |
--throttle=# | 此选项限制每秒复制的块数。 块大小为 10 MB。 要将带宽限制为 10 MB/s,请将选项设置为 1:–throttle=1。 | |
-t, --tmpdir=name | 此选项接受一个字符串参数,该参数指定临时文件的存储位置。 它可以在指定 innobackupex --stream 时使用。 对于这些选项,事务日志将首先存储到一个临时文件中,然后再流式传输或复制到远程主机。 此选项指定存储该临时文件的位置。 如果未指定该选项,则默认使用从服务器配置中读取的 tmpdir 值。 innobackupex 将 my.cnf 中指定的 tmpdir 值作为 --target-dir 选项传递给 xtrabackup 二进制文件。 [mysqld] 和 [xtrabackup] 组都是从 my.cnf 中读取的。 如果两者都有 tmpdir,则使用的值取决于 my.cnf 中那些组的顺序。 | |
–use-memory=# | 此选项接受一个字符串参数,该参数指定 xtrabackup 在准备备份时用于崩溃恢复的内存量(以字节为单位)。 支持提供单位的倍数(例如 1MB、1M、1GB、1G)。 它仅与选项 innobackupex --apply-log 一起使用。 | |
-–defaults-file=[MY.CNF] | 此选项接受一个字符串参数,该参数指定要从中读取默认 MySQL 选项的文件。 必须作为命令行上的第一个选项给出。 | |
–-defaults-extra-file=[MY.CNF] | 此选项指定在标准默认文件之前从哪个额外文件中读取默认 MySQL 选项。 必须作为命令行的第一个选项给出 | |
–-defaults-group=GROUP-NAME | 此选项接受一个字符串参数,该参数指定应从配置文件中读取的组。 如果您使用 mysqld_multi,这是必需的。 这也可用于指示 mysqld 和 xtrabackup 以外的组。 | |
--apply-log-only | 此选项导致在准备备份时仅执行重做阶段。 对于增量备份非常重要 | |
--backup | 进行备份并将其放在 xtrabackup --target-dir 中。 | |
--backup-lock-retry-count= | 尝试获取元数据锁的次数。 | |
--backup-lock-timeout= | 尝试获取元数据锁的超时秒数。 | |
--binlog-info | 此选项控制 Percona XtraBackup 应如何检索与备份对应的服务器二进制日志坐标。 可能的值为 OFF、ON、LOCKLESS 和 AUTO。 | |
--dump-innodb-buffer-pool | 此选项控制是否应完成缓冲池内容的新转储,默认关闭 | |
--dump-innodb-buffer-pool-timeout | 此选项包含 xtrabackup 应监视 innodb_buffer_pool_dump_status 的值以确定缓冲池转储是否已完成的秒数。默认为10s | |
--dump-innodb-buffer-pool-pct | 该选项包含要转储的最近使用的缓冲池页面的百分比。 | |
--lock-ddl | 如果备份开始时服务器支持,则发出 LOCK TABLES FOR BACKUP(Percona mysql支持) 以阻止所有 DDL 操作。 | |
--lock-ddl-per-table | 在 xtrabackup 开始复制每个表之前锁定每个表的 DDL,直到备份完成。 | |
--lock-ddl-timeout | 如果 LOCK TABLES FOR BACKUP 在给定的超时时间内没有返回,则中止备份。 | |
–prepare | 使 xtrabackup 对使用 xtrabackup --backup 创建的备份执行恢复,以便它可以使用。 |