Mysql主从复制原理以及实现

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

主从复制介绍:

      由于数据存储是软件和系统最重要的一部分,所以说如何做到数据安全、性能良好,就需要考虑很多的业务和技术,而主从复制在Mysql数据库使用方面,是不可缺少的一个重要方案,我们用主从复制方案主要实现,读写分离实现负载均衡、实现实时数据备份,甚至还可以将不同的业务分到不同的备份库。

实现的原理:

Replication原理 

Mysql  Replication 是一个异步的复制过程,从一个MySQL节点(称之为Master)复制到另一个MySQL节点(称之Slave)。在 Master  Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(SQL 线程和 I/O 线程)在 Slave 端,另外一个线程(I/O 线程)在 Master 端。 要实现 MySQL  Replication ,首先必须打开 Master 端的 Binary Log,因为整个复制过程实际上就是 Slave  Master 端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。 
看上去MySQLReplication原理非常简单,总结一下: 
每个从仅可以设置一个主。 
  * 主在执行sql之后,记录二进制log文件(bin-log)。 
  * 从连接主,并从主获取binlog,存于本地relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。 

主要的架构与方案:

Master-Slave 主从同步

 wKioL1elkX7ixvBEAACU7X2OZ4k267.jpg-wh_50

Master-Slave-Slave  一主多从(A->B->C)级联方式

 

Master-Master   互为主备

wKiom1elkX7h4X_XAAARU04fZng643.png-wh_50

Master-slave主从实现方案:

基本需求:

(1)    两台虚拟机

192.168.121.105  mysql5.6.30 RPM   数据库主  master

192.168.121.146  mysql5.6.30 二进制包   数据库从   slave

2)主要的配置

Master my.cnf 开启bin-log日志server-id设置为一个随机数字,最好设置为IP之类的,从机可以不开启二进制日志,因为从机不再做同步,如果还需要做同步时,需要开启此功能,同时需要注意的是需要将server-id也设置为一个数字不能和主机相同。

wKiom1elkX6xeut_AAA4pFzdQaw073.png-wh_50

主库的配置

wKioL1elkX7S1Ci-AABQMVzm76o917.png-wh_50

从库的配置

3)在主库中创建具有replication slave权限的账户,从库用来数据同步。

连接主库,并用授权语句授权;

wKioL1elkX2xHLHKAAAeyl-_tdg614.png-wh_50

wKiom1elkX6C3utzAAA7T6M5qsw054.png-wh_50

4)还需要注意的是,当主库有大量数据时,我们要将数据备份,手动恢复到从库,然后在做主从,而数据备份的时候还要对主库锁表,只读,以防数据发生改变。

锁表命令:

1
Flush   table  with  read  lock;


 

5)锁表后查看主库的二进制日志文件名以及binlog日志偏移量,我们的数据将从这一点开始同步。



wKioL1elkhLgAVGfAAAg0FS-UH8158.png-wh_50

wKiom1elkhLBmJk9AABF_hN9miM873.png-wh_50


6)登录从库配置从库数据同步,以下的命令主要是将密码端口等信息写入到master.info文件。

1
2
CHANGE  MASTER TO MASTER_HOST='192.168.121.105', MASTER_PORT=3306,MASTER_USER='rep',MASTER_PASSWORD='123123',
MASTER_LOG_FILE="mysql-bin.000002",MASTER_LOG_POS=318;

执行完如果如果不报错时,就可以开始数据同步。

在从库上面执行

1
start  slave;

7)执行完毕后就需要查看是否同步成功,第一个yes 表示主机与从机间的同步,这两个参数比较重要,只有这两个参数都是正确的,我们才能数据同步。

8)数据同步验证

在主库建一个stu库,再观察从库

wKiom1elkhLyLJ9NAAArVb7aiZQ118.png-wh_50

wKioL1elkhKRwLaoAAAWB3Hbp4U258.png-wh_50



本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1835040,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 存储 关系型数据库
MySQL的主从复制&主从同步
MySQL的主从复制&主从同步
31 0
|
2月前
|
存储 关系型数据库 MySQL
深入理解MySQL索引:从原理到最佳实践
深入理解MySQL索引:从原理到最佳实践
204 0
|
3月前
|
算法 关系型数据库 MySQL
【MySQL 解析】数据库的乐观锁和悲观锁实现原理
【1月更文挑战第11天】【MySQL 解析】数据库的乐观锁和悲观锁实现原理
|
18天前
|
负载均衡 容灾 关系型数据库
mysql主从复制
mysql主从复制
33 1
|
1月前
|
SQL 存储 运维
MySQL高可用性:主从复制和集群
MySQL高可用性:主从复制和集群
36 0
|
17天前
|
SQL 关系型数据库 MySQL
mysql主从复制
mysql主从复制
|
1月前
|
存储 SQL 关系型数据库
[MySQL]事务原理之redo log,undo log
[MySQL]事务原理之redo log,undo log
|
1月前
|
SQL 网络协议 关系型数据库
【怒怼大厂面试官】听说你精通MySQL?来说说MySQL主从复制
面试官:MySQL主从复制了解吧?嗯嗯了解的。主要是利用了MySQL的Binary Log二进制文件。那我把二进制文件丢给从库,从库复制整个文件吗。噢噢不是的。
48 1
【怒怼大厂面试官】听说你精通MySQL?来说说MySQL主从复制
|
1月前
|
监控 负载均衡 关系型数据库
|
2月前
|
存储 SQL 关系型数据库
MySQL事务底层原理和MVCC机制
MySQL事务底层原理和MVCC机制
38 1