Mysql集群和主从
1、Mysql cluster: share-nothing,分布式节点架构的存储方案,以便于提供容错性和高性能。
需要用到mysql cluster安装包,在集群中的每一个机器上安装。
有三个关键概念:Sql节点(多个),数据节点(多个),管理节点(一个),数据节点之间采用的是同步复制来保证各节点之间的数据一致性。
同步复制:
a) Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交。
b) 每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好(或者无法准备该事务)。
c) Master等待所有Slave发送OK或ABORT消息,如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;如果 Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。
e) 每个Slave等待来自Master的OK或ABORT消息。如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。
f) Master收到来自所有Slave的确认后,就会报告该事务被提交(或中止),然后继续进行下一个事务处理。
由于同步复制一共需要4次消息传递,故mysql cluster的数据更新速度比单机mysql要慢。所以mysql cluster要求运行在千兆以上的局域网内,节点可以采用双网卡,节点组之间采用直连方式。
2、主从(Master-Slave): 主从机器上安装mysql community(普通版)就可以。
主从之间是通过mysql的replication来保证数据的一致性。相对mysql cluster的数据同步方式来讲是异步的。
Replication:主节点要开启binlog,设置一个唯一的服务器id(局域网内唯一);从节点设置服务器id,binlog记录了master上的所有操作,会被复制到从节点的relaylog并在从节点上回放。
Mysql集群和主从的更多相关文章
- MySql集群FAQ----mysql主从配置与集群区别、集群中需要多少台计算机呢?为什么? 等
抽取一部分显示在这里,如下, What's the difference in using Clustervs using replication? 在复制系统中,一个MySQL主服务器会更新一个或多 ...
- mysql集群(主从)
本文主要记录mysql 主从配置. 经典的原理图 0.环境: 采用阿里云ECS服务器,同区同配置,操作系统为ubuntus 14 64位,服务器如下: 服务器A: 内网IP: 10.44.94.219 ...
- MySQL集群原理详解
1. 为什么需要分布式数据库2. MySQL Cluster原理3. MySQL Cluster的优缺点4. MySQL Cluster国内应用5. 参考资料 1. 为什么需要分布式数据库 随着计算机 ...
- mysql 集群+主从同步
SQL节点: 给上层应用层提供sql访问. 管理节点(MGM): 管理整个集群. 启动,关闭集群. 通过ndb_mgmd命令启动集群 存储/数据节点: 保存cluster中的数据. 数据节点,可以 ...
- 关于mysql集群主从服务器搭建
在高并发流量下,数据库往往是服务端的瓶颈,由于数据库数据需要确保落地,同时保证数据同步,数据即时性,有效性的问题,导致数据库不能像平常后端程序一样负载均衡. 那么在大并发下,该如何缓解数据库的压力呢? ...
- Mysql集群搭建(多实例、主从)
1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ...
- 京东分布式MySQL集群方案介绍
背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.PostgeSQL.MariaDB等,像SQLServer/Ora ...
- 高可用性、负载均衡的mysql集群解决方案
高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...
- 浅谈mysql集群
一.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committe ...
随机推荐
- thinkphp5操作redis系列教程】列表类型之lRange,lGetRange
<?php namespace app\admin\controller; use think\cache\driver\Redis; use think\Controller; use \th ...
- js检查判断设备
js检查判断设备 var navigatorType = {}; var u=navigator.userAgent; navigatorType.IsIE= u.indexOf('Trident') ...
- Guava EventBus集成spring
EventBus 不是通用的消息系统,也不是用来做进程间的通信的,而是在进程内,用于解耦两段直接调用的业务逻辑: 1.代码结构 event:eventbus中流转的事件(消息),包结构按照业务模块在细 ...
- monkeyrunner 进行多设备UI测试
monkeyrunner进行多设备UI测试 首先你要连接好多个手机设置好已经连接好的手机的ip列表ipp = ['192xxx','192xxx']杀掉之前所有appium进程subprocess. ...
- Fiddler设置抓一个域名下个包
设置抓一个域名下个包 右侧Filters 勾选Use Filters 勾选Hosts 选择 Show only the follwing Hosts 设置好自己的抓包的域名
- 【Linux】- Systemd 实战篇
转自:阮一峰的网络日志 一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件. 如果你想让该软件开机启动,就执行下 ...
- 【Linux】- Systemd 命令篇
转自:阮一峰的网络日志 Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置. 一.由来 历史上,Linux 的启动一直采用init进程. 下面的命令用来启动服务. ...
- js登陆验证错误不刷新页面
验证函数返回 false;返回到onclickonclick 其实也是一个函数.. 所以需要加 return;
- 2-vim-打开和新建文件-01-打开/新建文件/打开定位到文件指定行
1.新建或打开文件 命令: vim 文件名 在终端中输入vi在后面跟上文件名即可. 如果文件已经存在,会直接打开文件. 如果文件不存在,会新建一个文件. 2.打开文件并定位到文件指定行. 命令: vi ...
- lca 倍增模版
; void dfs(int u,int fa){ d[u]=d[fa]+; p[u][]=fa; ;i<POW;i++) p[u][i]=p[p[u][i-]][i-]; int sz=edg ...