mysql-xtrabackup的使用

news2024/11/16 5:44:57

一、安装

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.程序文件用途

文件名用途
innobackupexxtrabackup的软链,目前仍可使用,但是现在已经弃用,将在下一个主要版本中删除
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_innodbInnoDB 或 XtraDB 表的二进制日志文件及其当前位置。
xtrabackup_binary进程中使用的 xtrabackup 二进制文件。
xtrabackup_logfile包含运行xtrabackup --prepare所需的数据。 这个文件越大,xtrabackup --prepare 过程则需要越长的时间才能完成。
<table_name>.delta.meta执行增量备份时将创建此文件。 它包含每个表的增量元数据:页面大小,压缩大小 页面(如果值为 0,则表示表空间未压缩)和 空间 IDpage_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 创建的备份执行恢复,以便它可以使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/594032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布鲁棒和多目标非负矩阵分解】基于DR-NMF的对NMF问题噪声模型的识别鲁棒性研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

A*寻路之旅:用SDL图形化演示

前言 欢迎来到小K的数据结构专栏的第十小节&#xff0c;本节将为大家带来A*寻路算法的图形化详解&#xff0c;学了之后寻路不再迷路&#xff08;✨当然也为大家准备了完整的源码&#xff0c;好像在文章顶部欸~ &#xff09;~希望你看完之后&#xff0c;能对你有所帮助&#xff…

ctfshow 每周大挑战 RCE极限挑战4、5

看过官方wp之后复现的&#xff0c;用的payload是自己后来写的&#xff0c;可能不如官方的看着清晰 有点强迫症似的在抠细节&#xff08;x 目录 挑战4最初的思路通过HackBar拿flag的写法写法一写法二 挑战5burp中的payload 大佬们也太极限啦 挑战4 最初的思路 第4题的长度限制…

UM2082F08 125k三通道低频无线唤醒ASK接收功能的SOC芯片 汽车PKE钥匙

1产品描述 UM2082F08是基于单周期8051内核的超低功耗8位、具有三通道低频无线唤醒ASK接收功能的SOC芯片。芯片可检测30KHz~300KHz范围的LF (低频)载波频率数据并触发唤醒信号&#xff0c;同时可以调节接收灵敏度&#xff0c;确保在各种应用环境下实现可靠唤醒&#xff0c;其拥…

母婴健康老人护理医护上门陪诊产后恢复预约上门小程序源码

母婴健康老人护理医护上门陪诊产后恢复预约上门小程序 在线预约 上门打针 产后恢复 会员卡 余额充值 优惠券 分销商 unippthinkphp <template> <view class"container" :style"{background:pagebase.base.bc}"> <Pengp…

Django+Vue实现文件上传下载功能

目录 前言 上传功能 后端代码 前端代码 下载功能 后端代码 前端代码 前言 首先我要实现的页面效果是这样的 当点击上传文件按钮&#xff0c;弹出上传文件的弹出框&#xff0c;可以上传多个文件&#xff0c;点击确定后才正式开始上传 点击右侧下载按钮&#xff0c;可以直…

springboot中将logback切换为log4j2

前言 springboot默认使用logback作为日志记录框架&#xff0c;常见的日志记录框架有log4j、logback、log4j2。这篇文章我们来学习怎样将logbak替换为log4j2。 一、为什么使用log4j2&#xff1f; 我们在项目中经常使用一个叫SLF4J的依赖&#xff0c;它是做什么的呢&#xff1f; …

Java 实现在顺序表末尾插入一个元素

一、思路 1.因为我们是用数组实现的顺序表&#xff0c;因此首先要保证数组有足够的空间来进行插入元素. 2.如果数组满了就需要将数组扩容&#xff0c;没满就开始插入. 3.当前数组中的元素个数就是每一次要插入的末尾位置的下标. 4.定义一个 usedSize 来表示当前的元素个数. 5.插…

Pandas+ChatGPT强强结合诞生PandasAI,数据分析师行业要变天了?

大家好&#xff0c;我是千与千寻&#xff0c;可以叫我千寻&#xff0c;我自己主要的编程语言是Python和Java。 说到Python编程语言&#xff0c;使用Python语言主要使用的是数据科学领域的从业者。 Python编程语言之所以在数据科学领域十分火热&#xff0c;源于Python语言的三…

9.Ansible Conditions介绍

