`
buliedian
  • 浏览: 1237053 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

DRBD+HeartbeatV1+MySQL安装配置实例(转...正在学习)

阅读更多

fm:http://snda.itprofly.com/showtopic-54.aspx

DRBD+HeartbeatV1+MySQL安装配置实例(在RHEL 5.3上测试OK)

1.系统说明与架设结构
说明:此方案解决两台做DB sever的机器做成软raid,实现数据的安全备份,同时也实现在两台机器上数据的同步与mysql服务HA。
采用第三方软件DRDB和Heartbeat做MySQL高可用性集群方案。DRBD用来维护数据的同步和冗余,Heartbeat负责HA处理.

2.系统安装软件准备
2.1OS
Redhat ENTERPRISE Linux5.3
2.2软件包
DRBD-8.3.2.tar.gz(下载地址:http://oss.linbit.com/drbd/8.3/drbd-8.3.2.tar.gz
libnet-1.1.2.1-1.1.i386.rpmhttp://mirror.centos.org/centos-5/5.4/extras/i386/RPMS/libnet-1.1.2.1-2.rf.i386.rpm
MySQL-client-community-5.1.41-0.rhel5.i386.Rpm(http://mirrors.sohu.com/mysql/MySQL-5.1/MySQL-client-community-5.1.41-0.rhel5.i386.rpm
MySQL-server-community-5.1.41-0.rhel5.i386.Rpm(http://mirrors.sohu.com/mysql/MySQL-5.1/MySQL-server-community-5.1.41-0.rhel5.i386.rpm
MySQL-shared-community-5.1.41-0.rhel5.i386.Rpm(http://mirrors.sohu.com/mysql/MySQL-5.1/MySQL-shared-community-5.1.41-0.rhel5.i386.rpm
2.3服务器安装配置
两台配置基本相同的Server,必须要求每台服务器有相同大小的一个分区或逻辑卷。服务器重要配置信息如下:节点1:主机名为:DB_primary, IP地址:192.168.31.173(用于网络通讯),分区为要离出一部分空间。(在本实例中,10G的硬盘,5G安装系统,装好系统后再fdisk 对留空间进行分区,在分区格式中选0,本例对将要做raid的/dev/sda3分了2G空间。(建议熟悉PV,VG,LV的概念及fdisk的分区处理)
[root@localhost ~]# fdisk –l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 650 5116702+ 8e Linux LVM
/dev/sda3 651 894 1959930 0 Empty
节点2:主机名为:DB_secondary, 192.168.31.180分区为/dev/sda3,系统安装须求与DB_primary一样。
安装完系统后,两台机器都做以下配置:
1)#vi /etc/hosts
添加
192.168.31.173 DB_primary
192.168.31.180 DB_secondary
2) 关掉seliunx及相关不须要起动的服务
# vi /etc/sysconfig/selinux
SELINUX=disabled
#ntsysv
只选network sshd syslog,其他都取消,然后都reboot,到些系统安装配置完成

3.DRBD安装和配置
3.1DRBD安装
1)从http://oss.linbit.com/drbd/下载了源码包drbd-8.3.2.tar.gz,存放到/root/software
2)开始安装,以root用户执行以下命令
#cd /root/software
#tar -zxvf drbd-8.3.2.tar.gz
#cd drbd-8.3.2
#make
#make install
#insmod drbd/drbd.ko
#lsmod |grep drbd
3.2DRBD配置
3.2.1配置文件修改(两台机)
#vi /etc/drbd.conf 使文件成为
global { usage-count yes; }
common { syncer { rate 10M; } }
resource r0 {
protocol C;
startup {
}
disk {
on-io-error detach;
}
net {
}
on db_primary {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.31.173:7788;
flexible-meta-disk internal;
on db_secondary {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.31.180:7788;
meta-disk internal;
}
}
3.2.2Primary node和secondary node设置
1) 在DB_primary创建matadata:
#drbdadm create-md r0
2) 启动drbd:
#/etc/init.d/drbd start
3) 在DB_secondary创建matadata:
#drbdadm create-md r0
4) 启动drbd:
#/etc/init.d/drbd start
3) 设置DB_primary为主节点:
#drbdadm -- --overwrite-data-of-peer primary r0
4) 在DB_primary新设备上面创建文件系统
#mkfs.ext3 /dev/drbd0
5) 将文件系统mount上:
#mkdir /drbddata
#mount /dev/drbd0 /drbddata
查看创建情况:
#cat /proc/drbd
3.3测试(重要要了解主和从之间的切换关系,是以后处理故障的基础)
1)准备数据。在DB_primary192.168.31.173创建数据
#cd /drbddata
#mkdir test
#cd test
#echo 123 >1
2)将DB_primary上umount文件系统,然后执行drbdadm secondary all,改成secondary模式:
# umount /drbddata
# drbdadm secondary r0
3)在服务器DB_secondary192.168.31.180上执行drbdadm primary r0 改成primary模式,再mount文件系统:
#drbdadm primary r0
#mount /dev/drbd0 /drbddata
检查在/drbddata文件下的test文件和子文件123是否已经完全同步到DB_secondary ,如果OK,数据已经同步好了。
3.4配置MySQL for DRBD
3.4.1MySQL安装
在两台机器上均用超级用户root登录,执行以下操作:
#rpm -ivh rpm -ivh MySQL-client-community-5.1.41-0.rhel5.i386.rpm MySQL-shared-community-5.1.41-0.rhel5.i386.rpm MySQL-server-community-5.1.41-0.rhel5.i386.rpm
#/etc/init.d/mysql start
#netstat -lpn|grep 3306
说明mysql安装成功

3.4.2数据目录和my.cnf配置
DB_primary设置
第一步 关闭MySQL,清理InnoDB 文件,因为后面需要重新构建,然后移动数据目录到DRBD数据区域,并建立一个软链接。
#/sbin/service mysql stop
#rm -rf /var/lib/mysql/ib*
#mv -f /var/lib/mysql /drbddata/mysql_data
#ln -s /drbddata/mysql_data /var/lib/mysql
第二步 创建和配置my.cnf文件。
#cp /usr/share/mysql/my-huge.cnf /var/lib/mysql/my.cnf
第三步 增加一个root用户为所以有服务器可以连接的权限:
#mysql
Mysql>GRANT ALL PRIVILEGES ON *.* to root @’%’ IDENTIFIED BY '123';
上面这句是为业务服务添加的相关用户和密码
设置MySQL用户root的密码,以保证数据安全。
#/usr/bin/mysqladmin -u root password 'passwd'
然后关掉mysql在DB_primary的运行,转到DB_secondary
#/etc/init.d/mysql stop
将DB_primary上umount文件系统,然后执行drbdadm secondary all,改成secondary模式:
# umount /drbddata
# drbdadm secondary r0


DB_secondary设置
对于DB_secondary,只需要进行如下操作:
#/sbin/service mysql stop
#rm -rf /var/lib/mysql
#ln -s /drbddata/mysql_data /var/lib/mysql
3.3MySQL启动和关闭
3.3.1启动MySQL
#/etc/init.d/mysql start
此时须要密码,如果用刚才在DB_primary设置的密码可以登陆,说明mysql的运行OK,并且数据目录同步一致。
3.4.3测试
按照3.3的测试,把mysql转到DB_primary,如果能完成,说明对DRDB的工作情况已经了解。可以继续做下面的heartbert.
3.5Heartbeat软件和配置(两台机基本一样,注意细节地方有不同,已蓝色标记)
3.5.1Heartbeat安装
5.1.1安装libnet
#rpm -ivh libnet-1.1.2.1-1.1.i386.rpm
3.5.2安装heartbeat(直接用yum安装,在redhat上配置centos的yum源,如没有外网也可直接把相关的包下载下来rpm安装)
#wget http://sudone.com/download/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo
#rpm –import http://mirror.centos.org/centos-5/5.3/os/i386/RPM-GPG-KEY-CentOS-5
#yum install heartbeat*
3.5.3Heartbeat配置
3.5.3.1/etc/hc.d/authkeys配置
在/etc/hc.d/下增加文件authkeys,两台服务器内容配置一样,并且赋予600权限。
#cat > /etc/ha.d/authkeys
内容如下:
auth 1
1 crc
#chmod 600 /etc/ha.d/authkeys
3.5.3.2/etc/ha.d/ha.cf配置
在/etc/hc.d/下增加文件ha.cf,两台服务器内容配置一样,并且赋予600权限。
#vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 500ms
deadtime 10
warntime 5
initdead 30
udpport 694
bcast eth0
auto_failback off
node DB_primary
node DB_secondary
ping 192.168.31.200
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
deadping 5


3.5.3.3/etc/ha.d/haresources配置
在/etc/hc.d/下增加文件ha.cf,两台服务器内容配置基本一样,不同之处在于Node_name用hostname代替。192.168.31.200为虚拟IP,即对外提供服务的IP。
#vi /etc/ha.d/haresources
db_primary内容如下:db_primary 192.168.31.200 drbddisk Filesystem::/dev/drbd0::/drbddata::ext3 mysql
db_secondary 内容如下:db_secondary 192.168.31.200 drbddisk Filesystem::/dev/drbd0::/drbddata::ext3 mysql
/etc/ha.d/haresources配置完毕之后,需要拷贝两个文件到系统目录,操作如下:
#cp -rf /etc/ha.d/resource.d/drbddisk /etc/init.d
#cp -rf /etc/ha.d/resource.d/Filesystem /etc/init.d
3.5.3.4启动Heartbeat
先在db_primary上启动,然后在db_secondary上启动
#/etc/init.d/heartbeat start
用ifconfig能看到eth0:0的IP地址192.168.31.200即说明服务器启动,然后在db_secondary启动heartbeat服务此时DB_primary和DB_secondary和同时运行,DB_primary对外提供服务,DB_secondary standby。
4.模拟测试及处理问题流程
4.1 db_primary宕机或网络中断
4.1.1db_primary宕机
db_primary宕机,此时db_secondary直接接管服务,网络无缝切换,服务转到db_secondary上成为primary,如果db_primary开机后系统正常工作,此时在db_primary上运行drbdadm secondary r0,并启动heartbeat服务,那么原来的db_primary成为secondary.
4.1.2db_primary网络中断
db_primary网络中断几秒后,此时db_secondary直接接管服务,网络无缝切换,服务转到db_secondary上成为primary,如果db_primary接上网线后正常,此时在db_primary上运行drbdadm secondary r0,并启动heartbeat服务,那么原来的db_primary成为secondary.
4.1.3以上两种情况出现后服务器的主从切换
以上两种情况出现后都会导致原来的db_primary成为secondary,在我们了解的heartbeat的工作原理后,很容易对它们做主从的切换。此时只须要在db_secondary关闭heartbeat服务,使服务无缝切换到db_primary上,然后再在db_secondary启动heartbeat服务,使db_secondary成为standby.
4.2 db_secondary宕机或网络中断
此种情况发生后,如果机器重启后系统正常,只须执行drbdadm secondary r0并启动heartbeat服务,使其成为standby.


4.3机器宕机系统无法正常启动
无论是哪一台机器出现这种问题,请不要随意重启另一台正常工作的服务器,请参照db_secondary进行配置,请注意细节地方,分清db_secondary和db_primary.

分享到:
评论

相关推荐

    基于Drbd+Corosync+Pacemaker的MYSQL高

    基于Drbd+Corosync+Pacemaker的MYSQL高可用集群部署,原创,通俗易懂.

    Mysql+drbd+heartbeat+amoeba集群配置详解

    对于其他MySQL节点(mysql_drbd2、mysql_data1、mysql_data2),也需要进行类似的配置,并确保每个节点的`server-id`唯一且不同。 #### 4. DRBD安装与配置 - 解压DRBD源码包: ``` tar xvzf drbd-8.2.6.tar.gz `...

    DRBD+HEARTBEAT+MYSQL(mysql一主多从)安装配置及测试_V_0.2.doc

    总结来说,搭建DRBD+HEARTBEAT+MYSQL的高可用MySQL集群涉及多个步骤,包括DRBD的安装配置、HEARTBEAT的设置、MySQL的主从复制以及全面的测试验证。通过这样的部署,可以确保数据库服务的连续性和数据的安全性,对于...

    heartbeat+drbd+mysql安装部署

    heartbeat+drbd+mysql安装部署

    Centos5.6 x86_64下部署安装DRBD+Heartbeat+MySQL

    Centos5.6 x86_64 下部署安装 DRBD+Heartbeat+MySQL 服务器平台的实现方法 本文档旨在指导用户在 Centos5.6 x86_64 操作系统下部署安装 DRBD+Heartbeat+MySQL 服务器平台,实现高可用集群环境。通过本文档,用户...

    DRBD+Mysql实现Mysql高可用

    DRBD+Mysql实现Mysql高可用

    RHEL-5.7+DRBD+heartbeat+Oracle10R2双机安装实例.doc

    RHEL-5.7+DRBD+heartbeat+Oracle10R2双机安装实例.doc

    RHEL5.5+drbd+heartbeat+oracle10R2 双机安装实例

    RHEL5.5+drbd+heartbeat+oracle10R2 双机安装实例

    DRBD+Heartbeat+NFS

    本主题聚焦于"DRBD+Heartbeat+NFS"的组合,这是一种常用的Linux环境下实现高可用性(nfs)文件服务器集群的方法。下面将详细介绍这三个关键组件及其相互作用。 1. **DRBD(Distributed Replicated Block Device)** ...

    Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节

    ### Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 #### 互联网公司从初期到后期的数据库架构拓展 随着互联网公司的成长和发展,数据库架构也需要不断地调整和优化以满足不断增长的需求。从最初的单一服务器...

    DRBD+mysql多实例

    通过这样的配置,DRBD 和 MySQL 多实例结合,能够在提供高可用性的同时,满足对多个独立数据库实例的需求,这对于大型系统或需要隔离不同业务数据的场景非常有用。务必确保所有操作步骤的正确性,以保证服务的稳定和...

    RHEL5.5+Drbd+Heartbeat+Oracle10R2架构详解

    Drbd、Heartbeat 文件版本及简介: Cluster-Resource-Agents-agents-1.0.3.tar.bz2 Reusable-Cluster-Components-glue-1.0.6.tar.bz2 Heartbeat-3-0-STABLE-3.0.3.tar.bz2 Pacemaker-1-0-Pacemaker-1.0.9.tar.bz2 ...

    CentOS5.5 DRBD+Heartbeat+NFS 详细配置过程

    "CentOS5.5 DRBD+Heartbeat+NFS...DRBD+Heartbeat+NFS 的配置过程需要逐步完成,包括安装 CentOS、配置网络、关闭 iptables 和 SELinux、同步时间、安装 DRBD 软件、配置 DRBD、激活 DRBD 资源、启动 DRBD 服务等步骤。

    Centos下部署DRBD+NFS+Keepalived高可用环境记录(个人精华版)

    1. **安装和配置DRBD**: - 在两台服务器上安装DRBD软件包。 - 创建一个用于DRBD的物理磁盘分区。 - 配置DRBD资源,定义主服务器和备用服务器的IP地址以及要同步的磁盘分区。 - 启动DRBD服务并建立初始同步。 2...

    drbd+heartbeat+oracle10g(HA)

    DRBD+Heartbeat+Oracle10g高可用HA方案 在本文档中,我们将详细介绍如何使用DRBD、Heartbeat和Oracle10g来实现高可用HA方案。该方案的主要目的是为了提供一个高可用、可靠、可扩展的解决方案,以满足业务连续性和...

    MySQL从入门到高级系列视频.zip

    1.Mysql数据库入门及安装.mp4 2.MySQL日常操作命令.mp4 3.使用if条件语句编写MySQL备份脚本.mp4 4.MySQL设置UTF-8终极方法及密码破解.mp4 5.使用MySQL构建Discuz和Wordpress论坛.mp4 6.MySQL远程工具管理及导入.mp4 ...

Global site tag (gtag.js) - Google Analytics