實戰Heartbeat+mysql+共享存儲實現高可用

   本文是生產環境下實現數據庫高可用方案實例,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 [email protected]  //輸入密碼就行了

 db02上的配置

 #ssh-keygen -t rsa  //生成公鑰和密鑰,一步enter到底就行了

 # ssh-copy-id -i .ssh/id_rsa [email protected]  //輸入密碼就行了 


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

我這裏就不演示了。


歡迎大家多交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章