mariadb主从复制架构学习笔记

复制功用:

  数据分布
  负载均衡:读操作,适用于读密集型的应用
  备份
  高可用和故障切换
  MySQL升级测试

在从服务器上有两个线程:

  I/O线程:从master请求二进制日志信息,并保存至中继日志

  SQL线程:从relay log中读取日志信息,在本地完成重放

在主服务器上为每个从服务器的I/O线程启动一个dump线程,向其发送binary log events

过程图:

  

补充:对数据库修改的操作首先得应用到磁盘文件才能被写入磁盘二进制日志,因此不可避免从服务器上的数据是会落后于主服务器的

随着网站的发展,当主节点拥有过多从服务器,会给主节点带来过大压力,可以专门使用一台从服务器从主节点上复制二进制日志,再使此从节点变为其他从节点的主节点

过程图:

补充:第一台从服务器不需要存储数据,它只负责传递二进制日志,因此此从服务器的数据库引擎使用BLACKHOLE 当重放中继日志时,它会把所有的数据都放入/dev/null(这相当于一个宇宙黑洞)

二进制日志的格式:建议使用mixed模式,如果可以使用row模式

主从配置过程:

  主:1.启用二进制日志,2.设置一个在当前集群中惟一的server-id(以上两步在配置文件中修改):

    

  3.创建一个有复制权限(REPLICATION SLAVE, REPLICATION CLIENT)账号:

      grant replication slave,replication client on *.* to ‘repl‘@‘%‘ identified by ‘replpass‘;

      flush privileges;

  从:1.启用中继日志,2.设置一个在当前集群中惟一的server-id(以上两步在配置文件中修改):

    

    3.使用有复制权限用户账号连接至主服务器,并启动复制线程: 

change master to master_host=‘192.168.238.224‘,master_user=‘repl‘,master_password=‘replpass‘,master_log_file=‘ON.000003‘,master_log_pos=4;

使用help change master to查看命令帮助

start slave;  开启I/O和SQL线程

show slave status; 查看同步状态,其中的Seconds_Behind_Master可以查看是否落后主节点,以及落后多少

查看从节点是否只读show global variables like ‘read_only‘;

log_slave_updates = 1 (允许备库将其重放的事件也记录到自身的二进制日志,这样自己既可是从节点也可是主节点)

sync_binlog =1 mysql每次在提交内存中的事物会将内存中的二进制日志同步到磁盘上,保证在服务器崩溃的时候不会丢失事件(强烈建在主节点开启)

innodb_support_xa 默认为true,如果关闭则binlog记录事务的顺序可能与实际不符,造成slave不一致    

如果有一台新的从服务器加入,该怎么融入架构中:

    1.在主节点做一个完全备份,并记录二进制日志文件及位置

    2.在从节点恢复此完全备份,并在启动复制时从记录的二进制日志文件和位置开始

问题:如何提供主节点的高可用?

时间: 2024-11-09 15:46:26

mariadb主从复制架构学习笔记的相关文章

转:大型网站架构学习笔记

前言 最近一直在拜读两本书: 1.李智慧老师的<大型网站技术架构 核心原理与案例分析> http://www.linuxidc.com/Linux/2015-11/125137.htm 2.曾宪杰老师的<大型网站系统与Java中间件实践> http://www.linuxidc.com/Linux/2015-11/125138.htm 看了并结合自己目前的工作进行了思考,感觉获益匪浅.受益良多,自己对大型网站的理解又有了不少的加深,下面分享一下自己的学习笔记. 学习笔记 1.大型网

大型网站架构学习笔记

前言 最近一直在拜读两本书: 1.李智慧老师的<大型网站技术架构 核心原理与案例分析> 2.曾宪杰老师的<大型网站系统与Java中间件实践> 看了并结合自己目前的项目进行了思考,感觉获益匪浅.受益良多,自己对大型网站的理解又有了不少的加深,下面分享一下自己的学习笔记. 学习笔记 1.大型网站架构的发展史(红字就是每一步发展历程的关键) (1)从一个小网站发展起来,一台服务器,应用程序.数据库.文件等所有资源都在一台服务器上 (2)网站业务的发展,一台服务器逐渐不能满足需求,因此要将

