xtrabackup+binlog備份MySQL數據庫

說明:XtraBackup是Percona公司研发的一款备份软件,Percona XtraBackup 8.0支持备份mysql8,之前的Percona XtraBackup 2.x 只能备份到5.7

xtrabackup 備份原理:
备份开始时,首先会开启一个后台检测进程,实时检测mysql redo的变化,一旦发现redo中有新的日志写入,立刻将日志记入后台日志文件xtrabackup_log中。之后复制innodb的数据文件和系统表空间文件ibdata1,待复制结束后,执行flushtables with read lock操作,复制.frm,MYI,MYD,等文件(执行flush tableswith read lock的目的是为了防止数据表发生DDL操作,并且在这一时刻获得binlog的位置)最后会发出unlock tables,把表设置为可读可写状态,最终停止xtrabackup_log。

此处以xtrabackup 8.0,红帽7为例(命令参数与xtrabackup 2.4有区别):
xtrabackup 下载地址:https://www.percona.com/downloads/

安装依赖:
yum install perl-DBI
yum install perl-DBD-MySQL
rpm -ivh libev-4.15-3.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-80-8.0.22-15.1.el7.x86_64.rpm

全库全量備份:
xtrabackup --defaults-file=/etc/my.cnf --no-timestamp --user=root --password=xxxxx --backup --target-dir=/data/xtrabackup/all-20210316.bak

补偿在备份过程中产生的redo日志信息
xtrabackup --prepare --target-dir=/data/xtrabackup/all-20210316.bak

恢复:
关闭数据库
mysqladmin shutdown
再冷备一下数据文件(此处为测试时为防止恢复失败,正式恢复是可以省略)
mv /home/mysql3308/mysql3308 /home/mysql3308/mysql3308bak
mv /data/xtrabackup/all-20210316.bak /home/mysql3308/mysql3308
chown -R mysql:mysql /home/mysql3308
打开数据库
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

追加binlog
查看xtrabackup_binlog_info文件获取备份结束时的binlog文件编号和position点位置。
[root@recover-test mysql3308]# cat xtrabackup_binlog_info
mysql-bin.000057 156

解析binlog
mysqlbinlog --no-defaults -vv --start-position=156 /home/mysql3308/mysql3308bak/mysql-bin.000057 > recover.sql

清空GTID,最好先备份 binlog
reset master

应用 binlog
SQL>source recover.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值