命令 | 功能 |
---|---|
xtrabackup | 主程序 |
innobackupex | 在以前是一个perl脚本,会调用xtrabackup这个二进制工具,从xtrabackup 2.3开始,该工具使用C语言进行了重写,当前它是xtabackup二进制工具的一个软连接,但是实际的使用方法却不同,并且在以后的版本中会删除该工具。 |
xbcrypt | 加密备份集 |
xbstream | 是xtrabackup的流数据功能,通过流数据功能,可将备份内容打包并传给管道后的压缩工具进行压缩; |
参数 | 含义 |
---|---|
–compress | 该选项表示压缩innodb数据文件的备份。 |
–compress-threads | 该选项表示并行压缩worker线程的数量。 |
–compress-chunk-size | 该选项表示每个压缩线程worker buffer的大小,单位是字节,默认是64K。 |
–encrypt | 该选项表示通过ENCRYPTION_ALGORITHM的算法加密innodb数据文件的备份. 目前支持的算法有ASE128,AES192,AES256。 |
–encrypt-threads | 该选项表示并行加密的worker线程数量。 |
–encrypt-chunk-size | 该选项表示每个加密线程worker buffer的大小,单位是字节,默认是64K。 |
–encrypt-key | 该选项使用合适长度加密key,因为会记录到命令行,所以不推荐使用。 |
–encryption-key-file | 该选项表示文件必须是一个简单二进制或者文本文件,加密key可通过以下命令行命令生成 |
–include | 该选项表示使用正则表达式匹配表的名字[db.tb],要求为其指定匹配要备份的表的完整名称,即databasename.tablename。 |
–user | 该选项表示备份账号。 |
–password | 该选项表示备份的密码。 |
–port | 该选项表示备份数据库的端口。 |
–host | 该选项表示备份数据库的地址。 |
–databases | 该选项接受的参数为数据名,如果要指定多个数据库,彼此间需要以空格隔开; 如 “xtra_test dba_test”,同时,在指定某数据库时,也可以只指定其中的某张表。如 |
–tables-file | 该选项表示指定含有表列表的文件,格式为database.table,该选项直接传给–tables-file。 |
–socket | 该选项表示mysql.sock所在位置,以便备份进程登录mysql。 |
–no-timestamp | 该选项可以表示不要创建一个时间戳目录来存储备份,指定到自己想要的备份文件夹。 |
–ibbackup | 该选项指定了使用哪个xtrabackup二进制程序。 IBBACKUP-BINARY是运行percona xtrabackup的命令。 这个选项适用于xtrbackup二进制不在你是搜索和工作目录, 如果指定了该选项,innoabackupex自动决定用的二进制程序。 |
–slave-info | 该选项表示对slave进行备份的时候使用,打印出master的名字和binlog pos, 同样将这些信息以change master的命令写入xtrabackup_slave_info文件。 可以通过基于这份备份启动一个从库。 |
–safe-slave-backup | 该选项表示为保证一致性复制状态,这个选项停止SQL线程并且等到show status中的slave_open_temp_tables为0的时候开始备份,如果没有打开临时表,bakcup会立刻开始,否则SQL线程启动或者关闭知道没有打开的临时表。 如果slave_open_temp_tables在–safe-slave-backup-timeount(默认300秒)秒之后不为0,从库sql线程会在备份完成的时候重启。 |
–rsync | 该选项表示通过rsync工具优化本地传输。 当指定这个选项,innobackupex使用rsync拷贝非Innodb文件而替换cp, 当有很多DB和表的时候会快很多,不能–stream一起使用。 |
–kill-long-queries-timeout | 该选项表示从开始执行FLUSH TABLES WITH READ LOCK到kill掉阻塞它的这些查询之间等待的秒数。 默认值为0,不会kill任何查询,使用这个选项xtrabackup需要有Process和super权限。 |
–kill-long-query-type | 该选项表示kill的类型,默认是all,可选select。 |
–ftwrl-wait-threshold | 该选项表示检测到长查询,单位是秒,表示长查询的阈值。 |
–ftwrl-wait-query-type | 该选项表示获得全局锁之前允许那种查询完成,默认是ALL,可选update。 |
–galera-info | 该选项表示生成了包含创建备份时候本地节点状态的文件xtrabackup_galera_info文件, 该选项只适用于备份PXC。 |
–stream | 该选项表示流式备份的格式,backup完成之后以指定格式到STDOUT,目前只支持tar和xbstream。 |
–defaults-file | 该选项指定了从哪个文件读取MySQL配置,必须放在命令行第一个选项的位置。 |
–defaults-extra-file | 该选项指定了在标准defaults-file之前从哪个额外的文件读取MySQL配置,必须在命令行的第一个选项的位置。 一般用于存备份用户的用户名和密码的配置文件。 |
----defaults-group | 该选项表示从配置文件读取的组,innobakcupex多个实例部署时使用。 |
–no-lock | 该选项表示关闭FTWRL的表锁,只有在所有表都是Innodb表并且不关心backup的binlog pos点,如果有任何DDL语句正在执行或者非InnoDB正在更新时(包括mysql库下的表),都不应该使用这个选项,后果是导致备份数据不一致,如果考虑备份因为获得锁失败,可以考虑–safe-slave-backup立刻停止复制线程。 |
–tmpdir | 该选项表示指定–stream的时候,指定临时文件存在哪里,在streaming和拷贝到远程server之前,事务日志首先存在临时文件里。在 使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话 xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数–tmpdir指定目录来解决这个问题。 |
–history | 该选项表示percona server 的备份历史记录在percona_schema.xtrabackup_history表。 |
–incremental | 该选项表示创建一个增量备份,需要指定–incremental-basedir。 |
–incremental-basedir | 该选项表示接受了一个字符串参数指定含有full backup的目录为增量备份的base目录,与–incremental同时使用。 |
–incremental-dir | 该选项表示增量备份的目录。 |
–incremental-force-scan | 该选项表示创建一份增量备份时,强制扫描所有增量备份中的数据页。 |
–incremental-lsn | 该选项表示指定增量备份的LSN,与–incremental选项一起使用。 |
–incremental-history-name | 该选项表示存储在PERCONA_SCHEMA.xtrabackup_history基于增量备份的历史记录的名字。Percona Xtrabackup搜索历史表查找最近(innodb_to_lsn)成功备份并且将to_lsn值作为增量备份启动出事lsn.与innobackupex–incremental-history-uuid互斥。如果没有检测到有效的lsn,xtrabackup会返回error。 |
–incremental-history-uuid | 该选项表示存储在percona_schema.xtrabackup_history基于增量备份的特定历史记录的UUID。 |
–close-files | 该选项表示关闭不再访问的文件句柄,当xtrabackup打开表空间通常并不关闭文件句柄目的是正确的处理DDL操作。如果表空间数量巨大,这是一种可以关闭不再访问的文件句柄的方法。使用该选项有风险,会有产生不一致备份的可能。 |
–compact | 该选项表示创建一份没有辅助索引的紧凑的备份。 |
–throttle | 该选项表示每秒IO操作的次数,只作用于bakcup阶段有效。apply-log和–copy-back不生效不要一起用。 |
参数 | 含义 |
---|---|
–apply-log-only | prepare备份的时候只执行redo阶段,用于增量备份。 |
–backup | 创建备份并且放入–target-dir目录中 |
–close-files | 不保持文件打开状态,xtrabackup打开表空间的时候通常不会关闭文件句柄,目的是为了正确处理DDL操作。如果表空间数量非常巨大并且不适合任何限制,一旦文件不在被访问的时候这个选项可以关闭文件句柄.打开这个选项会产生不一致的备份。 |
–compact | 创建一份没有辅助索引的紧凑备份 |
–compress | 压缩所有输出数据,包括事务日志文件和元数据文件,通过指定的压缩算法,目前唯一支持的算法是quicklz.结果文件是qpress归档格式,每个xtrabackup创建的*.qp文件都可以通过qpress程序提取或者解压缩 |
–compress-chunk-size=# | 压缩线程工作buffer的字节大小,默认是64K |
–compress-threads=# | xtrabackup进行并行数据压缩时的worker线程的数量,该选项默认值是1,并行压缩(‘compress-threads’)可以和并行文件拷贝(‘parallel’)一起使用。例如:'–parallel=4 --compress --compress-threads=2’会创建4个IO线程读取数据并通过管道传送给2个压缩线程。 |
–create-ib-logfile | 这个选项目前还没有实现,目前创建Innodb事务日志,你还是需要prepare两次。 |
–datadir=DIRECTORY | backup的源目录,mysql实例的数据目录。从my.cnf中读取,或者命令行指定。 |
–defaults-extra-file=[MY.CNF] | 在global files文件之后读取,必须在命令行的第一选项位置指定。 |
–defaults-file=[MY.CNF] | 唯一从给定文件读取默认选项,必须是个真实文件,必须在命令行第一个选项位置指定。 |
–defaults-group=GROUP-NAME | 从配置文件读取的组,innobakcupex多个实例部署时使用。 |
–export | 为导出的表创建必要的文件 |
–extra-lsndir=DIRECTORY | (for --bakcup):在指定目录创建一份xtrabakcup_checkpoints文件的额外的备份。 |
–incremental-basedir=DIRECTORY | 创建一份增量备份时,这个目录是增量别分的一份包含了full bakcup的Base数据集。 |
–incremental-dir=DIRECTORY | prepare增量备份的时候,增量备份在DIRECTORY结合full backup创建出一份新的full backup。 |
–incremental-force-scan | 创建一份增量备份时,强制扫描所有增在备份中的数据页即使完全改变的page bitmap数据可用。 |
–incremetal-lsn=LSN | 创建增量备份的时候指定lsn。 |
–innodb-log-arch-dir | 指定包含归档日志的目录。只能和xtrabackup --prepare选项一起使用。 |
–innodb-miscellaneous | 从My.cnf文件读取的一组Innodb选项。以便xtrabackup以同样的配置启动内置的Innodb。通常不需要显示指定。 |
–log-copy-interval=# | 这个选项指定了log拷贝线程check的时间间隔(默认1秒)。 |
–log-stream | xtrabakcup不拷贝数据文件,将事务日志内容重定向到标准输出直到–suspend-at-end文件被删除。这个选项自动开启–suspend-at-end。 |
–no-defaults | 不从任何选项文件中读取任何默认选项,必须在命令行第一个选项。 |
–databases=# | 指定了需要备份的数据库和表。 |
–database-file=# | 指定包含数据库和表的文件格式为databasename1.tablename1为一个元素,一个元素一行。 |
–parallel=# | 指定备份时拷贝多个数据文件并发的进程数,默认值为1。 |
–prepare | xtrabackup在一份通过–backup生成的备份执行还原操作,以便准备使用。 |
–print-default | 打印程序参数列表并退出,必须放在命令行首位。 |
–print-param | 使xtrabackup打印参数用来将数据文件拷贝到datadir并还原它们。 |
–rebuild_indexes | 在apply事务日志之后重建innodb辅助索引,只有和–prepare一起才生效。 |
–rebuild_threads=# | 在紧凑备份重建辅助索引的线程数,只有和–prepare和rebuild-index一起才生效。 |
–stats | xtrabakcup扫描指定数据文件并打印出索引统计。 |
–stream=name | 将所有备份文件以指定格式流向标准输出,目前支持的格式有xbstream和tar。 |
–suspend-at-end | 使xtrabackup在–target-dir目录中生成xtrabakcup_suspended文件。在拷贝数据文件之后xtrabackup不是退出而是继续拷贝日志文件并且等待知道xtrabakcup_suspended文件被删除。这项可以使xtrabackup和其他程序协同工作。 |
–tables=name | 正则表达式匹配database.tablename。备份匹配的表。 |
–tables-file=name | 指定文件,一个表名一行。 |
–target-dir=DIRECTORY | 指定backup的目的地,如果目录不存在,xtrabakcup会创建。如果目录存在且为空则成功。不会覆盖已存在的文件。 |
–throttle=# | 指定每秒操作读写对的数量。 |
–tmpdir=name | 当使用–print-param指定的时候打印出正确的tmpdir参数。 |
–to-archived-lsn=LSN | 指定prepare备份时apply事务日志的LSN,只能和xtarbackup --prepare选项一起用。 |
–user-memory = # | 通过–prepare prepare备份时候分配多大内存,目的像innodb_buffer_pool_size。默认值100M如果你有足够大的内存。1-2G是推荐值,支持各种单位(1MB,1M,1GB,1G)。 |
–version | 打印xtrabackup版本并退出。 |
–xbstream | 支持同时压缩和流式化。需要客服传统归档tar,cpio和其他不允许动态streaming生成的文件的限制,例如动态压缩文件,xbstream超越其他传统流式/归档格式的的优点是,并发stream多个文件并且更紧凑的数据存储(所以可以和–parallel选项选项一起使用xbstream格式进行streaming)。 |
简介:
centos
yum install -y perl rsync perl-Data-Dumper
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.5/binary/redhat/7/x86_64/percona-xtrabackup-2.3.5-1.el7.x86_64.rpm
yum clean all
yum repolist
yum localinstall percona-xtrabackup-2.3.5-1.el7.x86_64.rpm
ubuntu
wget https://repo.percona.com/apt/percona-release_0.1-6.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-6.bionic_all.deb
apt-get update
apt-get install percona-xtrabackup
source /etc/profile
create user 'xtrabackup'@'%' identified by 'YzBlZDhhM2U5Y2M';
GRANT reload,LOCK TABLES,process,replication client ON *.* TO 'xtrabackup'@'%';
flush privileges;
innobackupex --defaults-file=/etc/my.cnf --host=111.111.0.62 --port=3307 --user=xtrabackup --password=YzBlZDhhM2U5Y2M --no-timestamp --backup /root/innobackup/$(date +%Y%m%d-%H%M%S)
innobackupex --no-defaults --socket=/data/mysql/data/mysql.sock --host=111.111.0.62 --port=3307 --user=xtrabackup --password=YzBlZDhhM2U5Y2M --no-timestamp --backup /root/innobackup/$(date +%Y%m%d-%H%M%S)
innobackupex --defaults-file=/etc/my.cnf --host=111.111.0.62 --port=3307 --user=xtrabackup --password=YzBlZDhhM2U5Y2M --stream=tar |gzip -> /root/innobackup/test-mysql56-backups-$(date +%Y%m%d-%H%M%S).tar.gz
innobackupex --defaults-file=/etc/my.cnf --host=111.111.0.62 --port=3307 --user=xtrabackup --password=YzBlZDhhM2U5Y2M --no-timestamp --incremental /root/innobackup/$(date +%Y%m%d-%H%M%S) --incremental-basedir=/root/innobackup/20221012-162709
innobackupex --defaults-file=/etc/my.cnf --host=111.111.0.62 --port=3307 --user=xtrabackup --password=YzBlZDhhM2U5Y2M --no-timestamp --incremental /root/innobackup/$(date +%Y%m%d-%H%M%S) --incremental-basedir=/root/innobackup/$(ls -lt /root/innobackup/|grep -E '^d'|head -1|awk '{print $NF}')
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /root/innobackup/2022-10-12_15-34-31/
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /root/innobackup/2022-10-12_15-34-31/ --incremental-dir=/root/innobackup/2022-10-12_15-36-08/
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /root/innobackup/2022-10-12_15-34-31/ --incremental-dir=/root/innobackup/2022-10-12_15-47-19/
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /root/innobackup/2022-10-12_15-34-31/ --incremental-dir=/root/innobackup/2022-10-12_15-48-13/
innobackupex --defaults-file=/etc/my.cnf --apply-log /root/innobackup/2022-10-12_15-34-31/
[mysqld]
innodb_checksum_algorithm=innodb
#innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=524288000
#innodb_fast_checksum=false
innodb_page_size=16384
#innodb_log_block_size=512
innodb_undo_directory=.
innodb_undo_tablespaces=0
#rds_encrypt_data=false
#innodb_encrypt_algorithm=aes_128_ecb
#新增跳过授权,root无密码登录
skip-grant-tables
#注意:root目录不行 ,需要修改数据目录位置,否则没有权限启动mysql,会报错
chown -R mysql.mysql /root/innobackup/2022-10-12_15-34-31
bash -c 'cat > /etc/yum.repos.d/mysql.repo <<EOF
[MySQL-Community-5.6]
name=MySQL Community 5.6
baseurl=https://mirrors.ustc.edu.cn/mysql-repo/yum/mysql-5.6-community/el/7/x86_64/
enabled=1
gpgcheck=0
EOF' && \
yum clean all
yum install mysql mysql-server
mysqld_safe --defaults-file=/root/innobackup/2022-10-12_15-34-31/backup-my.cnf --user=mysql --datadir=/root/innobackup/2022-10-12_15-34-31/
mysql -uroot -p