mysql 主从维护_企业实战|Mysql不停机维护主从同步

实战环境:Mysql-5.7

Xtrabackup-2.4

Xtrabackup 介绍:

Percona XtraBackup是一款基于MySQL的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。它可以备份来自MySQL5.1,5.5,5.6和5.7服务器上的InnoDB,XtraDB和MyISAM表的数据,以及带有XtraDB的Percona服务器。

XtraBackup 有两个工具:xtrabackup 和 innobackupexXtrabackup 本身只能备份InnoDB和XtraDB,不能备份MyISAM;

innobackupex 它是封装了xtrabackup的perl脚本,覆盖了xtrabackup的功能。

它不但可以备份nnodb和xtradb两种引擎的表,还可以备份myisam引擎的表(在备份myisam表时需要加一个读锁)。

Xtrabackup特点:备份过程快速、可靠;

备份过程不会打断正在执行的事务;

能够基于压缩等功能节约磁盘空间和流量;

自动实现备份检验;

还原速度快;

Xtrabackup备份实现原理:

innobackupex开启xtrabackup_log监控线程,实时监测redolog文件的变化,将新备份过程中新写入到事务日志中的日志拷贝至innobackup_log中;同时开启xtrabackup拷贝线程,开始拷贝innodb文件,拷贝数据数据结构,记录当前binlog及position完成备份。

全备恢复原理:

将全备文件进行xtrabackup_log日志回放,并对提交的事务进行重做,同时rollback未提交的事务。并将全备文件复制到mysql 下的data目录下。

主数据库

1、安装xtrabackup工具

1.$ yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

2.$ yum update percona-release

3.$ yum install percona-xtrabackup-24 -y

2、主数据库全量备份

1.# 全量备份

2.$ innobackupex --defaults-file=/etc/my.cnf --user=root --password=magedu /data/backup

3.# 保持事务一致性 apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件处于一致性状态,把已提交的事务合并到ibdata文件

4.$ innobackupex --apply-log /data/backup/2020-03-28_19-13-07

5.

3、 将主数据库备份文件压缩并拷贝到从数据库。

1.$ tar czf backup.tar.gz 2020-03-28_19-13-07

2.$ scp -r /data/backup/backup.tar.gz 172.21.0.8:/data/backup/

4、 主库授权同步帐号

1.mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave_passport';mysql> FLUSH PRIVILEGES;

5、查看主库备份到位置,从库从备份位置开始同步

1.$ cat /data/backup/2020-03-28_19-13-07/xtrabackup_binlog_infomysql-bin.000001 1053

从数据库操作

1、从数据全量恢复

1.$ cd /data/backup/ && tar xf backup.tar.gz

2.$ innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /data/backup/2020-03-28_19-13-07

2、修改数据文件权限

1.$ chown -R mysql:mysql /var/lib/mysql

3、 启动从数据库

1.$ systemctl restart mysqld

4、查看主数据库第五步主库备份的位置,开始同步

1.mysql> CHANGE MASTER TO MASTER_HOST='172.21.0.9', \

2.MASTER_USER='slave', \

3.MASTER_PASSWORD='slave_passport', \

4.MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001', \

5.MASTER_LOG_POS=1053;

5、开启主从同步

1.mysql> start slave;mysql> show slave status\G;Slave_IO_Running=YesSlave_SQL_Runni

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值