實戰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
我這裏就不演示了。

歡迎你們多交流!
相關文章
相關標籤/搜索