当前位置: 首页 > 科技观察

必须收藏!MySQL如何保持主从同步不停机?看完这篇文章就够了

时间:2023-03-16 13:28:33 科技观察

那么在企业中主库不停的情况下,如何保持主从同步不停呢?今天就给大家分享一下企业的实际案例。实战环境Mysql-5.7Xtrabackup-2.4Xtrabackup介绍PerconaXtraBackup是一个基于MySQL的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。它可以从MySQL5.1、5.5、5.6和5.7服务器以及带有XtraDB的Percona服务器上的InnoDB、XtraDB和MyISAM表中备份数据。XtraBackXtraBackup工具upXtrabackup工具本身只能备份InnoDB和XtraDB,不能备份MyISAM。innobackupex封装了xtrabackup的perl脚本,涵盖了Xtrabackup的功能。不仅可以备份nnodb和xtradb引擎的表,还可以备份myisam引擎的表(备份myisam表时需要加读锁)。Xtrabackup的特点备份过程快速可靠;备份过程不会中断正在进行的交易;它可以基于压缩等功能节省磁盘空间和流量;自动备份验证;恢复速度快;xtrabackup备份实现原理innobackupex开启xtrabackup_log监控线程,实时监控redolog文件的变化,将新备份过程中新写入事务日志的日志复制到innobackup_log;同时启动xtrabackup复制线程,开始复制innodb文件,复制data数据结构,记录当前binlog和位置,完成备份。全量备份恢复的原理是对全量备份文件进行xtrabackup_log日志回放,重做已提交的事务,同时回滚未提交的事务。并将全量备份文件复制到mysql下的data目录下。master数据库1.安装xtrabackup工具$yuminstall-yhttp://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm$yumupdatepercona-release$yuminstallpercona-xtrabackup-24-y2,主库全量备份#全量备份$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-073。将主库备份文件压缩复制到从库$tarczfbackup.tar.gz2020-03-28_19-13-07$scp-r/data/backup/backup.tar.gz172.21.0.8:/data/backup/4.master数据库授权同步账号mysql>GRANTREPLICATIONSLAVEON*.*TO'slave'@'%'IDENTIFIEDBY'slave_passport';mysql>FLUSHPRIVILEGES;5.查看主库备份位置,从库从备份位置开始同步$cat/data/backup/2020-03-28_19-13-07/xtrabackup_binlog_infomysql-bin.0000011053从数据库操作1.全量数据恢复$cd/data/backup/&&tarxfbackup.tar.gz$innobackupex--defaults-file=/etc/my.cnf--user=root--copy-back/data/backup/2020-03-28_19-13-072、修改数据文件权限$chown-Rmysql:mysql/var/lib/mysql3、从数据库启动$systemctlrestartmysqld4.第五步查看主库备份位置,开始同步mysql>CHANGEMASTERTOMASTER_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>startslave;mysql>showslavestatus\G;#下面两个是代表正常同步Slave_IO_Running=YesSlave_SQL_Running=Yes总结Mysql主从同步,双机热备份和数据备份技术成为其中之一运维工程师必备的技术。不管在哪家公司,马哥Linux运维课上总有Mysql用户。架构备份还原,各种实例案例讲解!