MySQL乱弹笔记

【备份工具】XtraBackup 流式传输和压缩备份-远程备份

2021-01-28  本文已影响0人  醉红尘丶

环境

1.使用 xbstream

1.1 无压缩全量备份

1.1.1 备份

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --stream=xbstream --target-dir=/app/backup > /app/backup/xtra_full_`date +%Y%m%d%H%M%S`.xbstream
  • 【可选】开启了并行--parallel=2

1.1.2 解包

# 创建解包后的数据目录
mkdir /app/backup/data

cat /app/backup/xtra_full_20210127173747.xbstream | xbstream -x -v -C /app/backup/data

1.2 全量备份并压缩

1.2.1 备份

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --compress --stream=xbstream --target-dir=/app/backup > /app/backup/xtra_full_`date +%Y%m%d%H%M%S`.xbstream
  • 【可选】开启了并行--parallel=2

1.2.2 解包

# 创建解包后的数据目录
mkdir /app/backup/data

# 解包,解压出都是qb文件
cat /app/backup/xtra_full_20210127173747.xbstream | xbstream -x -v -C /app/backup/data

# 解压缩解包出的文件,并删除qb原文件
xtrabackup --decompress --remove-original --target-dir=/app/backup/data

1.3 将压缩备份发送到另一台主机

需要配置连接远程服务器ssh免密

echo "192.168.66.101 initnode" >> /etc/hosts
ssh-keygen # 一路回车
ssh-copy-id initnode

备份到远程目录

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --stream=xbstream --target-dir=/app/backup | ssh root@initnode \ "cat - > /data/backup/xtra_full_`date +%Y%m%d%H%M%S`.xbstream"
  • 【可选】开启了并行--parallel=2

1.4 将压缩备份发送到另一台主机并解包

这个需要在备份服务器上也安装xtrabackup

# 远程备份机上创建
mkdir /data/backup/data_`date +%Y%m%d`

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --stream=xbstream --target-dir=/app/backup | ssh root@initnode "xbstream -x -v -C /data/backup/data_`date +%Y%m%d`"

2.使用 tar

2.1 无压缩全量备份

2.1.1 备份

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --stream=tar --target-dir=/app/backup > /app/backup/xtra_full_`date +%Y%m%d%H%M%S`.tar

2.1.2 解压

# 创建解压目录
mkdir -p /app/backup/data

tar -xvf xtra_full_20210127194352.tar -C /app/backup/data

2.2 全量备份并压缩

2.2.1 备份

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --stream=tar --target-dir=/app/backup|gzip - > /app/backup/xtra_full_`date +%Y%m%d%H%M%S`.tar
  • 【可选】开启了并行--parallel=2

2.2.2 解压

tar -zxvf xtra_full_20210127194850.tar -C /app/backup/data

2.3 将压缩备份发送到另一台主机

xtrabackup --defaults-file=/etc/my.cnf --user=databak  -S /tmp/mysql.sock --parallel=2 --backup --stream=tar --target-dir=/app/backup|gzip | ssh root@initnode \ "cat - > /data/backup/xtra_full_`date +%Y%m%d`.tar"
  • 【可选】开启了并行--parallel=2
上一篇 下一篇

猜你喜欢

热点阅读