drbd实现mysql地热备_heartheartbeat+drbd+mysql主库热备

1 环境

主机名

网卡

磁盘

master

eth0 桥接模式 eth0(192.168.1.10) 自定义模式(VMnet2)(192.168.2.10)VIP 192.168.1.200/210

系统盘+20G外接磁盘

slave

eth0 桥接模式(192.168.1.20) eth1 自定义模式(VMnet2)(192.168.2.20)VIP 192.168.1.200/210

系统盘+20G外接磁盘

server3

eth0 桥接模式 (192.168.1.30)

系统盘

master

5e5ab107bccec7bcfc24ad2a0582927c.png

slave

2df27db23b84e92edff3751f327a47d4.png

server3

ff68c585caee16e4597da5d194a501bb.png

2 域名DNS

27e1b3ec70ab20f4e436ab3a84db5c56.png

3 时间同步

959e885db550e18757cbe82550e787c4.png

02f97304490034c0d236457e62bcab19.png

4 网卡配置

ab9727250165ab551ff5a1bb10e23f60.png

2fcd703539237e1a9e78f3b9f6e1d994.png

5 磁盘情况

ca68f5880da40ecb4bf7522a765b43ee.png

2e802cbe8b63d2dc300f1d5e8bd473b4.png

6 软件包位置

二 软件安装

1 drbd 简介

1 drbd 原理

drbd 是工作在文件系统之下,是基于块的迁移

drbd的迁移

文件系统------buffer-cache--------网卡传递到另一端------裸设备-----drbd写入磁盘

drbd 数据分为两部分,数据存储部分和元数据部分。

2 drbd 复制模式

协议A:本地写成功后就返回给客户端。

协议B:半同步的协议,本地写成功,发送到对端后立即返回,

协议C:发送到对端,并成功写入并进行缓存。

3 DRBD 的应用模式

1 单主模式,及主备模式,为典型的高可用性几圈方案

2 复主模式,需要采用共享cluster文件系统,如GFS和OCFS2

4 缺点

当一端在运行时另一端是不可见的

2 drbd 安装

两端配置基本相同

1 磁盘分区

/dev/sdb1 为数据区域

/dev/sdb2 为元数据区域

ab739f37227e992a12e0d15e5be9b624.png

7dc07e610f328787a9427f4fcd63ec35.png

2 格式化

元数据区域不能格式化

3be4b4ec17d078a018024baba5de5b70.png

f0f4598cffabbb2f8b82af37261d07e9.png

3 下载并解压安装drbd

A 解决依赖

8e812bdcfd57c67e7a39336b795ea7a8.png

b9160498769c4dc0c409c1f2e6c87ac9.png

yum -y install gcc kernel-devel kernel-headers flex

B 编译并安装

6ce8676dfeb119ac8e39019b996f961a.png

./configure --prefix=/usr/local/drbd.8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

58a8ef9d95a386decbeebece8f014036.png

make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64/

此处必须是自己uname -r 得到的内核,不一定是上面的内核

37562e03363f6ea276c4a3e69e1ec990.png

make install

检验

3c52af4ad22ba5d19907e53f2e9bef8b.png

4 加载模块到内核

e9329833ef85eb715785d115a6dd936c.png

slave 端加载

ecae85c6ec3414f645d86b61b0a8fb06.png

5 配置

f25647e31917a61ac95c87c60b86bc3c.png

041fb04c223ed63dc4f5b50b560a7ac4.png

slave 端相同

c8131d27732687eba53ece1f4748da65.png

a4d0c1718a0e4b1096c8c0ca54005301.png

相关解释

global {

usage-count no;

}

common{

syncer {

rate 100M; #同步占用的带宽

verify-alg crc32c; # 验证使用的算法

}

}

#Primary for drbd1

resource data{

protocol C; # drbd使用的协议

disk {

on-io-error detach; #出现IO错误的处理方式

}

on master {

device /dev/drbd0; #drbd的设备

disk /dev/sdb1; #对应的数据分区

address 192.168.1.10:7788; #地址是监听自己心跳的IP地址

meta-disk /dev/sdb2[0]; #元数据位置

}

on slave {

device /dev/drbd0;

disk /dev/sdb1;

address 192.168.1.20:7788;

meta-disk /dev/sdb2[0];

}

}

