首页 > 数据库 >Mysql主从同步

Mysql主从同步

时间:2023-03-27 13:23:12浏览次数:38  
标签:主库 事务 同步 提交 Mysql 从库 主从 客户端

什么是Mysql主从同步

  • 从库同步主库上的数据,(让其他数据库服务器自动同步当前正在被访问的数据服务器上的数据)

 

 

 

MYSQL主从复制的模式

 

 

 1.异步模式(默认方式)

异步模式下,主节点执行完客户端提交的事务后立即提交事务并返回给客户端,并不关心 log dump 线程是否成功地将将此次事务写进 binglog 并且发送给从库。假如执行事务的主线程提交事务后,log dump 线程还未来得及写入 binlog,此时系统宕机,则会造成 binglog 中没有保存刚才提交的事务,造成主从数据不一致
优点:异步模式下,主线程不用关系同步操作,性能最好

缺点:可能导致主从数据的不一致

 

2.半同步复制

半同步方式,当主库在执行完客户端提交的事务后不是立即提交事务,而是等待 log dump 线程将此次事务同步到binlog 发送给从库,并且至少一个从库成功保存到其relay log中,此时主库的才提交事务并返回客户端。

优点:相比于异步模式,半同步方式一定程度上保证了数据同步的可靠性

缺点:增加了主库响应客户端的延时,延时至少为一个TCP/IP的往返时间,即 binglog 发送给从库至收到从库的响应时间。

 

3.全同步赋值

全同步方式,当主库在执行完客户端提交的事务后,必须等待此次的binlog发送给从库,并且所有从库成功地执行完该事务后,主库才能返回客户端。其与半同步复制的区别如下:半同步下,主库等待binlog写入到从库的relay log即可返回,全同步方式下,必须等到从库执行事务成功

半同步下,至少一个从库响应后主库即可返回客户端,全同步下必须等待所有的从库返回

优点:对比半同步复制方式,全同步复制方式数据一致性的可靠性进一步提高

缺点:执行事务,主库需要等待所有的从库执行成功后才能返回,所以会大大提高主库的响应时间

 

标签:主库,事务,同步,提交,Mysql,从库,主从,客户端
From: https://www.cnblogs.com/qihaokuan/p/17261206.html

相关文章

  • java代码备份mysql数据库
    生成环境的数据库我们需要不断的进行备份,不然服务器出现故障,会是灾难性的直接添加我的代码packagecom.hrp.task;importcom.alibaba.fastjson.JSON;importcom.bas......
  • mysql查看死锁
    查看死锁Mysql查询是否存在锁表有多种方式,这里只介绍一种最常用的。1、查看正在进行中的事务SELECT*FROMinformation_schema.INNODB_TRX2、查看正在锁的事务......
  • Mysql 修改表编码
    Mysql修改表编码,字段编码还是以前的Mysql修改表编码,字段编码未变ALTERTABLE`table6`CONVERTTOCHARACTERSETutf8mb4COLLATEutf8mb4_bin;--ALTERTABLE`rent......
  • MYSQL执行顺序
    MYSQL的执行顺序如下所示:fromonjoinwheregroupbyhavingselectdistinctunionorderby可以看到,select是在where后执行的,也就是说,select下的窗口函数也是在where之后执行的......
  • 自动生成sql 这是MySQL例子
    @TestpublicvoidtestGeneSql(){try{Stringss=getFileContentTwo("D:\test\13json.txt");JSONObjectjo=JSONObject.parseObject(ss);JSONAr......
  • MySQL联合索引创建规则
    1、索引应该按照最常用于查询的列的顺序创建。这样可以最大程度地提高查询性能。2、如果查询中包含的列与索引中的列顺序不一致,则无法使用索引。因此,如果您有多个查询,每个......
  • 域控时间同步问题
    域控和加入域控的客户端没有internet时间卡,参照如下链接配置https://www.cnblogs.com/gered/p/15587276.html 中国国家授时中心时间源服务器:ntp.ntsc.ac.cn[114.118.7......
  • Centos7 安装 mysql 8
    安装1.配置yum仓库#更新密钥rpm-importhttps:/repo.mysql.com/RPM-GPG-KEYmysql-202#安装Mysql8.x版本yum库rpm-Uvhhttps:/dev.mysql.com/get/mysql80-commu......
  • [pymysql]新增数据-手工新增-自动新增-批量执行
    1.手工新增importpymysql#获取连接conn=pymysql.connect(host='10.105.212.1',port=3306,user='root',password='DemoDemo',database='......
  • 多线程的同步和互斥—线程的信号量
    同步://account.h#ifndef_ACCOUNT_H#define_ACCOUNT_H#include<pthread.h>#include<semaphore.h>typedefstruct{intcode;doublebalance;......