mysql主从-主主架构设计
前言:
1. mysql主从、主主复制应用场景很多,其原理主推,从定时根据binlog增量拉取更新
2. 如果主/从机器硬件负载过高,或者网络延迟就会造成同步延迟
3. 延迟是必然,mysql复制同步解决的是数据高可用问题提供延后一致性
4. 要解决完全一致性,需要解决的高并发问题- 可以从业务粒度考虑,增加nosql中间层或者mysql proxy或者mysql 5.7提供了完全一致性方案,但数据层来处理这些问题不可取!
1 my.cnf配置
- server-id=11 #任意自然数n,只要保证两台MySQL主机不重复就可以了。
- log-bin=mysql-bin #开启二进制日志 此时为第一台主MySQL
- mysql binlog-ignore=information_schema #忽略information_schema库
- replicate-do-db=aa #要同步的数据库,默认所有库
2 实质为互为主从
master配置
GRANT REPLICATION SLAVE ON *.* TO 'slave252'@'192.168.0.252' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
show master status;
slave配置
slave stop;
CHANGE MASTER TO MASTER_HOST='192.168.0.250', MASTER_USER='slave252', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=107;
slave start;
show slave status;
master配置
GRANT REPLICATION SLAVE ON *.* TO 'slave250'@'192.168.0.250' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
show master status;
slave配置
slave stop;
CHANGE MASTER TO MASTER_HOST='192.168.0.252', MASTER_USER='slave250', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=350;
slave start;
show slave status;
3 检查从状态
Master_Host: 192.168.0.252
Master_User: slave250
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 350
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master_Server_Id: 252
4 主从同步延迟校验
Seconds_Behind_Master
5 主从延迟解决方案?
延迟出现原因:
1. mysql是被动复制机制,机制存在一定差延迟
2. 延迟是sql thread与io thread之间差值,主机器负载过高造成更新推送延迟,从机器负载过高造成拉取延迟
3. 网络延迟造成主推送或者从拉取数据缓慢而延迟
解决问题:
1. mysql主从复制解决的是数据层高可用、数据层灾备
2. 如果保证数据强一致性,可以使用mysql5.7-支持多线程复制,rpl_semi_sync_master_enabled-完全同步机制
3. 高并发分流:采用多主,谁写谁读,业务层增加nosql 层-有更新读缓存
mysql主从-主主架构设计的更多相关文章
- 学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践
简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...
- MySQL主从、主主、半同步节点架构的的原理及实验总结
一.原理及概念: MySQL 主从复制概念 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来 ...
- 【转】双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计
架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构.此架构主要是由kee ...
- 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计
前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由ke ...
- 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
双机热备的概念简单说一下,就是要保持两个数据库的状态 自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换 ...
- MySQL主从及主主环境部署
主从同步 主机环境 mysql的安装可以参考:https://www.cnblogs.com/brianzhu/p/8575243.htmlCentos7版本master:192.168.192.12 ...
- CentOS 6.5 下MySql主从、主主配置
参考网站: http://blog.csdn.net/faye0412/article/details/6280761 http://blog.csdn.net/kk185800961/article ...
- 快速理解mysql主从,主主备份原理及实践
感谢大家在上一篇 学一点Git--20分钟git快速上手 里的踊跃发言.这里再次分享干货, 简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动 ...
- mysql主从之主键冲突
收到短信报警,两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:19 ...
- mysql主从配置主主配置
一. 概述 MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能.本文档主要阐述了如何在linux系 ...
随机推荐
- Junit5 pom依赖
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter- ...
- 如何使用Redis做缓存
如何使用Redis做缓存 我们都知道Redis作为NoSql数据库的代表之一,通常会用来作为缓存使用.也是我在工作中通常使用的缓存之一. 1.我们什么时候缓存需要用到Redis? 我认为,缓存可以分为 ...
- 中国省市区--地区SQL表
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for rc_district -- ---- ...
- java Stack(栈)类、Queue和Deque队列
1. java Stack类 特性是:LIFO(后进先出)先进后出,最先进入的在栈底. Stack底层也是通过数组实现的,同时也是线程安全的 Stack stack=new Stack(); //添加 ...
- MQTT-主题基础
MQTT主题 MQTT的主题是一个utf-8编码的字符串,最大长度65535字节,严格区分大小写 MQTT主题支持分层结构,主题分隔符用'/'表示,主题的层级长度可以为0 # 将主题划分为3个层级 ' ...
- Linux期末佛脚指南
Linux的期末佛脚复习 常用文件操作命令 touch (创建文件) cat (查看文件内容) head (查看文件开头) tail (查看文件结尾) cp (复制文件) mv (移动文件) ls ( ...
- 任务系统之Jenkins子任务
今天下班即开启五一假期,早上临时定了行程去山东日照,原本计划下班就出发,但下班看了看导航,这一路红得发黑,于是决定还是晚点再走,现在有时间了,写篇简单的技术文章来提升下Blog逐渐降低的技术内容含量吧 ...
- Finalshell
使用VMware可以得到Linux虚拟机,但是在VMware中操作Linux的命令行页面不太方便 1.内容的复制.粘贴跨越VMware不方便 2.文件的上传.下载跨越VMware不方便 3.也就是和L ...
- 2020-09-10:java里Object类有哪些方法?
福哥答案2020-09-10: registerNatives:private+static.getClass:返回此 Object 的运行时类. hashCode:返回该对象的哈希码值.equals ...
- 2021-08-25:给定数组father大小为N,表示一共有N个节点,father[i] = j 表示点i的父亲是点j, father表示的树一定是一棵树而不是森林,queries是二维数组,大小为
2021-08-25:给定数组father大小为N,表示一共有N个节点,father[i] = j 表示点i的父亲是点j, father表示的树一定是一棵树而不是森林,queries是二维数组,大小为 ...