MySQL数据库之主从复制
一)MySQL主从复制的原理
MySQL主从复制是一个异步的复制过程,数据从一个MySQL数据库(master)复制到另一个MySQL数据库(slave),master和slave之间实现主从复制,主要由3个线程来完成工作。
分别为: I/O dump线程(Master端),I/O线程、SQL线程(Slave端)
- 在slave节点上执行start slave命令开启主从复制,开始进行复制
- slave节点上的IO线程会通过master节点上已经授权的复制用户请求连接master节点,并请求将执行binlog日志文件的指定位置
- master节点接收到来自slave节点的IO线程的请求,其负责复制的IO线程会根据Slave节点IO线程请求的信息,分批读取binglog日志文件指定位置之后的宾隆信息,然后返回给Slave节点的IO线程,返回的信息中除了binlog日志内容外,还有在Master服务器端记录的IO线程。返回的信息中除了binlog中的下一个指定更新位置
- Slave节点的IO线程获取到Master节点上的IO线程发送的日志内容,日志文件及位置点,会将binlog日志内容依次写到slave节点的relay log(中继日志)文件中,并将binlog文件和位置记录到master-info文件中
- slave节点的SQL线程会实时检测本地relay log中新增的内容,然后把relay log文件中的内容解析成sql语句,应用到本地,完成数据同步
二)为什么要做MySQL主从复制
1)数据分布
可以做异地容灾,然后也可以提高用户体验
(假如北京和上海机房都有服务器,mysql安装在北京,为了提高效率,我们会在上海布置一台从服务器,然后让上海机房的服务器访问上海的从库)
2)负载均衡
可以布置多台从服务器,提高读效率
3)备份
我们可以专门在一台从服务器上实施备份
4)高可用性和故障切换
5)升级和测试
我们可以先找一台从数据库来升级服务(MySQL),不会影响主库
三)MySQL主从复制的简单配置
MySQL数据库之主从复制的更多相关文章
- windows系统下使用mycat实现mysql数据库的主从复制,从而实现负载均衡
在之前有记录过在一台系统中安装多台数据库,同时实现主从复制,但是那个主从复制只是一个基于dosc命令的,再实际的开发中我们不会去直接连接数据库,一般情况下我们也是通过间接的采用一些中间件去连接,本来是 ...
- Mysql数据库的主从复制
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 2.修 ...
- mysql数据库之主从复制+双主--MMM
mysql复制:在主数据库中,前端用户每执行一个写操作/语句,都会在二进制日志中保存一个事件,把这个事件从mysql的服务器中3306端口发送给从服务器,从服务器把这个事件接受下来,接受下来先保存在本 ...
- MySQL数据库企业级应用实践(主从复制)
MySQL数据库企业级应用实践(主从复制) 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App ...
- Linux实战教学笔记29:MySQL数据库企业级应用实践
第二十九节 MySQL数据库企业级应用实践 一,概述 1.1 MySQL介绍 MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多.其功能稳定,性能卓越,且 ...
- maria(mysql)的主从复制
一.mariadb的基本操作 1.远程连接 mysql -uroot -p -h 127.0.0.1 mysql -uroot -p -h 192.168.226.128 2.赋予远程连接的权限 gr ...
- Linux - centos7 下 MySQL(mariadb) 和 主从复制
目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...
- Linux上安装mysql,实现主从复制
MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的 ...
- mysql数据库的多实例与主从同步。
1.MySQL的多实例: 多实例的特点:能够有效地利用服务器的资源,节约服务器的资源 MySQL多实例的配置有两种,第一是使用一个配置文件,这种方法不推荐使用,容易出错:第二种是用多个配置文件,这种方 ...
随机推荐
- k8s的pod
一.Pod的分类 自主式Pod : 控制器管理的Pod:Kubernetes使用更高级的称为Controller的抽象层,来管理Pod实例.每个Pod都有一个特殊的被称为“根容器”的Pause容器. ...
- @PostMapping和@PutMapping区别
@PostMapping和@PutMapping作用等同,都是用来向服务器提交信息.如果是添加信息,倾向于用@PostMapping,如果是更新信息,倾向于用@PutMapping.两者差别不是很明显 ...
- "=="和equals小结
通俗点讲,==是看看左右是不是一个东西.equals是看看左右是不是长得一样.如何记住嘛.如果单纯是想记住, ==:等于.equals:相同.两个长得一样的人,只能说长的相同(equals),但是不 ...
- 基于pg_qualstats和hypopg的自动索引调优
pg-qualstats的安装和配置 1.安装pg-qualstats -pg-qualstats 2.将pg_qualstats和pg_stat_statements添加到shared_preloa ...
- java重载和重写
重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...
- learning scala stripMargin
(1)Scala中创建多行字符串使用Scala的Multiline String. 在Scala中,利用三个双引号包围多行字符串就可以实现. 代码实例如: val foo = "" ...
- Python多线程笔记(一)
Python中使用threading模块来实现多线程 threading提供一些常用的方法 threading.currentThread() 返回当前的线程变量 threading.enumerat ...
- 点分 TREE
/* 1468: Tree Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 774 Solved: 412[Submit][Status][Discus ...
- wepy框架入门
安装 wepy 命令行工具. npm install wepy-cli -g 在开发目录生成开发DEMO. wepy new myproject 开发实时编译. wepy build --watch ...
- P1966 火柴排队——逆序对(归并,树状数组)
P1966 火柴排队 很好的逆序对板子题: 求的是(x1-x2)*(x1-x2)的最小值: x1*x1+x2*x2-2*x1*x2 让x1*x2最大即可: 可以证明将b,c数组排序后,一一对应的状态是 ...