我是靠谱客的博主 发嗲诺言,最近开发中收集的这篇文章主要介绍mysql主从查看sbr rbr_MySQL主从,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍

主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。复制是异步的从服务器不需要永久连接以接收来自主节点的更新。复制可以指定数据库和指定表进行复制。

MySQL主从带来优势:

横向扩展:实现读写分离,降低主库访问压力,提高整体服务吞吐量;

数据安全:实现实时备份数据,减少数据丢失风险,同时控制从库只读给只需要查询的用户使用,增加数据安全性;

灾备:当主库出现问题,可以切换从库提供服务;

分析:可以在主服务器上创建实时数据,而信息分析可以在从服务器上进行,而不会影响主服务器的性能;

远程数据分发:可以使用复制为远程站点创建数据的本地副本,而无需永久访问主服务器。

主从复制原理

主节点开启Binary log后, 从节点便可以同步相应操作到本地并执行更新以实现主从同步。同步流程如下图:

1. 主服务器上面的所有变更保存在二进制日志Binary log里面。

2. 从服务器上面启动一个I/O线程,通过配置好的用户名和密码, 连接到主服务器上面请求读取二进制日志,主库随后创建Binlog Dump线程读取数据库事件并发给I/O线程, I/O线程然后把读取到的二进制日志写到本地的一个Realy log(中继日志)里面。

3. 从服务器上面同时开启一个SQL线程定时检查Realy log(这个文件也是二进制的),如果发现有更新立即把更新的内容在本机的数据库上面执行一遍。

每个从服务器都会收到主服务器二进制日志的全部内容的副本。从服务器设备负责决定应该执行二进制日志中的哪些语句。除非另行指定,否则主从二进制日志中的所有事件都在从节点上执行。每个从节点都会记录二进制日志坐标(文件名、文件读取位置)。由于每个从服务器都分别记录了自己当前处理二进制日志中的位置,因此可以断开从服务器的连接,重新连接然后恢复继续处理。

复制方式

MySQL主从复制主要有基于SQL复制、基于行复制、混合模式复制等复制方式。

基于SQL复制(statement-based replication, SBR)

基于SQL复制是目前默认方式。

优点:

历史悠久,技术成熟,binlog 文件较小;

binlog 中包含了所有数据库更改信息,可以据此来审核数据库的安全等情况;

binlog 可以用于实时的还原,而不仅仅用于复制;

主从版本可以不一样,从服务器版本可以比主服务器版本高。

缺点:

不是所有的 UPDATE 语句都能被复制,尤其是包含不确定操作的时候;

复制需要进行全表扫描(WHERE 语句中没有使用到索引)的 UPDATE 时,需要比 RBR 请求更多的行级锁;

对于一些复杂的语句,在从服务器上的耗资源情况会更严重,而 RBR 模式下,只会对那个发生变化的记录产生影响。数据表必须几乎和主服务器保持一致才行,否则可能会导致复制出错;

执行复杂语句如果出错的话,会消耗更多资源。

基于行复制(row-based replication, RBR)

优点:

任何情况都可以被复制,这对复制来说是最安全可靠的;

和其他大多数数据库系统的复制技术一样;

多数情况下,从服务器上的表如果有主键的话,复制就会快了很多。

缺点:

binlog 大了很多;

复杂的回滚时 binlog 中会包含大量的数据;

主服务器上执行 UPDATE 语句时,所有发生变化的记录都会写到 binlog 中,而 SBR 只会写一次,这会导致频繁发生 binlog 的并发写问题;

无法从 binlog 中看到都复制了写什么语句。

主从操作过程

主节点操作

在配置文设置如下配置修改:

server-id=1log-bin="D:/MySQL/data/bin-log"binlog-ignore-db=mysqlbinlog-do-db=test

授权从节点用户复制,如:

GRANT REPLICATION slave,reload,super ON *.* TO 'user'@'IP' IDENTIFIED BY 'user';flush privileges;

查看主节点状态:show master status;

从节点操作

在配置文设置如下配置修改:

server-id=2replicate-do-db=test

设置主节点,主节点信息在主节点上查看:

CHANGE MASTER TOMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='',MASTER_PORT=3306,master_log_file='mysql-bing.00001',master_log_pos=1;

开启主从同步,从节点上执行:start slave;

检查同步状态:show slave status;

暂停同步:stop slave;

参考:

https://www.jianshu.com/p/faf0127f1cb2

最后

以上就是发嗲诺言为你收集整理的mysql主从查看sbr rbr_MySQL主从的全部内容,希望文章能够帮你解决mysql主从查看sbr rbr_MySQL主从所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部