mysql主从复制介绍

当前的生产工作中,大多数应用的mysql主从同步都是异步的复制方式,即不是严格实时的数据同步。

实时和异步:

同步复制: 指的是客户端连接到MySQL主服务器写入一段数据,MySQL主服务器同步给MySQL从服务器需要等待从服务器发出同步完成的响应才返回客户端OK, 这其中等待同步的过程是阻塞的, 如果有N台从服务器, 效率极低

异步复制: 指的是客户端连接到MySQL主服务器写入一段数据,MySQL主服务器将写入的数据发送给MySQL从服务器, 然后直接返回客户端OK, 可能从服务器的数据会和主服务不一致

半同步复制:指的是客户端连接到MySQL主服务器写入一段数据,MySQL主服务器只将数据同步复制给其中一台从服务器, 半同步复制给其他的从服务器, 来达到其中一台从服务器完全同步的效果

主从复制原理:

从库需要两个线程完成,一个叫做I/O线程,一个叫做sql线程

主库需要一个线程叫做I/O线程

主库必须要开启binlog日志才能完成主从同步,当用户请求到主的库里面,会将增删改的东西记录到binlog日志里面,主从复制是从库去找主库的,建立时,我们在从库上使用change master指定master的ip,端口,二进制文件名称,pos,master的密码等信息。并在从库上开启start  slave就会开启同步。

开启同步后,先是从向主发起请求。然后主库进行验证从库是否正常,验证之后,主库就会给从库按照信息发送日志,从库上存放日志的地方叫做中继日志(relay log),其实从库里面还有一个master info信息,这个里面记录的是change master的信息,每一次取日志回来都会对从库的master  info信息进行更新,接下来从库根据master  info的binlog信息去主库在取跟新的binlog信息,

放到中继日志里面,我们如何进行更新?

当主将binlog发送过来放到中继日志里面的时候,sql线程就会语句经过转换写到从库里面。

注意

1.开启binlog日志

2.change master(在从库上)

3.在从库开启start slave之前。这两个库的数据必须是一样的,所以讲主库的数据进行备份使用master-data=1,会记录位置的。然后从库会指定从主库备份里面找备份点。

4.要在开关之前建立专门用于主从同步的账号

5.从库打开开关的过程,其实就是打来从库两个线程的过程

6.start slave

主库返回的除了binlog日志内容外,还有本次返回日志内容后在Master服务器端的新的binlog文件名称以及在binlog中的下一个指定更新的位置。这个位置会保存在从库的master info里面。

>flush tables  with read  lock;在主库上执行加上读锁

然后另开一个窗口,连接到主mysql

>show master  status;  查看主库的binlog以及pos值。

下来是备份主库数据,将备份数据在从库上执行。目的就是让从库和主库的数据一样。

从库将主库的备份数据导入完了以后要将锁打来:

>unlocks  tables;

然后在从库上执行change  master语句。这些信息会记录在从库的master.info的信息中;(如果你备份的时候指定master-data=1)

最后一步开启start  slave;

查看是否成功使用show slave  status; 查看两个进程是否为yes。

从库里面的relay-log.info:记录sql线程从中继里面读取到的日志。

描述mysql主从复制原理

自己总结:从库的io线程会实时依据master.info信息的去主库的binlog日志里面读取更新的内容,将更新的内容取回到自己的中继日志中,同时会更新master.info信息,此时sql线程实时会从中继日志中读取并执行里面的sql语句。

描述mysql主从同步部署

自己总结:

1.将主库的数据备份,备份的时候时候master-data=1指定。然后在从库上将备份数据导入

2.在主库上给开启主库的bin-log功能,以及service-id

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_account'@'10.121.0.220' identified by '123456'

这句的意思是,允许从服务器'10.121.0.220 '使用'slave-account'及'123456'这个帐号密码对对主服务器的所有数据库(*.*)进行主从复制('REPLICATION SLAVE').

3.在主库上执行flush  tables  with  relay  locks; 读写锁。然后领开启一个窗口

4.然后只从库上执行change master   里面指定刚才创建的用户以及密码

5.执行start  slave;

6.show slave  status;看看两个线程是否启动

7.在主库上解锁。

