本文是生产环境下实现数据库高可用方案实例,heartbeat我就不多说了,下面直接就是配置详细步骤:
架构图大致如下:

一、硬件配置:

二、具体安装和配置步骤: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 这里先不用初始化数据库的,应为我们要把数据库的数据文件放到共享存储设备上。2、接下来是安装和配置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/hostscat >>/etc/hosts <<EOF10.211.1.178
db01.luowei.com10.211.1.179
db02.luowei.com192.168.1.2 db01.luowei.com192.168.1.3 db02.luowei.comEOF(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.cfdebugfile /var/log/ha-debuglogfile
/var/log/ha-loglogfacility
local0keepalive 2deadtime 15warntime 5initdead 30udpport
694ucast eth1 192.168.1.3auto_failback offnode
db01.luowei.comnode
db02.luowei.comrespawn hacluster /usr/lib64/heartbeat/dopdapiauth ipfail gid=haclient uid=haclusterapiauth dopd gid=haclient uid=hacluster