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.在从节点恢复此完全备份,并在启动复制时从记录的二进制日志文件和位置开始
问题:如何提供主节点的高可用?
mariadb主从复制架构学习笔记的更多相关文章
- aws基础架构学习笔记
文章大纲 Aws 的优势 架构完善的框架(WAF) Aws 学习笔记 Aws架构中心 Aws 的优势 4.速度优势 5.全球优势 数分钟内实现全球部署 Aws全球基础设施 Aws 数据中心 来自多家O ...
- Spring Cloud 微服务架构学习笔记与示例
本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...
- 大型视频网站YouTube架构学习笔记
http://www.kaiyuanba.cn/html/1/131/147/7540.htm这几天一直在关注和学习一些大型网站的架构,希望有一天自己也能设计一个高并发.高容错的系统并能应用在实践上. ...
- ARMv8 内存管理架构.学习笔记
http://blog.csdn.net/forever_2015/article/details/50285955 版权声明:未经博主允许不得转载,请尊重原创, 谢谢! 目 录 第1章 分级存储 ...
- mariadb数据库备份学习笔记
备份类型: 完全备份 部分备份:仅备份其中的一张表或多张表 增量备份:仅备份从上次完全备份或增量备份之后变化的数据部分 热备份:在线备份,读写操作不受影响 温备份:在线备份,读操作可继续进行,但写操作 ...
- 13 JSP、MVC开发模式、EL表达式和JSPL标签+软件设计架构---学习笔记
1.JSP (1)JSP概念:Java Server Pages 即java服务器端页面可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码用于简化书写!!! (2)原理 ...
- linux云计算集群架构学习笔记:用户管理和root用户密码重置
RHEL7用户管理 本节所讲内容: 用户和组的相关配置文件 管理用户和组 RHEL7破解root密码 与windows 相比 LINUX中的用户和账号的作用是一样的. 都是基于用户对访问的资源做控制, ...
- linux云计算集群架构学习笔记:命令查看文件内容
查看文件内容 1.cat 命令 作用:查看文件内容 语法:cat 文件名 2. more 命令 作用:分页查看文件内容 语法:more 文件名 例:more /etc/passwd 按下回车刷新一行 ...
- linux云计算集群架构学习笔记:系统文件的目录结构
文件的基本管理和XFS文件系统备份恢复 1.1 Linux系统目录结构,相对/绝对路径. 1.2 创建/复制/删除文件,rm -rf / 意外事故 1.3 查看文件内容 1.4 xfs文件系统的备 ...
随机推荐
- nyoj 79 导弹拦截
点击打开链接 拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发 ...
- asp.net子窗体与父窗体交互
今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1 用到的文件 从图1中我们可以看到,只用到了 ...
- Js字符串与十六进制的相互转换
开发过程中,字符串与十六进.二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制.下面说说具体的转换方法. 1.字符串转换为十六进制 主要使用 charCodeAt() ...
- (整理).net实现条形码与二维码
本文由来源网络的知识点组合而成,感谢分享的作者,文章结尾处给出查询资料连接. 条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常见的条形码是 ...
- php分享表单提交到本页的实例
我们在做表单提交时,一般都要设置表单的action属性,改属性用于指定表单提交到服务器上的哪个页面进行处理,但为空时,表示提交到本页进行处理,即提交给自己.本文章向大家分享表单提交给本页的实例. 实例 ...
- QQ音乐API
今天分享的是QQ音乐API 搜索歌曲API:http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0& amp;n={2}&am ...
- oracle修改连接空闲自动断开
空闲3分钟自动断开 SELECT * FROM DBA_PROFILES; CREATE PROFILE KILLIDLE LIMIT IDLE_TIME ; alter PROFILE DEFAUL ...
- ORA-00933: SQL command not properly ended
今天写了一个小的SQL语句类似下面的这句: UPDATE A SET ID=B.ID FROM A,B WHERE A.NAME=B.NAME 在执行时居然报了“ORA-00933: SQL comm ...
- 华为OJ平台——完美数
import java.util.Scanner; /** * * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数. * 它所有的真因子(即除了自身以外的约数)的和(即 ...
- 使用Servlet处理请求<http://blog.sina.com.cn/s/blog_5d3fb3cc0100ep9q.html>
一.GET和POST的区别 1.GET提交的是文本内容,规定其数据长度不超过255个字符.在GET方式提交的URL中会显示出提交的查询数据而却提交数据的缓存会在浏览器的URL历史状态中,这样我们往往在 ...