6 初始化数据

c805b7e29eb5bae67d4d804668b25b8a.png

ba8896c9fdc4cc0985476754873f8577.png

其中data是上述资源的名称。

7 创建文件夹

440ebb3b702863471957c167ea5d2bb7.png

66d3997b0d062b46d0ee28a3533c4d46.png

8 启动服务

4b6fc5f241d6adc2178a9901c64b849f.png

ae2dfbf73078d18221610c92af861d82.png

查看启动参数

48e4e86dbca9a64cc1597a7fad5de23d.png

b0cefe36653692a5f4457a1583c5587b.png

相关参数解释:

注意:只有主备两边的DRBD都启动起来才会生效

cs:链接状态

ro:角色信息,此时的状态为Secondary/Secondary,表示两台主机的状态都是备机状态

ds:磁盘状态,Inconsistent/Inconsistent显示的状态内容“不一致”,这是因为DRBD无法判断哪一方为主机,应以哪一方的磁盘数据作为标准

dw:磁盘写操作

dr: 磁盘读操作

ns: 网络发送

nr: 网络接受

如果主动端的NS和slave端的NR相同表示发送与接受同步 。

9 主动端宣告自己是primary

a492fd971667aeb176a1b3fb7334d3b1.png

查看同步情况

90a2b639bb9d86ba3188e8eeb1527d73.png

a01469b67ee24587cb8a23e2b487aa0a.png

10 创建挂载文件并测试

30d4b376fea2f6cf40267286df63f394.png

6c0049dc5c9feca93995c8442678455f.png

挂载同步测试

acf83e3516ad2a177f5fa55a2aaf478c.png

3314c4b8f2b77e554f4c5b34a6b584a8.png

从端测试

608660a9a2207ac553edbe8cad81cc9a.png

恢复

0b97608f2306f363a1c128bc4394b38d.png

3 heartbeat 简介

1 作用

通过heartbeat 可以进行故障转移并提供相关的服务

在故障转移期间也需要切换时间,常见的时间是5-20秒左右。但是能够确保业务一致性

heartbeat的高可用是服务器级别的,不是服务级别的。,服务的down机不会导致服务的切换。

2 Heartbeat 切换的常见条件

1 服务器down机

2 heartbeat 服务本身down机

3 心跳链接线down机

3 Heartbeat 消息类型

Heartbeat 高可用软件在工作过程中,一般来说,有三种消息类型,具体为:

1 心跳消息

越150字节,可能为单播,广播或组播,控制心跳频率及出现故障要等待多久进行故障转换

2 集群转换消息

Ip-request 和 ip-request-resp

当主服务器恢复在线状态后,通过ip-request消息请求备机释放主服务器失败时被服务器取得的资源,然后备份服务器关闭释放主服务器失败时取得的资源及服务。

被服务器释放主服务器失败时取得的资源服务后,就会通过ip-request-resp消息通知主服务器他不再拥有该服务器的资源及服务,主服务器收到来自被节点的ip-request-resp消息通知后,启动失败时释放的资源及服务,并开始提供正常的访问服务。

3 重传请求

rexmit-request 控制重传心跳请求。

以上心跳控制消息都使用功能的是UDP协议发送到/etc/ha.d/ha.cf 文件制定的任意接口,或指定的多播地址。

4 Ip地址接管和故障转移

Heartbeat 是通过IP地址接管和ARP广播进行故障转移

ARP 广播在主服务器故障时,备用节点接管资后,会立即强制更新所有客户端本地的ARP(及清除客户端本地缓存的失败服务器的VIP和MAC地址的解析记录),确保客户端和新的主服务器之间的对话

4 heartbeat 安装

1 安装heartbeat

907c28d61079179eaad9699e449f0209.png

680e2491df51a92eeedab25e1f4c80c7.png

2 复制配置文件

7a065352fc7d7465385aaa67d8913f89.png

489780844035ad60703effc638bd1d60.png

3 配置

配置密钥并配置其权限为600,必须为600

32881103de4437dfb1222b3cd06ca039.png

aac216496f86a8fba67c8187de6e45c1.png

配置文件解析

Debugfile 调试日志存放位置

Logfile 日志存放位置

Logfacility local 在syslog 服务中配置通过locally 设备接受日志

Keepalive2 指定心跳间隔时间为2秒

