首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

實戰筆記:配置 MySQL 高可用叢集(Heartbeat + NFS 共享存儲)

     編輯:MySQL 資料庫相關知識

測試環境

  • OS:RedHat Linux 9.0
  • 節點:mysql5 (192.168.0.50/24, 10.4.66.35/24)、mysql6 (192.168.0.60/24, 10.4.66.36/24)
  • Heartbeat 介面:eth0(交叉線),服務 IP:10.4.66.88/24 (eth1),預設閘道:10.4.66.2
  • 共享存儲:NAS 10.4.66.251:/data 掛載至本地 /data

1. 安裝 MySQL 5.0(兩節點同步步驟)

  1. 移除系統自帶 MySQL:
    rpm -e mysql-server; userdel mysql; mv /etc/my.cnf /etc/my.cnf.bak
  2. 解壓官方 tarball 至 /usr/local/mysql,設定擁有者:
    chown -R root .; chown -R mysql ./data; chgrp -R mysql .
  3. 編輯 /etc/my.cnf 指定資料目錄與 InnoDB 路徑(PID/InnoDB 檔放本地,資料放 NFS):
    [mysqld]
    datadir=/data/mysqldata
    innodb_data_home_dir=/usr/local/mysql/data
    innodb_log_group_home_dir=/usr/local/mysql/data
    innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
    
  4. 複製啟動腳本並修改 PID 路徑:
    cp support-files/mysql.server /etc/rc.d/init.d/,編輯 pid_file、server_pid_file 指向 /usr/local/mysql/data/。
  5. 主節點初始化資料庫:
    mount 10.4.66.251:/data /data; mkdir /data/mysqldata; ./scripts/mysql_install_db --user=mysql; chown -R mysql.mysql /data/mysqldata
  6. 啟動/停止驗證:
    /etc/rc.d/init.d/mysql.server start|stop
  7. 備份節點同樣安裝、掛載 NFS、直接啟動(資料已存在)。

關鍵: 同一時間僅允許一節點啟動 MySQL,避免資料衝突。

2. 安裝 Heartbeat HA

  1. 編譯安裝 libnet:./configure && make && make install
  2. 建立 hacluster 用戶/群組,編譯安裝 Heartbeat 2.0.3:
    ./ConfigureMe configure && make && make install

3. Heartbeat 三大設定檔(兩節點相同)

ha.cf

logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
udpport 694
bcast eth0
auto_failback on
node mysql5
node mysql6
ping 10.4.66.2
respawn hacluster /usr/lib/heartbeat/ipfail

authkeys(CRC 加密,權限 600)

auth 1
1 crc

haresources(資源遷移順序:VIP → NFS 掛載 → MySQL 服務)

mysql5 IPaddr::10.4.66.88/24/eth1 Filesystem::10.4.66.251:/data::/data::nfs mysql.server

4. 設定 Heartbeat 開機自啟

ln -s /etc/init.d/heartbeat /etc/rc.d/rc0.d/K05heartbeat
ln -s /etc/init.d/heartbeat /etc/rc.d/rc3.d/S75heartbeat
ln -s /etc/init.d/heartbeat /etc/rc.d/rc5.d/S75heartbeat
ln -s /etc/init.d/heartbeat /etc/rc.d/rc6.d/K05heartbeat

禁用 NFS/MySQL 自啟,交由 Heartbeat 管理。

5. 故障測試

拔除主節點網線 → 觀察 VIP/NFS/MySQL 自動遷移至備份節點;插回網線 → 驗證自動遷回(auto_failback on)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved