没有合适的资源?快使用搜索试试~ 我知道了~
首页Mysql Keeplived主从集群环境搭建
Mysql Keeplived主从集群环境搭建
需积分: 39 13 下载量 170 浏览量
更新于2023-03-16
评论
收藏 1.13MB DOCX 举报
Mysql Keeplived主从集群环境搭建Mysql Keeplived主从集群环境搭建Mysql Keeplived主从集群环境搭建Mysql Keeplived主从集群环境搭建亲测可用文档一步一步来的
资源详情
资源评论
资源推荐
Mysql Keeplived 主从集群环境搭建
参考帖子:
:
!"#$#
% 安装:&' "#$#(("("$)
环境
操作系统:*+,+-+.'+/++(+012
1/3.+1/3.4#4!"#5#4'+(含依赖包)
+4!$6
' 安装 4!4!"#5#++
一、 MySQL 安装步骤
!+卸载 78/4预装的数据库 (不卸载会与 1/%. 冲突)9
+查看 安装情况9
:+'++;++
+删除相关依赖 ;
:+'++4"#5#
(+上传 1/3.+ 包到服务器并解压 1/3. 压缩包9
:++4)+1/3.4#4!"#5#4'+
+安装 1/3.+ 包0最好先创建 % 用户和用户组29
创建 % 用户组和用户
:+'+%
:+'+4+4+%+%
安装 1/3. 服务器端和客户端
:++4+1/3.44#4!"#5#+++++44服务器
Mysql
初始密码
: NpHcaByAY4ekDeMX
:++4+1/3.44#4!"#5#++++++44客户端
+启动 1/3. 服务
:++%+
+查看服务状态
:++%+'
+/<77-//=+1/3.+'+02
#+重置密码
用初始密码登录 %,重置密码
%>+/-?+@A//B8*C+D+@A//B8*C0EF($!"E29
二、 MySQL 主从原理
原理概述
Mysql 内建的复制功能是构建大型,高性能应用程序的基础。将 Mysql 的数据分布到多个
系统上去,这种分布的机制,是通过将 Mysql 的某一台主机的数据复制到其它主机
(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个
或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一
个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接
主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务
器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须
要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间
的冲突。
复制流程
第一步:master 记录二进制日志。在每个事务更新数据完成之前,master 在二日志记录
这些改变。MySQL 将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。
在事件写入二进制日志完成后,master 通知存储引擎提交事务。
第二步:slave 将 master 的 binary log 拷贝到它自己的中继日志。首先,slave 开始一
个工作线程——I/O 线程。I/O 线程在 master 上打开一个普通的连接,然后开始 binlog
dump process。Binlog dump process 从 master 的二进制日志中读取事件,如果已
经跟上 master,它会睡眠并等待 master 产生新的事件。I/O 线程将这些事件写入中继日
志。
第三步:SQL slave thread(SQL 从线程)处理该过程的最后一步。SQL 线程从中继日
志读取事件,并重放其中的事件而更新 slave 的数据,使其与 master 中的数据一致。只
要该线程与 I/O 线程保持一致,中继日志通常会位于 OS 的缓存中,所以中继日志的开销
很小。 此外,在 master 中也有一个工作线程:和其它 MySQL 的连接一样,slave 在
master 中打开一个连接也会使得 master 开始一个线程。复制过程有一个很重要的限制
——复制在 slave 上是串行化的,也就是说 master 上的并行更新操作不能在 slave 上并
行操作。
日志模式
1、statement level 模式(基于语句)
每一条会修改数据的 sql 都会记录到 master 的 bin-log 中。slave 在复制的时候 sql 进程
会解析成和原来 master 端执行过的相同的 sql 来再次执行。
优点:statement level 下的优点,首先就是解决了 row level 下的缺点,不需要记录每
一行数据的变化,减少 bin-log 日志量,节约 io,提高性能。因为他只需要记录在
master 上所执行的语句的细节,以及执行语句时候的上下文的信息。
缺点:由于它是记录的执行语句,所以为了让这些语句在 slave 端也能正确执行,那么他
还必须记录每条语句在执行的时候的一些相关信息,也就是上下文信息,以保证所有语句
在 slave 端被执行的时候能够得到和在 master 端执行时候相同的结果。另外就是,由于
mysql 现在发展比较快,很多的新功能加入,使 mysql 的复制遇到了不小的挑战,自然复
制的时候涉及到越复杂的内容,bug 也就越容易出现。在 statement level 下,目前已经
发现的就有不少情况会造成 mysql 的复制问题,主要是修改数据的时候使用了某些特定的
函数或者功能的时候会出现,比如 sleep()在有些版本就不能正确复制。
2、rowlevel 模式(基于记录 MySQL5.0 开始支持)
日志中会记录成每一行数据被修改的形式,然后在 slave 端再对相同的数据进行修改
优点:bin-log 中可以不记录执行的 sql 语句的上下文相关的信息,仅仅只需要记录那一条
记录被修改了,修改成什么样了。所以 row level 的日志的内容会非常清楚的记录下每一
行数据修改的细节。而且不会出现某些特定情况下的存储过程,或 function,以及 trigger
的调用和触发无法被正确复制的问题。
缺点:row level 下,所有的执行的语句当记录到日志中的时候,都将以每行记录的修改
记录,这样可能会产生大量的日志内容,比如有这样一条 update 语句:update
product set owner_member_id='d' where owner_member_id='a',执行之后,日
志中记录的不是这条 update 语句所对应的事件(mysql 是以事件的形式来记录 bin-log 日
志),而是这条语句所更新的每一条记录的变化情况,这样就记录成很多条记录被更新的很
多事件。自然,bin-log 日志的量会很大。
剩余17页未读,继续阅读
我不当大哥好多年了
- 粉丝: 3
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0