Deadtime 30 指定若备用节点在30秒内没有接受达到主节点的心跳信号,则立即接管主节点的服务资源

Warntime 10 指定心跳延迟为10秒。当10秒内备份节点不能接受到主节点的心跳信号时,会向日志中写入一个警告日志,但此时不会切换服务

Initdead 120 指定在heartbeat 首次运行后,需要等待120秒才启动主服务器的资源,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的两倍,单机启动时会遇到VIP绑定很慢,为正常现象

Bcast eth1 指明心跳使用以太网广播方式在eth1接口上进行广播,如使用两个实际网络来传递心跳则 bcast eth0 eth1

Mcast eht2 225.0.0.1 694 1 0 设置广播通信使用的端口,694为默认使用的端口,一个是 TTL

Auto_failback on 用来定义当主节点恢复后,是否将服务自动切回

Node master 主节点主机名,

Node slave 备用节点主机名

Crm no 是否开启cluster resource manager (集群资源管理器)

a422663febab8690b2fa33af6394c6ad.png

复制到被动端

402a8e4e7ff9266642138a6c5f78e2b3.png

4 启动并查看

4765e6ffe84b7927cf1b7fd2b67d2aa8.png

f255868bb66f6964a311817ddece7ccf.png

a43bda4fa1a2d87f2556f4b6f6c60e00.png

103c85bc3b701fce2d9ab19b0c3206e6.png

5 结合DRBD

a042ce9a900b951e45c6797752893aa5.png

2b7ccbe9a38e84765d183cff58ce12f6.png

5cdf3088195e9c18bada71eb4ba895a0.png

54c5798568d1c9f0126114c652e451ac.png

7499443b002ad7ac73feb68f64cbb1bf.png

8ee63ffb296934318897bda531038713.png

fe6346815f7b53a20de22f3be8b407ea.png

c68c427c5f9112a402194b6550e7aed3.png

5 mysql安装

1 配置yum源

9bfc1a908b8439eda071885eda1a5857.png

59306464475360443ec145f3403ab056.png

2 安装mysql

2885271efcb32d67d814fa33bb8add03.png

18cd1a1f143ef1e25a1570c8627c6704.png

3 配置/data 权限

72bbb127828c871eda3196244f32470e.png

4e65a6eac78cd07c9bcee416e433b8fb.png

4 配置mysql配置文件

649dc8f6da197c51c77454cc6acb6d00.png

a2475429bba1f6a9115522efe7819a30.png

4bc7fa7ece1f6e75fb095a0182313d85.png

bdd75118ce14e3a7307f50292b41ba60.png

5 启动mysql

59a1b1f987bf780aa3a7643f56ba0e5e.png

bd5e2fef95e0da5431e38fe0042840d2.png

b78e1626123fe06f1c1fa2c0e0f2dd17.png

6 删除slave端mysql

68aa0289ad9596e9130fa6f9f0719494.png

7 配置切换

76b65cf3e072360a14cc59bd001fc462.png

cb13507b6e39ef39fb7c744c73017e8a.png

625c7b0994bfcd4b79f27a34f91e307c.png

044ac1d874c468af975121d4ead7dd9e.png

32b3140657292c0fbb76334b7eb41ae7.png

三 配置mysql热备和从库

1 配置mysql热备

1 复制相关配置

aa95420ecf1248b9986211b3fadb6770.png

83150cc75ff7fa72e53ef30ddfaac137.png

2 关闭mysql并重启服务heartbeat

4d627656621d3219fd4c1c26caa20a5a.png

288929bfdca28efc14c3b70bc346fbf1.png

d4ff0b4056906b4e14583fedadcc7db4.png

6663d919f1503d9c9b488d38ae77872f.png

3 关闭mater

18177ef6381fae81ac351fadd5a5957b.png

5a6f6168dc32abb3ef70fb48778a0400.png

4 恢复

7374ee62d7a0b2bec0c4611b4e2e5f8c.png

2 配置主从同步

1 配置server-id和二进制日志开启

3448989cfef11f8e16869772972f68e9.png

0cbee11f898433f156cac3e651b95d59.png

fd517f63d139e070949dc601766648ff.png

1f78c5a4f5cb844479d6c42701ffb97d.png

dbcf58ceb26d253ac08e5551dc166cf7.png

