问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql ab复制有哪些模式

发布网友 发布时间:2022-04-28 18:38

我来回答

3个回答

懂视网 时间:2022-05-01 10:10

        mysql复制在业界里有叫:mysql同步,ab复制等。专业名称就是叫:复制。复制是单向的异步复制,从一个Mysql(Master)复制到另一个Mysql(Slave)。实现整个主从复制,需要由Master服务器上的IO进程,和Salve服务器上的Sql进程和IO进程共同完成。

        要实现主从复制,首先必须打开Master端的二进制日志(bin-log)功能,因为整个Mysql复制过程实际上就是Slave从Master端获取相应的二进制日志文件,然后在根据相应的Position号在自己Slave端完全的执行日志中所记录的各种操作,(二进制日志文件是用sql语句写成的所以可以直接在Slave机上直接执行)。

        主从复制的基本过程如下:

        1、Mysql Slave端的IO进程链接上Master,向Master请求指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

        2、Master接受来自Slave的IO进程的请求后,负责复制的IO进程根据Slave的请求信息,读取相应日志内容,返回给Slave 的IO进程。并将本次请求读取的bin-log文件名及位置一起返回给Slave端。

        3、Slave的IO进程接受到信息后,将接受到的日志内容写入relay-log文件中,并将读取到的Master端的二进制日志文件名后Position号记录在Master-info文件中,下次根据记录的日志文件名和Position号从Master上继续复制。以确保数据的一致性。

        4、Slave的Sql进程检测到relay-log中新增加的内容后,会马上解析relay-log的内容,并在自身执行。

        这种传统的复制方法由于在Master端是多线程写入的,而在Slave端是单线程的复制,往往会造成很高的延迟,同时在配置的时候需要找到binlog和pos点,然后change master to指向,不是很有经验的运维,往往会找错,造成主从同步复制报错。而从Mysql5.6开始支持的gtid模式的主从复制从而很大程度上解决了这些问题。

        TID:Transaction ID,事务的ID号:也就是说在mysql复制中每一个事务都有自己的ID号(随机数)

        GTID:Global Transaction ID,全局事务ID,在整个事务架构中每一个事务ID号是全局唯一的,不止是在一个节点上而是整个主从复制架构中每任何两个事务的ID号都不会相同。是mysql对写入二进制日志的每个事务所作的标记。由server_uuid和事务id组成。

        简单来讲GTID能够保证让一个从服务器到其他的从服务器那里实现数据复制而且能够实现数据整合的。一个事务对应一个唯一ID,一个GTID在一个服务器上只会执行一次,相对于行复制来讲数据安全性更高,故障切换更简单。

        GTID也有它的限制,不支持非事务引擎;不支持create table … select 语句复制;不允许在一个SQL同时更新一个事务引擎和非事务引擎的表; 在一个复制组中,必须要求统一开启CTID或是关闭GTID,开启DTID后,就不在使用原来的传统的复制方式,对于createtemporary table 和drop temporary table语句不支持,不支持sqlslaveskip_counter。

        Mysql是默认是异步复制、Master在将事件写入binlon时不知道Slave是否已经接受,此时Master宕机的,Slave可能会丢失事务。在这中情况下我们可以采用半同步复制,即一个线程在Master上提交事务将受到阻塞,直到得知一个已开启半同步复制功能的Slave已收到此事务的所有事件,或等待超时。

        以下是mysql主从复制的一些简单配置

        传统ab复制(mysql版本为rhel6.5自带的mysql):

在master主机上:

vim /etc/my.cnf
  server-id=1
  log-bin=mysql-bin #启动二进制日志系统
/etc/init.d/mysqld restart
cd /var/lib/mysql

可以通过mysqlbinlog指令来插看二进制日志文件

技术分享

创建同步帐户,并给予权限

mysql -p
mysql> GRANT REPLICATION SLAVE ON *.* TO example@‘172.25.254.3‘ IDENTIFIED BY ‘Westos+123‘ ;

查看master状态

show master status;

技术分享

记录File和Position的值,在slave配置时会用到。

在slave主机上 

查看能否远程登陆master主机的mysql

mysql -h 172.25.254.2 -uexample -pWestos+123

技术分享

vim /etc/my.cnf
  server-id=2 #从服务器ID号,不要和主ID相同也不要与其他从服务器相同
/etc/init.d/mysqld restart
mysql -p

mysql> change master to
    -> master_host=‘172.25.254.2‘, #指定主服务器ip地址
    -> master_user=‘example‘,      #指定在主服务器上可以进行同步的用户名
    -> master_password=‘Westos+123‘, #同步用户的密码
    -> master_log_file=‘mysql-bin.000003‘, #上面看到的master的日志文件
    -> master_log_pos=1007;          #master机的position值
mysql> start slave;   #开启同步
mysql> show slave statusG #查看slave状态

技术分享

看到以下两个yes就表示同步开启成功

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes

我们可以通过slave状态中的延迟时间是否为0和pos号是否与master主机一致来查看同步是否完成。

。。。
Seconds_Behind_Master: 0
Exec_Master_Log_Pos: 1007
。。。

Mysql的GTID复制:(mysql为5.7社区版)

在Master主机上:

vim /etc/my.cnf
  server-id=1 
  log-bin=mysql-bin 
  gtid-mode=on   #开启gtid
  enforce-gtid-consistency=on #强制GTID的一致性
/etc/init.d/mysqld restart
mysql -p
mysql> GRANT REPLICATION SLAVE ON *.* TO example@‘172.25.254.3‘ IDENTIFIED BY ‘Westos+123‘ ;

