没有合适的资源?快使用搜索试试~ 我知道了~
Linux部署MySQL数据灾备,单向主从复制模式。
需积分: 14 11 下载量 183 浏览量
2018-05-15
09:51:18
上传
评论 3
收藏 819KB DOCX 举报
温馨提示
CentOS7.0部署基于MySQL内建复制模式,实现异地数据同步,单向复制环境,
资源推荐
资源详情
资源评论
MySQL <Replicaon >
一、MySQL Replication 概述
MySQL Replication 是 MySQL 内置的复制功能是构建大型,高性能应用程序的基础。 默认使
用支持单向的异步复制, 通过将(Master Server)的 MySQL 数据复制到一个或多个(Slave
Server)中 ,复制 过程中 一个服 务器充 当( Master ) ,而 一个或 多个其 它服务 器充当 ( Slave
Server)。主服务器将更新数据写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日
志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中
读取的最后一次成功更新的位置。(Slave Server)接收从那时起发生的任何更新,然后封锁并等待主
服务器通知新的更新。
MySQL Repilcation API:
https://dev.mysql.com/doc/refman/8.0/en/replication.html
MySQL Repilcation Work Current:
Master 将更新写入二进制日志文件,并对这些日志文件维护一个索引,以保持对这些日志轮流的跟
踪。二进制日志文件作为更新记录被发送到 Slave,当 Slave 连接到它的 Master 时, 会检查日志最后
一次更新成功的最近位置。然后 Slave 接收自那时以来发生的任何更新, 之后 Slave 便等待 Master
通知新的更新。
如下图所示:
Slave I/O 线程
当在从机上执行 slave start 语句,它会创建一个 I/O 线程连接到主机, 并要求它发送记
录在其二进制日志的更新。然后从机 I/O 线程读取主机二进制日志文件的更新,转储到从
机数据目录下的中继日志文件。
Binlog Dump
线程
主机创建 Binlog Dump 线程将二进制日志内容发送到从机。该线程取得主机的二进制日
志锁来读取被发送到从机的所有事件。 一旦事件被读出后,锁被释放,即使是在事件被发
送到从机前也一样。 一个具有多个从机连接的主机只为每个当前已连接的从机创建一个
binlog dump 线程, 而每个从机都有自己的 I/O 和 SQL 线程。
Slave SQL 线程
从机创建此线程读取从机的 I/O 线程写入中继日志文件的内容,然后执行文件的更新内
容。
MySQL
Replication
相关日志文件
复制过程中 MySQL 会创建很多文件用作中继日志和记录当前位置信息和状态,
其中有三类文件被使用:
中 继 日 志 ( Relay
log)
位于从机上的 relay log 文件包含了从主机的 binlog 读回
来的事件。这些事件最终由从机的 I/O 线程执行。
主 机 信 息
(Master.info)
从机的状态和配置信息被记录在 master.info 文件中, 该
文件还包含了从机的连接信息,包括主机的机器名、登陆验
证信息和从机当前在主机的二进制日志位置。
中 继 信 息
(Relay.info)
有关在从机的中继日志执行点的状态信息。
MySQL Repilcation Mode:
异步复制
(Asynchronous Replication)
MySQL 本身支持单向的异步复制。 MySQL Replication 工作需要一台
服务器作为(Master),另外一台或多台服务器作为(Slave)。异步复
制意为数据从一台机器拷贝到另一台, 实际上在拷贝变化的数据过程中会
有延迟。通常延迟由网络带宽,资源可用性和系统负载来决定。 但是使用
合适的架构和调优方法,对于大多数应用环境复制几乎是瞬间完成的。
同步复制
(Synchronous Replication)
同步复制可以被定义为数据提交时会向一台或多台机器同时提交,通常被称
为“two-phase commit” 两阶段提交。虽然这可以保障多系统交叉环境
下的数据一致性,但也会带来额外的性能损失。 MySQL 自身不支持同步
复制 ,但 有 些 技 术例 如分 布式 复制 块设 备 技术 或者 叫 DRBD , 能为
MySQL 提供便利的同步复制功能。
半同步复制
(Semi-Synchronous
Replication)
MySQL 5.5 中新增了半同步复制功能。 假如主机启用半同步复制并且至
少有一个从机也配置了半同步,当主机上一个线程执行事务提交后半同步到
从机,从机收到事务的所有事件后返回给主机确认响应则该事务提交完成,
或发生超时。当发生超时主机仍会提交该事务但会恢复到异步复制模式。使
用异步复制,如果主机发生崩溃,主机无法立即获知已提交的事务是否已被
复制到从机。因此主机故障转移到从机时, 从机会丢失一些事务。半同步
复制是为了最小化 “孤立”事务的潜在危险,保障主机的所有已提交事务都被
复制到从机。
MySQL Repilcation Type:
MySQL 默认使用基于语句的复制方式。 SQL 语句(非实际改变的数据)
基于语句的复制
( Statement- Based
Replication)
从主机(Master)复制到从机(Salve)。优点在于最终写入日志文件的
数据较少。当更新或删除许多行时,日志文件占用非常少的存储空间, 这
也意味着在恢复数据时能较快的完成。它也有一些缺点就是不支持一些非确
定性的行为,例如当前时间函数。
基于行的复制
(Row-Based Replication)
在 MySQL 5.1 中引入了基于行的复制方式,它会记录单个表中改变的数
据, 与基于语句方式恰好相反。用基于行的复制, 主机将数据如何改变的
信息或者事件记录到二进制日志文件中,这些记录表明了单个表的行数据是
如何改变的。这更像其他关系型数据的传统复制模式。通常基于行的复制几
乎不需要锁请求,意味着可能会获得更高的并发,缺点是日志文件会较大。
例如一条语句改变 100 条记录,基于行的方式要记录 100 行,而基于语句
的方式只需记录这一条语句。
混合格式的复制
MySQL 5.1.8 引入了混合格式的复制。也就是可同时配置基于(语句、
行)的复制, 根据使用的混合格式日志, 二进制日志格式能够实时改变。
在混合格式模式下,基于语句的复制是默认方式。
当遇到下列情况会自动切换到基于行的模式:
NDB 存储引擎的 DML 操作;
使用 uuid()函数;
两个以上的表中有 AUTO_INCREMENT 属性的列被更新;
任何 INSERT DELAYED 被执行;
当视图中内容使用基于行复制,则创建视图的语句也使用此方式,
例如当语句使用 uuid()函数创建视图时;
调用 UDF(用户自定义函数);
MySQL Repilcation Topology Structure:
单主到单从(Master to Slave):
这是最流行的也是管理配置最简单的方式。这种拓扑下需要两台服务器, 一台做主机另一台做从机。
单主到多从(Master to Multiple Slaves):
这种场景下有多个从机和一个主机。 这种方式有更好的水平扩展能力,但同时增加了管理的复杂性和复制失败时解
决问题潜在的风险。
剩余18页未读,继续阅读
资源评论
奔跑在路上_
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 一个十分容易使用的Go语言JSON库(解析JSON、生成JSON).zip
- 一个十分容易使用的C语言JSON库(解析JSON、生成JSON).zip
- 2024-软件工程大作业-波普特廉价酒店的温控计费系统小组大作业.zip[前端:vue、后端:Python]
- 一个全面的 Go 语言文件操作 package,API 参照 nodejs 中 fs-extra 的设计,简单易用.zip
- 一个使用易语言编写并用精易模块调用PHP-API上的内容返回的酷Q插件.zip
- 一个使用易语言制作的音乐播放器 FatmcCloudMusic3开源仓库.zip
- 一个会篡改MBR的病毒(基于易语言和c++).zip
- 网络节点切换工具V1(分主节点+两个分节点)
- Android的在线云音乐播放器项目源码+文档说明(高分项目)
- 基于java+spring+springMVCl的医疗系统开题报告.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功