8e86edb2df1d469ff9c37b3916f5c899.png

fa9d4782d00cfcf338ebfa8d2b67c175.png

1887dcd37d38f1fccb3f9750f831849b.png

63ed058b7da601bea5c2217924ba812f.png

77f63f37cf430d7b2f93b59846d724e6.png

54930239338521ef8af983e52ff0a859.png

重启服务器

74d1bd6866b787b35b2b8ec0a7251906.png

2 配置数据库的导出和导入,保证同步之间的主从相同

1b58526f89b2ba6e02871aba15576845.png

97174e6ce778358c01041ba36dd87929.png

073fdec59d8d445a93f7f2ea00cab866.png

01a68dd3f7bdc70759fd9e860367671c.png

3 配置主从同步

677134c1d85bb4458033665e93ed6aa8.png

grant replication slave on . to [email protected]‘%‘ identified by ‘root123‘;

8359a2e2f6864c8b87c4ce5304d7b766.png

change master to master_host=‘192.168.1.200‘,master_user=‘root‘,master_password=‘root123‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=319;

此 192.168.1.200为heartbeat 的VIP,专用于数据链接

测试

32ddf5f4ebd9e59b80cc093bfe2891c7.png

fada5ba31edb45fce226d785a8fdc164.png

ab8be7b815a50f6543b59e57355b1b9e.png

bc8e292a4674cd898c24a403f2fec74d.png

原文:http://blog.51cto.com/11233559/2293869

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dba的前景_运维、测试、程序员,这些技术岗位哪个更有前景?

在一个初具规模的互联网公司,从业务方面出发,有很多岗位类型,比如运营、客服、市场、产品、设计、技术等等。在这些大类下面,还要细分各种小类,以技术为例,可分为前端(客户端)、后端、测试、运维、DBA等等&…

免安装版的mysql步骤_mysql免安装版的安装方法及步骤

mysql免安装版的安装方法及步骤发布时间:2020-07-15 14:07:18来源:亿速云阅读:83作者:清晨小编给大家分享一下mysql免安装版的安装方法及步骤,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧&am…

java spring框架 注解_spring框架之注解的使用

原标题:spring框架之注解的使用今天是刘小爱自学Java的第122天。感谢你的观看,谢谢你。学习内容安排如下:Spring注解的使用。JavaWeb项目的搭建。Spring的Web集成。本来还计划学Spring的junit测试集成的,结果又没时间了。一、Spri…

idea 代码格式化插件_IDEA非常棒的插件,阿里巴巴约定成文的代码公约规范

无规矩,不方圆。每个人都有自己的编码风格,每个公司也有自己的代码规范。规范的代码,无论是自己日常维护,还是以后接盘者来接盘,都能快速定位上手,大大提高效率。作为一个IDEA万年爱好者,这些最…

switch最大选项数目_随时随地学习C语言之3—if和switch哪个效率高?

之前学习C语言的时候,我经常有一个疑问,既然有if-else if-else结构的多分支选择语句,C语言为何还要制定switch这种多分支选择语句呢?直到两年前在分析ARM平台C语言反汇编代码的时候,才终于明白了switch-case这种结构存…

onclick 获取img 里面的id_红魔5S游戏手机如何解锁bl获取第三方面具root权限

自从苹果阵营发布S系列,安卓系列也学习苹果的步伐,开始发布S系列,这不努比亚也发不了今年夏天的游戏手机,红魔5S游戏手机。红魔5S相对于红魔5其实从配置来看,三大件配置变化并不大,主要还是细节上的一些提升…

java 工厂模式的写法_设计模式-工厂模式

一、概述什么是工厂模式?工厂模式(Factory Pattern)是最常见的一种设计模式之一。它主要是提供一种创建对象的最佳方法!为什么要学习工厂模式?与通过new来创建对象不同,使用工厂模式创建对象不会对客户端暴露创建逻辑,…

jackson 序列化_jackson序列化与反序列化的应用实践

作者 | zhouweixin 来源 | urlify.cn/iEbiAz66套java从入门到精通实战课程分享1 相关概念序列化: 把对象转换为字节序列的过程称为对象的序列化反序列化: 把字节序列恢复为对象的过程称为对象的反序列化2 序列化的作用用于把内存中的对象状态保存到一个文件中或者数据库中用于网…

