ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-03-15 22:55:41  阅读:187  来源: 互联网

标签:-- data 备份 Mysql 停机 xtrabackup mysql backup 主从


实战环境:

  • 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  innobackupex

  • Xtrabackup 本身只能备份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工具

$ yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm$ yum update percona-release$ yum install percona-xtrabackup-24 -y
2、主数据库全量备份
# 全量备份$ innobackupex  --defaults-file=/etc/my.cnf --user=root --password=magedu  /data/backup
# 保持事务一致性 apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件处于一致性状态,把已提交的事务合并到ibdata文件$ innobackupex --apply-log /data/backup/2020-03-28_19-13-07
3、 将主数据库备份文件压缩并拷贝到从数据库。
$ tar czf backup.tar.gz 2020-03-28_19-13-07$ scp -r /data/backup/backup.tar.gz 172.21.0.8:/data/backup/
4、 主库授权同步帐号
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave_passport';mysql> FLUSH PRIVILEGES;
5、查看主库备份到位置,从库从备份位置开始同步
$ cat /data/backup/2020-03-28_19-13-07/xtrabackup_binlog_infomysql-bin.000001    1053
从数据库操作1、从数据全量恢复
$ cd /data/backup/ && tar xf backup.tar.gz$ innobackupex  --defaults-file=/etc/my.cnf --user=root --copy-back /data/backup/2020-03-28_19-13-07
2、修改数据文件权限
$ chown -R mysql:mysql /var/lib/mysql
3、 启动从数据库
$ systemctl restart mysqld
4、查看主数据库第五步主库备份的位置,开始同步
mysql> CHANGE MASTER TO MASTER_HOST='172.21.0.9', \MASTER_USER='slave', \MASTER_PASSWORD='slave_passport', \MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001', \MASTER_LOG_POS=1053;
5、开启主从同步
mysql> start slave;mysql> show slave status\G;Slave_IO_Running=YesSlave_SQL_Running=Yes


标签:--,data,备份,Mysql,停机,xtrabackup,mysql,backup,主从
来源: https://blog.51cto.com/15127549/2660774

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有