Ansible条件语句 1)上面的例子在不同的机器上安装nginx&#xff0c;不同的操作系统风格使用不同的软件包管理器&#xff61;debian使用APT, Red Hat使用Yum, 但这是两个独立的Playbook,您必须为各自的服务器使用正确的剧本&#xff61; 可以使用条件语句&#xff0c;将这两个P…

Mongodb在Linux下载安装及部署

前言 一、下载安装包 Mongodb官网&#xff1a;Download MongoDB Community Server | MongoDB 二、安装及配置 博主下载的安装包是&#xff1a;mongodb-linux-x86_64-rhel70-6.0.6.tgz 新建目录 # 进入 usr 文件夹 cd /usr# 新建 mongodb 文件夹 mkdir mongodb# 进入 mongodb …

如何自学成为黑客

学习路线 不BB&#xff0c;直接上干货。 学完下面的内容&#xff0c;绝对可以进入黑客圈。 文末有福利噢&#xff01; 第一步&#xff1a;计算机基础 了解计算机基本常识&#xff0c;常用软件使用。需要学会基本使用的软件或技术有&#xff1a;Word、VMware、VPN、Visual St…

快速实现工程化部署,亚马逊云科技为AIGC产品化提供可靠基础

本文将以Stable Diffusion Quick Kit在亚马逊云科技Amazon SageMaker上的部署来介绍Stable Diffusion模型基础知识&#xff0c;HuggingFace Diffusers接口&#xff0c;以及如何使用Quick Kit在SageMaker Endpoint上快速部署推理服务。 Stable Diffusion模型 2022年由Stability…

自己拍摄的视频剪辑时如何消音?

由于录制环境的影响&#xff0c;有时制作出来的视频原始声音可能无法达到令人满意的效果&#xff0c;可能有噪声存在。这个时候&#xff0c;就应该先消除视频原始声音&#xff0c;然后后期再去给视频添加配音。有哪些适合给自己拍摄的视频调为静音的方法&#xff0c;来看看有哪…

详解 Windows 10 安装 CUDA 和 CUDNN

目录 查看本机 Window 10 系统已经安装 NIVIDIA 的驱动版本说在前面查看驱动版本 CUDA下载直接下载最新的 CUDA下载历史版本的 CUDA 安装测试 CUDNN下载 下载最新版本的 cuDNN下载历史版本的 cuDNN, 如: cuDNN 12.0安装 关于添加系统环境变量的问题 ⭐️⭐️说在前面!!! 建议 先…

平均年薪20W,自动化测试工程师这么吃香?

自动化测试工程师&#xff0c;平均年薪20w绝对不是空穴来凤&#xff0c;甚至我还说少了&#xff0c;加上年终奖和奖金等等年薪可能还不止20w这个水平&#xff0c;让我们看看下方截图&#xff0c;【来自于职友集】 本篇文章将由以下4个部分来展开&#xff1a; 1. 什么是自动化测…

PaddleClas初体验

PaddleClas初体验 该包是由百度PaddlePaddle组织下开源的项目&#xff0c;主要用于图像分类&#xff0c;图像搜索等相关任务。 项目地址&#xff1a; https://github.com/PaddlePaddle/PaddleClashttps://pypi.org/project/paddleclas 主要构件&#xff1a; PP-ShiTu&…

企业的数据信息值钱吗?如何提升数据信息的价值?

越来越多的企业也将数据视为转型发展、重塑竞争优势和提升组织治理能力的重要战略资产&#xff0c;并对这一重要资产进行系统性、体系化的管理&#xff0c;以便充分挖掘数据的战略、战术价值。鉴于此&#xff0c;对数据资产进行体全面盘点、构建企业级的数据资产目录成为了数据…

aigc分享

AIGC技术分享 AIGC概述 AIGC的概念、应用场景和发展历程 机器学习基础 机器学习的基本概念、分类和常用算法&#xff0c;如线性回归、决策树、支持向量机、神经网络等。 深度学习基础 深度学习的基本概念、分类和常用算法&#xff0c;如卷积神经网络、循环神经网络、自编…

面试专题:java多线程(2)-- 线程池

1.为什么要用线程池&#xff1f; 线程池提供了一种限制和管理资源&#xff08;包括执行一个任务&#xff09;。 每个线程池还维护一些基本统计信息&#xff0c;例如已完成任务的数量。 这里借用《Java并发编程的艺术》提到的来说一下使用线程池的好处&#xff1a; 降低资源消…