java mqtt客户端_基于 t-io 实现一个 mqtt5 协议之 mica-mqtt

一、简介 MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。目前使用比较广泛的就是 mqtt 3.1.1(2014年制定),mqtt 5.0&…

java自我介绍_JAVA面试技巧之自我介绍

【如何进行自我介绍】自我介绍这个问题,不用多说了,面试必定会问!如果想要在自我介绍的时候就能够打动面试官,吸引面试官对我们的兴趣,那么像我们这种接受过Java培训的程序员的自我介绍当然不能和应届生或者其他非技术…

java excel 操作 poi_Java使用apache poi进行excel相关操作

一.基本介绍1.1、Apache POI介绍Apache POI是一个可以进行微软的文档进行开源库,可以操作的文档类型包括word、ppt、excel、visio、outlook....本文主要针对Apache POI对excel的操作进行介绍,主要包括如何创建一个excel、录入数据、读取excel数据的方式。…

程序解析excel中的图片_产品日志丨支持导入Excel中的图片amp;批量修改后期实体字段...

本次安捷秀又迎来了一个大版本更新,除了大家呼声很高的「实体模块导入 Excel 」外,还有「批量编辑实体」,「支持右击修改」以及针对海外用户的「全页面支持英文」等功能的新增与优化,一起来看看吧。导入功能优化AGILESHOT&#xf…

java不同垃圾回收器_细述 Java垃圾回收机制→Types of Java Garbage Collectors

本文非原创,翻译自Types of Java Garbage Collectors在Java中为对象分配和释放内存空间都是由垃圾回收线程自动执行完成的。和C语言不一样的是Java程序员不需要手动写垃圾回收相关的代码。这是使得Java如此流行,同时也是Java能帮助程序员写出更好的Java应…

js修改地址栏url_不同寻常的地址栏过渡

前几天,我在推特上看到这样一张图。原来地址栏还能这么玩,瞬间就觉得自己弱爆了。然后我决定去实现一下这个效果,然后做成一个库。画了一个晚上,终于做好了。这是最后的成果。这个库使用非常的简单。你只需要,yarn add…

kaggle数据集_ArXiv170万篇论文数据集上线Kaggle!

大数据文摘出品学术圈的朋友对ArXiv肯定都不陌生。在将近30年的时间里,ArXiv通过公开访问学术文章为公众和研究社区提供了一个更高效的学术成果沟通平台,从物理学到计算机科学的许多子学科,以及介于两者之间的所有内容,包括数学&a…

万能驱动xp离线版_教你用SC封装软件来封装XP系统

今天我们来讲解一下如何用SC软件来封装XP系统。今天的讲解只演示基本的SC封装软件,具体的封装前的准备工具,我们不进行讲解,当然前期的准备工作也是有很多,首先我们先要安装虚拟机软件,并在虚拟机上面安装好原版的XP系…

java dispo lock_java实现文件上传和下载(1)

原理: 使用html 的 标签,提交form 的几个属性必须为: methodpost encTypemultipart/form-data;组件:smartUpload或者commons fileuploadsmartUpload代码实现1。文件预览function showImage(obj){var strobj.value;$("#id").html(&q…

剪板机自动上下料_机器人联轴器,用于机器人自动化上下料

关注点击蓝字,关注我吧纤薄型机器人联轴器,可搬运重量范围从 1kg 至 1,000kg,用于高效机器人自动化机床上下料,多年来受到广泛认可。紧凑型微型联轴器适合于最近迅速发展的小型机器人应用领域。无人操作时工艺可靠性高模块的特殊混…

java 格式化 布尔型_Java基础篇(1)-格式化

本文目录:十进制数字格式化——DecimalFormat数字格式化基类——NumberFormat字符串格式化类——String.format()Linux输出格式化——printf1. 十进制数字格式化(DecimalFormat)decimal是对数字进行格式化,比如取2位小数,这是最常见的。Java提…

一旦有辞职念头就干不长了吗_每天都有辞职不想上班的冲动,你有吗?

我从大学毕业到今天,工作的时间将近10年了。直到现在,我还经常有辞职的想法。我觉得现在职场真的不好混,不如意的事情十之八九,有了辞职冲动是非常正常的,不必一上来就刻意的否定,或者克制。依照我的职场经…