xtrabackup添加从库

使用xtrabackup在线添加从库:

Step1:  安装xtrabackup
    在线安装: yum install -y xtrabackup
    二进制安装: 下载二进制包,解压
    

[root@A02-R05-I135-166-8W13HP2 xtrabackup]# ls
bin  man  percona-xtrabackup-2.4-test
[root@A02-R05-I135-166-8W13HP2 xtrabackup]# ls bin/
innobackupex  xbcloud  xbcloud_osenv  xbcrypt  xbstream  xtrabackup
[root@A02-R05-I135-166-8W13HP2 xtrabackup]# ll /usr/bin/innobackupex  /usr/bin/xtrabackup 
lrwxrwxrwx 1 root root 43 7月  24 14:25 /usr/bin/innobackupex -> /export/servers/xtrabackup/bin/innobackupex
lrwxrwxrwx 1 root root 41 7月  24 14:24 /usr/bin/xtrabackup -> /export/servers/xtrabackup/bin/xtrabackup
[root@A02-R05-I135-166-8W13HP2 xtrabackup]# 


安装:
如果报perl错误,则
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel
yum -y install perl perl-devel perl-Time-HiRes perl-DBD-MySQL
yum -y install perl-Digest-MD5

    
Step2: 在主库进行全备:
     
添加新从库的方法常见的有三种:
1, 物理备份:停掉实例,将data目录全部拷贝过去; 但这种无法在线
2, 逻辑备份: mysqldump /mydumper , 针对容量大的时候,速度相当慢
3, xtrabackup 可以在不影响主库运行的状态下进行备份;,而且速度快

首先需要在主库添加备份账户
需要权限: 
process
reload
super
replication client

全备命令:
innobackupex --defaults-file=/etc/my.cnf --user=xxxxxx --password='xxxxx' --port=3358  --slave-info /export/data/dbbak

注: 因为xtrabackup是采用复制文件的方式,所以速度快,它会先备份到本地;

备份完毕后,还不能用户恢复,一些未提交事物需要提交,恢复redo log数据,确保一致性:例如备份花了3个小时, 这3个小时写的数据还在redo log中;
innobackupex --apply-log /backup/full

Step3: 数据恢复

将备份的文件夹scp 到从库机器中去,并且my.cnf scp过去,更新配置参数

innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /export/2019-07-24_16-16-19

Xtrabackup备份过程:


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

参考:https://blog.csdn.net/xianjuke008/article/details/85604094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值