mysql主从同步原理_mysql主从同步以及原理相关推荐

  1. mysql的主从同步问题_mysql主从同步问题梳理

    前言: MySQL主从复制故障机延迟原因有很多,之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题: 1) ...

  2. mysql 主从同步 速度_MySQL主从同步延迟原因及解决办法

    MySQL主从同步延迟原因及解决办法 MySQL主从延迟原因以及解决方案: 谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysq ...

  3. mysql 主从同步不一致_MySQL 主从同步延迟的原因及解决办法

    mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍. 主从同步基本上能做到实时同步.我从别的网站借用了主从同步的原理图. 在配置好了, 主从同步以后, 主服务器会 ...

  4. mysql 从服务器同步设置_mysql主从同步配置

    1.为什么要主从同步? 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一.尤其是在大规模系统中,数据库集群已经成为必备的配置之一.集群的好处主要有:查询负载.数据库复制备份等.其中Ma ...

  5. mysql主从同步破坏测试_mysql主从同步 错误测试(1)

    格式约定: 灰色底黑色加粗:为输入的系统命令部分 灰色底:输入的系统命令返回的信息或者配置文件文本信息 ×××底:技巧或需要注意的注释信息 粉色底:需特别注意的地方 蓝色字体:内容注释 目录 1.my ...

  6. mysql+主从同步端口_MySQL主从同步配置

    MySQL主从同步 1. 主从同步的定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave).因为复 ...

  7. mysql 主从同步恢复_MySQL主从同步错误恢复

    MySQL主从同步集群在生成环境使用过程中,如果主从服务器之间网络通信条件差或者数据库数据量非常大,容易导致MySQL主从同步延迟. MySQL主从产生延迟之后,一旦主库宕机,会导致部分数据没有及时同 ...

  8. mysql主从的原理_Mysql主从的原理

    通过MySQL主从同步,我们可以实现读写分离.数据备份和高可用性.主从同步的原理就是基于binlog进行数据同步的,binlog二进制日志记录了对数据库进行更新的事件, 比如insert.update ...

  9. mysql 半同步 原理_MySQL半同步复制原理与配置详解

    一 .异步.同步和半同步复制概念 异步复制(Asynchronous replication),MySQL默认的复制是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已 ...

最新文章

  1. Exp 8 Web基础 20164302 王一帆
  2. 【FFmpeg】FFmpeg常用基本命令
  3. 编写高质量代码改善C#程序的157个建议——建议133:用camelCasing命名私有字段和局部变量...
  4. 【python图像处理】图像的滤波(ImageFilter类详解)
  5. C#实现树型结构TreeView节点拖拽的简单功能,附全部源码,供有需要的参考
  6. 【2020任燕翔-考研专业院校选择指南】【计算机考研——针对教材、攻略】
  7. P2085 最小函数值 堆
  8. 元组字典集合内置方法与拷贝
  9. 超赞!机器学习画图模板ML Visuals更新了
  10. ubuntu mysql开发环境_Ubuntu + Nginx/PHP/MYSQL开发环境配置图文教程
  11. HDB3码的编码解释(简单粗暴)
  12. 用HTML和CSS做箭头
  13. Thunderbird – 开源免费跨平台邮箱客户端
  14. 【Maxent物种分布模型】气候变化对响尾蛇地理分布的影响
  15. PHP的eregi函数:检查字符串的有效性
  16. C++函数重载(6) - main函数重载
  17. 转载一篇知乎上的文章
  18. java核心技术读书笔记—继承
  19. 环境科学与生态学SCI期刊 高录用推荐
  20. mysql3819错误,MySQL 8.0新特性 ― 检查性约束的使用简介

热门文章

  1. ccf魔数c语言,ccf 201609-4 交通规划
  2. 编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...
  3. 武汉大学计算机学院参考书目,2020武汉大学计算机与软件工程考研初试科目、参考书目及复试详情...
  4. Mysql 零距离-入门(六)数据唯一约束性
  5. C++ 流类和流对象
  6. linux入门_linux入门-常用命令的使用
  7. 没有bug队——加贝——Python 练习实例 9,10
  8. php+分针和时针重合,时钟问题—两针重合
  9. 【OpenCV 例程200篇】39. 图像灰度的线性变换
  10. mysql 导入导出大文件