文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL如何不停机维护主从同步

2024-04-02 19:55

关注

本篇文章给大家分享的是有关MySQL如何不停机维护主从同步,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

实战环境

Xtrabackup 介绍

Percona XtraBackup是一款基于MySQL的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。

它可以备份来自MySQL5.1,5.5,5.6和5.7服务器上的InnoDB,XtraDB和MyISAM表的数据,以及带有XtraDB的Percona服务器。

XtraBack XtraBackup 工具 up 工具

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;  # 下面二个Yes代表已经正常同步了Slave_IO_Running=YesSlave_SQL_Running=Yes

以上就是MySQL如何不停机维护主从同步,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