实战Heartbeat+mysql+共享存储实现高可用

   本文是生产环境下实现数据库高可用方案实例,heartbeat我就很少说了,下面直接就是配置详细步骤:

   架构图大体以下:



1、硬件配置:

2、具体安装和配置步骤:
1、数据库的安装 (两台数据库上安装的方式同样!)
# yum install gcc gcc-c++ make ncurses-devel -y
# cd /usr/local/src
# tar xvf  cmake-2.8.5.tar.gz       //安装cmake
# cd cmake-2.8.5
# ./configure 
# make
# make install
 
# cd /usr/local/src
# tar zxvf mysql-5.5.23.tar.gz
# cd mysql-5.5.23
# cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql \
         -DMYSQL_DATADIR=/data/mysql \
         -DWITH_MYISAM_STORAGE_ENGINE=1 \
         -DWITH_INNOBASE_STORAGE_ENGINE=1 \
         -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
         -DENABLED_LOCAL_INFILE=1 \
         -DDEFAULT_CHARSET=utf8 \
         -DDEFAULT_COLLATION=utf8_general_ci \
         -DEXTRA_CHARSETS=all  
         
# make 
#make install
 
mysql 配置
#userdel -r mysql
#groupadd -r -g 3306 mysql
# useradd -u 3306 -g mysql -r -M -s /sbin/nologin mysql
# cp support-files/my-huge.cnf   /etc/my.cnf
# cp support-files/mysql.server  /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
通常安装mysql的时候,这地方都要加到开机自动启动中,可是作heartbeat的时候就不须要了,他的资源都是有heartbeat统一管理的,不须要单独启动的  
# cd /usr/local/bin //进入用户的默认搜索路径下创建mysql命令的软链接,能够直接执行mysql命令
#  ln -s /opt/mysql/bin/mysql
#  ln -s /opt/mysql/bin/mysqldump 
#  ln -s /opt/mysql/bin/mysqladmin  
#  ln -s /opt/mysql/bin/mysqlbinlog  
这里先不用初始化数据库的,应为咱们要把数据库的数据文件放到共享存储设备上。
二、 接下来是安装和配置heartbeat了。
心跳网卡配置,我这里是拿一根网线直接链接到了两个服务器的eth1上了,网卡地址配置以下:

1)两个数据库进行密钥认证
 db01上的配置
 #ssh-keygen -t rsa  //生成公钥和密钥,一步enter到底就好了
 # ssh-copy-id -i .ssh/id_rsa root@10.1.1.3  //输入密码就好了
 db02上的配置
 #ssh-keygen -t rsa  //生成公钥和密钥,一步enter到底就好了
 # ssh-copy-id -i .ssh/id_rsa root@10.1.1.2  //输入密码就好了 

2)两台主机上都配置/etc/hosts
cat >>/etc/hosts <<EOF
10.211.1.178 db01.luowei.com
10.211.1.179 db02.luowei.com
192.168.1.2     db01.luowei.com
192.168.1.3     db02.luowei.com
EOF
(3) 安装heartbeat
# yum install  libnet -y
# groupadd haclient
# useradd -g haclient hacluster
# yum install heartbeat -y 
# cd /usr/share/doc/heartbeat-2.1.3/
# cp ha.cf haresources authkeys  /etc/ha.d/
# cd !$
配置heartbeat
编辑heartbeat主配置文件:
# vim  ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 15
warntime 5
initdead 30
udpport 694
ucast eth1 192.168.1.3
auto_failback off
node db01.luowei.com
node db02.luowei.com
respawn hacluster /usr/lib64/heartbeat/dopd
apiauth ipfail gid=haclient uid=hacluster
apiauth dopd gid=haclient uid=hacluster


编辑authkeys文件(加密认证文件)
# vim authkeys
auth 1
1 crcasdfdfasdfadfad      //这里的十个任意的字符串,就是两端认证的时候用到的
# chmod 600 authkeys
接下来就是配置资源文件了
# vim haresources 
db01.luowei.com    IPaddr::10.211.1.185/24/eth0 Filesystem::/dev/mpath/mpath1p1::/data::ext3 mysqld
这个时候须要把mysqld服务从/etc/init.d/mysqld 拷贝或者链接到/etc/ha.d/resource.d/
我这里就是链接过去:


这个时候你须要手动把存储挂在到一台服务器上,而后初始化数据库
接下来就是初始化 mysql
# mkdir -vpr /data
# mount /dev/mpath/mpath1p1 /data
# mkdir -vrp /data/{mysql,log,backup}
#chown -R mysql:mysql /data/
#/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/data/mysql &   //初始化数据库
修改mysql的配置文件中的datadir=/data/mysql就好了
保证两边的配置文件是相同的。
而后在卸载存储。
接下来就是把上面三个文件拷贝到另一台服务器服务器上了。
#  /usr/lib64/heartbeat/ha_propagate  //经过此命令只能拷贝authkeysha.cf两个文件
# scp  haresources  db02.luowei.com:/etc/ha.d/
而后须要修改db02上的ha.cf文件,记住ucastip指向对方的ip就好了
而后就是把heartbeat添加到开机自动启动服务,记住要在一个节点上启动
# chkconfig heartbeat on 
# /etc/init.d/heartbeat start 
# ssh db02.luowei.com  -- '/etc/init.d/heartbeat start'
接下来看一下资源启动状况:


自动切换
# /etc/init.d/heartbeat standby
我这里就不演示了。

欢迎你们多交流!
相关文章
相关标签/搜索