innobackupex备份以及流备份

innobackupex备份以及流备份(远程备份只能本地备份后通过ssh传过去)(mysql stop状态下也能备份

###########源进行全备##############
innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --host=127.0.0.1 --port=3307 --user=root --password=******  \
--stream=xbstream --compress --compress-threads=5 . > ./bakfull_compress.xbstream
################传到从上进行解压#############
xbstream -x <./bakfull_compress.xbstream  -C ./restore/
cd ./restore
for f in find ./ -iname "*\.qp"; do qpress -dT2 $f  $(dirname $f) && rm -f $f; done#############恢复数据###############
###########从上停止mysqld进程#######
systemctl stop mysqld3308
innobackupex --defaults-file=/usr/local/mysql3308/etc/my.cnf --use-memory=1G --apply-log ./restore
innobackupex --defaults-file=/usr/local/mysql3308/etc/my.cnf --copy-back ./restore
chown mysql:mysql -R /usr/local/mysql3308/data
systemctl restart mysqld3308
#######登录进mysql########reset master;
set @@global.gtid_purged='0f07c648-618c-11ec-ae19-5254000aa7bf:1-2207471,
1250ceb9-b976-11ec-86ee-5254000aa7bf:1-20,
2133c30c-b977-11ec-a0e9-5254000aa7bf:1-5,
7e5451ae-b977-11ec-94ef-5254000aa7bf:1-39797';CHANGE MASTER TO
MASTER_HOST='127.0.0.1',
  MASTER_USER='repl',
  MASTER_PASSWORD='123456',
  MASTER_PORT=3307,
  MASTER_CONNECT_RETRY=10,
  MASTER_AUTO_POSITION=1;start slave;
show slave status;
 
#####################################(压缩会消耗时间导致备份时增加)##############################################
#innobackup本地备份并通过gzip压缩
innobackupex --defaults-file=/etc/my.cnf --host=192.168.100.96 --port=3306 --user=root --password=skyvis_mysql --stream=tar /temp | gzip  > ./backup.tar.gz
#innobackup本地备份并通过compress压缩(生成qp文件)
innobackupex --defaults-file=/etc/my.cnf --host=192.168.100.96 --port=3306 --user=root --password=skyvis_mysql --compress /temp

#流式备份---备份到远程通过ssh传过去,通过gzip或者--compress压缩
innobackupex --defaults-file=/etc/my.cnf --host=192.168.100.96 --port=3306 --user=root --password=skyvis_mysql --stream=tar /temp | ssh [email protected] "gzip - > /data1/backup_mysql.tar.gz"
innobackupex --defaults-file=/etc/my.cnf --host=192.168.100.96 --port=3306 --user=root --password=skyvis_mysql --stream=xbstream --compress /temp | ssh [email protected] "cat - > /data1/backup_mysql.xbstream"

#1使用xbstream展开xbstream文件
xbstream -x < ./backup_mysql.xbstream -C ./shou
#2--decompress解压qp文件,--remove-original解压完qp文件后删除qp文件.系统需要安装qpress软件
innobackupex --decompress --remove-original $(pwd)

#流式备份---备份到远程通过ssh传过去,不压缩(需要指定--stream)
innobackupex --defaults-file=/etc/my.cnf --host=192.168.100.96 --port=3306 --user=root --password=skyvis_mysql --stream=tar /temp | ssh [email protected] "cat - > /data1/backup_mysql.tar"
################################################################################

#进行第一次全备
[root@shou ~]#innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=skyvis_mysql ./restor

#进行第一次增备,基于上次的全备
[root@shou ~]#innobackupex ---defaults-file=/usr/local/mysql/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=skyvis_mysql --incremental ./restore/incer1 --incremental-basedir=./restore/2022-04-23_11-39-31

#进行第二次全备,基于第一次增备
[root@shou ~]#innobackupex ---defaults-file=/usr/local/mysql/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=skyvis_mysql --incremental ./restore/incer2 --incremental-basedir=./restore/incer1/2022-04-23_11-47-10

##########################恢复时进行数据整合####################################################

扫描二维码关注公众号,回复: 15346611 查看本文章

# 对整合的开始备份集——全备集应用日志,并指定"--redo-only"表示开始进入日志追加
innobackupex --apply-log --use-memory=1G  --redo-only ./restore/2022-04-23_11-39-31/

# 对第一个增备集进行"准备",将其追加到全备集中
innobackupex --apply-log --use-memory=1G  --redo-only ./restore/2022-04-23_11-39-31/ --incremental-dir=./restore/incer1/2022-04-23_11-47-10/

# 对第二个增备集进行"准备",将其追加到全备集中,但是不再应用"--redo-only",表示整合的结束点。如果不小心加了这个选项,影响不大,服务器将执行回滚阶段。
innobackupex --apply-log --use-memory=1G  ./restore/2022-04-23_11-39-31/ --incremental-dir=./restore/incer2/2022-04-23_11-53-19/

# 对整合完成的全备集进行一次整体的"准备"(如果上步添加了--redo-only ,执行此步骤也会回滚。)
innobackupex --apply-log --use-memory=1G  ./restore/2022-04-23_11-39-31/

###################进行数据的恢复#############################
innobackupex --defaults-file=/usr/local/mysql3308/etc/my.cnf --copy-back  ./restore/2022-04-23_11-39-31/

###############修改属主属组并启动mysqld3308###########
chown mysql:mysql -R /usr/local/mysql3308/data && systemctl start mysqld3308

#官方文档给出的恢复步骤:
innobackupex --apply-log --redo-only BASE-DIR
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
innobackupex --apply-log BASE-DIR
innobackupex --copy-back BASE-DIR
-----------------------------------
 

猜你喜欢

转载自blog.csdn.net/eagle89/article/details/130229212