在slave主机上

vim /etc/my.cnf
  server-id=2
  log-slave-updates #更新是否记入日志,当slave主机作为master主机是必须要有
  gtid-mode=on
  enforce-gtid-consistency=on
  slave-parallel-type=LOGICAL_CLOCK #MySQL 5.6的多线程同步仅在有多个数据库时才有明显的性能提升,MySQL 5.7.2之后,可以通过配置slave-parallel-type为LOGICAL_CLOCK来避开这个限制.
  slave-parallel-workers=16 #从服务器的SQL线程数,一个数据库同一时间只能有一个worker线程来进行工作。master_info_repository=TABLE #主服信息记录库=表/文件relay_log_info_repository=TABLE #中继日志信息记录库relay_log_recovery=ON   #在CRASH后自动放弃所有未执行的relay-log,并且重新从MASTER获取日志;保证relay-log的完整
/etc/init.d/mysqld restart
mysql -p
mysql> change master to 
    -> master_host=‘172.25.254.2‘,
    -> master_user=‘example‘,
    -> master_password=‘Westos+123‘,
    -> master_auto_position=1;
mysql> start slave;
mysql> show processlist; #可以看到开启了多个线程

技术分享

这样简单的配置就完成了,检测的方法就是在Master主机上创建一个数据库看Slave机上是否会同步。

Mysql的ab复制

标签:mysql

热心网友 时间:2022-05-01 07:18

  MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。
简言之,这种新技术就是关注表中发生变化的记录,而非以前的照抄 binlog 模式。
从 MySQL 5.1.12 开始,可以用以下三种模式来实现:
-- 基于SQL语句的复制(statement-based replication, SBR),
-- 基于行的复制(row-based replication, RBR),
-- 混合模式复制(mixed-based replication, MBR)。
相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。 MBR 模式中,SBR 模式是默认的。

  在运行时可以动态低改变binlog的格式,除了以下几种情况:
. 存储过程或者触发器中间
. 启用了NDB
. 当前会话试用 RBR 模式,并且已打开了临时表

  如果binlog采用了 MIXED 模式,那么在以下几种情况下会自动将binlog的模式由 SBR 模式改成 RBR 模式。
. 当DML语句更新一个NDB表时
. 当函数中包含 UUID() 时
. 2个及以上包含 AUTO_INCREMENT 字段的表被更新时
. 行任何 INSERT DELAYED 语句时
. 用 UDF 时
. 视图中必须要求使用 RBR 时,例如创建视图是使用了 UUID() 函数

热心网友 时间:2022-05-01 08:36

  MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。
  MYSQL复制的几种模式
  MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。
  简言之,这种新技术就是关注表中发生变化的记录,而非以前的照抄 binlog 模式。
  从 MySQL 5.1.12 开始,可以用以下三种模式来实现:
  -- 基于SQL语句的复制(statement-based replication, SBR),
  -- 基于行的复制(row-based replication, RBR),
  -- 混合模式复制(mixed-based replication, MBR)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
下载了优酷播放器iku免登录版,安装在没联网的电脑上。查看不了本地的... 播放FLV的几个问题在线等 劲舞团真的有那么好玩吗? 为什么别人说劲舞团是世界上最淫荡的游戏.. 劲舞团好玩吗?? 030221 1020 060414 2168 060417 这几组数是什么意思啊!有知道的大哥请... ...分签约短信服务-【广东农信】”是什么意思? 2168是什么意思爱情 事业单位面试成绩79分算好的吗 事业编面试成绩76分算高分吗 土豆泥的做法大全不要太多食材 烤脆皮土豆泥的做法,烤脆皮土豆泥怎么做好吃 数显卡尺数字跳变,怎么办 取新鲜鸡蛋一个泡在醋里去斑有没用! 15岁可以用白醋鸡蛋美白祛斑吗 什么是理想,未来又指的是什么 对自己未来有何理想 形容人们梦想中的未来30年后的中国是怎样的 理想、人生、未来的意思? 你所想象的未来理想的生活是什么样子的? 最近五年内有哪些适合经济学范畴内的论文题目 理想对未来是否有作用辩论? 经济学实证报告论文题目有哪些? 什么是好的社会,你理想中的未来社会是什么样的? 经济学专业写毕业论文,求比较新颖的选题 你认为理想的未来社会应该是什么样的? 经济管理论文选题什么题目比较好? 你的理想未来是什么样的? 你理想中的未来是什么样的呢? 你理想中的未来是什么样子的? 帕蒙蒂耶烤土豆泥怎么做? mysql AB复制备库不删除数据怎么做 芝士焗土豆泥的做法 mysql数据库怎么实现负载均衡技术,是lvs+mysql AB复制吗 土豆泥烤饼家常做法,正宗土豆泥烤饼怎么做 何如将MySQL的一个库, 复制到另一台机子上的MySQL中? 烤土豆泥面包片怎么做 mysql数据库可以直接复制吗 mysql5.1能配置ab复制吗 在MySQL中如何复制表 mysql怎么做一个数据库复制到另一个mysql服务器 不借助任何工具,纯sql... 请问MySQL AB是什么意思? excel总是弹出拼写检查,请问怎么处理,谢谢! 拼多多手机号和不是同一个帐号,请问,咋改成一个帐号? 如何禁止OFFICE 2003中的拼写检查 薛仁贵最后的结局? 大唐战神薛仁贵,最后是怎么死的? 薛仁贵最后的下场是怎样的 薛仁贵是怎么死的? Excel拼写检查在那个菜单下