mysql/mariadb主从复制架构配置及过程中出现的问题

两台CentOS7系虚拟主机:分别是:主服务器172.16.75.1,从服务器172.16.75.2使用的是mariadb-5.5.56,即centOS自带的软件版本为了使实验结果显示精准,此处关闭两台服务器的防火墙和SELinux:[[email protected] ~]# setenforce 0[[email protected] ~]# iptables -F 一.首先在主服务器172.16.75.1上配置:在/etc/my.cnf中配置如下:[mysqld]###定义二进制日志的存放

企业应用架构学习笔记

最近因为要学习领域驱动设计,在看到<领域驱动设计:软件核心复杂性应对之道>时,里面很多地方都提到了<企业应用架构模式>,企业应用架构这本书是由非常著名的Martin Fowler 写的,Martin Fowler 除了总结过企业架构的设计模式之外,还写了非常多的其它软件工程相关的文章,比如曾总结过IOC,写过分析模式,写过代码重构模式,具体可参看他的个人网站http://www.martinfowler.com/articles/injection.html,等我英文阅读能力提高了

大型视频网站YouTube架构学习笔记

http://www.kaiyuanba.cn/html/1/131/147/7540.htm这几天一直在关注和学习一些大型网站的架构,希望有一天自己也能设计一个高并发.高容错的系统并能应用在实践上.今天在网上找架构相关的资料时,看到一个被和谐的视频网站YouTube的架构分析,看了以后觉得自己又向架构走近了一步,于是赶快拿出来与大家一起分享. YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性.这点和PlentyOfFish类似,少数人维护庞大系统.是什么原因

优酷网的架构学习笔记

记得以前给大家介绍过视频网站龙头老大YouTube的技术架构, 相信大家看了都会有不少的感触,互联网就是这么一个神奇的东西.今天我突然想到,优酷网在国内也算是视频网站的老大了,不知道他的架构相对于 YouTube是怎么样的,于是带着这个好奇心去网上找了优酷网架构的各方面资料,虽然谈得没有YouTube那么详细,但多少还是挖掘了一点,现在总结 一下,希望对喜欢架构的朋友有所帮助. 一.网站基本数据概览 据2010年统计,优酷网日均独立访问人数(uv)达到了8900万,日均访问量(pv)更是达到了1

架构学习笔记

.系统之间耦合:用异步处理代替同步处理 针对系统异常,提供降级处理,提供有限的合格服务.前端页面系统,php, 使用优化器来优化php代码. 将系统进行分级,按照重要性: 一级系统:因为是强依赖关系,所以要同步调用,重试机制. 二级系统,异步调用. 系统拆分后,单独改造系统,优化系统容易.相互隔离,调试和排错方便. 大系统做小,小系统做大(精通). 服务soa化:高内聚,低耦合.零售型电商的主流办法.拥有更好的伸缩性和扩展性.拆分让系统性能瓶颈更容易定位. 如何降级处理,我没接触过.只是有这个概

linux云计算集群架构学习笔记:1-3 查看文件内容

查看文件内容 1.cat 命令 作用:查看文件内容 语法:cat 文件名 2. more 命令 作用:分页查看文件内容 语法:more  文件名 例:more /etc/passwd 按下回车刷新一行,按下空格刷新一屏 退出:按q健 3.less 命令 作用:分页查看文件内容 语法:less 文件名 例:less  /etc/passwd 使用光标键可以向上翻页 退出:按q健 小结: linux中more与less的区别 more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是

linux云计算集群架构学习笔记: 1-2 文件的目录结构

文件的基本管理和XFS文件系统备份恢复 1.1  Linux系统目录结构,相对/绝对路径. 1.2  创建/复制/删除文件,rm -rf / 意外事故 1.3 查看文件内容 1.4 xfs文件系统的备份和恢复 在windows中文件在磁盘里如上图, 而在Linux当中一切都是文件,没有磁盘的概念了,这是 linux与windows的不同,设备也看成文件 1.1.1  linux系统目录结构 /   /home   /root   /dev   /usr   /etc   /boot   /lib