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文件系统的备 ...
随机推荐
- IE,Chrome滚动条样式CSS
<style type="text/css"> *{ scrollbar-face-color:#F3F3F3; /*面子*/ scrollbar-arrow-colo ...
- sql server 作业导出放到另外一台机器执行时报错的解决方法
SQL Server2008脚本创建作业失败,提示: 引用内容消息 515,级别 16,状态 2,过程 sp_add_job,第 137 行不能将值 NULL 插入列 'owner_sid',表 'm ...
- PostgreSQL在Ubuntu上安装指南
安装环境: Ubuntu 10.04-desktop-i386 PostgreSQL 8.4 1. 安装PostgreSQL 输入如下命令 sudo apt-get install postgresq ...
- Codeforces 631C
题意:给定n和m. 给定一个长度为n的序列,m次操作. 接下来m次操作,每行第一个数若为1,则增序排列,若为2则降序排列,第二个数是排列的范围,即从第一个数排序到第某个数. 思路: 首先,对于其中范围 ...
- C++primer 练习13.39
13.39 编写你自己版本的StrVec,包括自己版本的reserve,capacity(参见9.4节,第318页)和resize(参见9.3.5节,第314页) 13.40 为你的StrVec类添加 ...
- Antlr学习
参加工作之后,接触DSL领域语言,了解了编译原理. 比如Hibernate.Hive等的HQL都是基于antlr编写的 所以,如果想自己实现一套DSL语言,我们可以基于antlr做词法分析与语法分析 ...
- jdk线程的同步问题
一.银行取款引出的问题 模拟银行取钱的例子: public class ThreadDemo06 { public static void main(String[] args) { Bank ban ...
- iOS 5.0 后UIViewController新增:willMoveToParentViewController和didMoveToParentViewCon[转]
在iOS 5.0以前,我们在一个UIViewController中这样组织相关的UIView 在以前,一个UIViewController的View可能有很多小的子view.这些子view很多时候 ...
- String 去重,区分大小写
题目要求:去除,和.,相同的单词去除后面的.区分大小写 示例:输入:There is a will,there is a way. 输出There is a will there way 答案代码: ...
- CentOS yum kvm
首先,需要我们的cpu支持虚拟化,有的机器支持但是并未在bios开启,这个需要事先开启. 1. Dell R710安装centos6.7 64位 ,Dell R710在开机后按F2进入BIOS,Pro ...