热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用DRBD+Heartbeat+Replication实现MYSQL高可用性_MySQL

使用DRBD+Heartbeat+Replication实现MYSQL高可用性
bitsCN.com

作者“随记千秋”近日安装DRBD+heartbeat+replication,怕以后忘记,记录一下。
1,操作系统:centOs 5.6 64-bit ,mysql-5.5.11
2,机器4台,2台作为DRBD,2台作为复制从服务器.
3,名称:MYSQLM1 IP:172.17.94.209 名称:MYSQLM2 IP:172.17.94.210
上面2台电脑分别挂在1个10G的硬盘,作为DRBD同步数据盘符。盘符名称:
/dev/sdb1,挂载目录:/data,同步的磁盘名称/dev/brbd0.
名称:MYSQLS1 IP:172.17.94.211 名称:MYSQLS2 IP:172.17.94.212
VIP:172.17.94.208

4,编辑主机名称:
#vi /etc/hosts
添加下面2行;
172.17.94.209 MYSQLM1
172.17.94.210 MYSQLM2
这2台电脑都需要添加。
5,安装DRBD和Heartbeat
yum -y install drbd83 kmod-drbd83
yum -y install heartbeat
yum -y install heartbeat heartbeat-ldirectord heart-pils heartbeat-stonith
6,配置DRBD
#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
global{usage-count yes;}
common{syncer{rate 100M;}}
resource r0{
protocol C;
startup{
}
disk{
on-io-error detach;
#size 1G;
}
net{
}
on MYSQLM1{
device /dev/drbd0;
disk /dev/sdb1;
address 172.17.94.209:7898;
meta-disk internal;
}
on MYSQLM2{
device /dev/drbd0;
disk /dev/sdb1;
address 172.17.94.210:7898;
meta-disk internal;
}
}
从节点MYSQLM2的配置完全一样。
6,在2台电脑分别执行下面命令
#/etc/init.d/drbd start #启动drbd
#drbdadm create-md r0
#mkfs.ext3 /dev/brbd0
这样,2台电脑分别都创建好了/dev/drbd0
7,在作为主服务器的MYSQLM1上执行下面的命令
#drbdadm primary all #让MYSQLM1为primary
#mount /dev/drbd0 /data #挂载/dev/drbd0 到/data目录
使用以下命令查看drbd的状态
#service drbd status
#cat /proc/drbd
这样drbd配置完成
然后再安装mysql.其他的地方可以按照以往默认安装,但是需要将数据库安装在/data目录。2台都是需要安装在/data目录
注意点一:将basedir和datadir写入到my.cnf
注意点二:注意赋予/data和/dev/drbd0的权限为mysql:mysql用户组。
8,配置heartbeat
8.1:配置/etc/ha.d/authkeys
vi /etc/ha.d/authkeys
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
保存退出。
#chmod 600 /etc/ha.d/authkeys
2台电脑输入操作一样
8.2:配置/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility /local0
keepalive 2
deadtime 30
warntime 10
udpport 694
bcast eth0
ucast eth0 172.17.94.210 #MYSQLM2此处为ucast eth0 172.17.94.209, 不同之处.
node MYSQLM1
node MYSQLM2
ping 172.17.64.1 #网关
ping group1 172.17.94.209 172.17.94.210
hopfudge 1 #活跃数,2台配置一样

保存退出。MYSQLM2的配置大致一样,不一样的地方:"#"红色注释处

8.3配置/etc/ha.d/haresources
vi /etc/ha.d/haresources
MYSQLM1 IPaddr::172.17.94.208/24/eth0:0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 mysqld
保存退出,2台电脑配置一样.
8.4,启动heartbeat
#service heartbeat start
#chkconfig --add heartbeat
#chkconfig heartbeat on
9,对于脑裂的处理
9.1:在从节点做如下操作:
#dbdadm secondary r0
#drbdadm -- --discard-my-data connect r0
在主节点如下:
#drbdadm connect r0
或者采用9.2的方法
9.2在2端分别做如下操作:
#drbdadm -- --discard-my-data connect all
#drbdadm connect all
整个架构简图如下:

        <br>
        <script type= var cpro_id = "u6885494";

推荐阅读
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
author-avatar
lt7520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有