MHA 設定檔樣本描述
與絕大多數Linux應用程式類似,MHA的正確使用依賴於合理的設定檔。MHA的設定檔與mysql的my.cnf檔案配置相似,採取的是分模組,param=value的方式來配置,設定檔位於管理節點,通常包括每一個mysql server的主機名稱,mysql使用者名稱,密碼,工作目錄等等。本文列出了單套MHA以及採用全域配置來管理多套MHA設定檔的一些範例,供大家參考。
1、單套MHA配置樣本
manager_host$ cat /etc/app1.cnf
[server default]
# 登陸mysql資料庫賬戶及密碼,預設為root,因為需要STOP SLAVE, CHANGE MASTER, RESET SLAVE等。
user=root
password=mysqlpass
# working directory on the manager #位於管理節點工作目錄
manager_workdir=/var/log/masterha/app1
# manager log file #位於管理節點工作記錄檔
manager_log=/var/log/masterha/app1/app1.log
# working directory on MySQL servers
# node 上用於產生日誌的工作目錄,如果不存在,MHA node會自動建立,前提需要有相應的許可權,否則node會終止。
# 預設目錄為 "/var/tmp".
remote_workdir=/var/log/masterha/app1
#[serverN] 部分,為各節點配置資訊,範圍為各單獨節點,各節點書寫順序影響成為新master的順序
#也可以通過配置candidate_master參數來影響哪個節點具有優先順序成為新master
[server1]
hostname=host1
[server2]
hostname=host2
[server3]
hostname=host3
2、多套MHA配置樣本
如果生產環境中基於單個管理節點部署了多套MHA,可以通過使用全域設定檔來配置相同或共有部分以達到簡化配置,易於管理的目的。
假定我們建立了/etc/masterha_default.cnf,則MHA Manager指令碼會首先都讀取該檔案然後再讀取指定的設定檔。
這個功能類似於/etc/profile,然後再讀取~/.bash_profile
如果在未配置全域的設定檔的情形下,會收到以下提示:
[warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
a、全域設定檔樣本
如:/etc/masterha_default.cnf
[server default]
user=root
password=rootpass
ssh_user=root
#mysql 資料庫master節點binlog的位置,該參數用於當master節點死掉後通過ssh方式順序讀取binlog event
#該參數需要配置,因為master節點死掉後無法通過replication機制來自動擷取binlog日誌位置
#以下為rpm安裝方式預設binlog位置,應根據情形做相應調整
master_binlog_dir= /var/lib/mysql
remote_workdir=/data/log/masterha
#用於檢測各節點間的串連性,此處詳細可參考MHA parameters描述部分
secondary_check_script= masterha_secondary_check -s remote_host1 -s remote_host2
ping_interval=3
#定義用於實現VIP漂移的指令碼,後面的是shutdown以及report指令碼
master_ip_failover_script=/script/masterha/master_ip_failover
shutdown_script= /script/masterha/power_manager
report_script= /script/masterha/send_master_failover_mail
b、各MHA單獨配置樣本
以下為2套不同應用對應的MHA設定檔,如下
app1:
manager_host$ cat /etc/app1.cnf
[server default]
manager_workdir=/var/log/masterha/app1 #工作目錄 Author:Leshami
manager_log=/var/log/masterha/app1/app1.log #記錄檔 Blog :http://blog.csdn.net/leshami
[server1]
hostname=host1
candidate_master=1
[server2]
hostname=host2
candidate_master=1
[server3]
hostname=host3
[server4]
hostname=host4
no_master=1
app2:
manager_host$ cat /etc/app2.cnf
[server default]
manager_workdir=/var/log/masterha/app2
manager_log=/var/log/masterha/app2/app2.log
[server1]
hostname=host11
candidate_master=1
[server2]
hostname=host12
candidate_master=1
[server3]
hostname=host13
[server4]
hostname=host14
no_master=1
註:對於上述配置,如果各應用配置與全域配置不同,應用配置具有最高優先順序,即相同的項,應用配置的值會替換掉全域配置的值
3、Binlog server
該功能自被MHA 0.56版支援。即可以定義[binlogN]選項。在這個部分,可以定義mysqlbinlog streaming servers.
如果開啟了GTID,則MHA會檢查binlog伺服器,且binlog伺服器日誌在其他從節點日誌之前,則MHA會在恢複之前從binlog伺服器apply差量日誌
如果未開啟GTID,則MHA 忽略 binlog servers。如下樣本:
manager_host$ cat /etc/app1.cnf
[server default]
# mysql user and password
user=root
password=mysqlpass
# working directory on the manager
manager_workdir=/var/log/masterha/app1
# manager log file
manager_log=/var/log/masterha/app1/app1.log
# working directory on MySQL servers
remote_workdir=/var/log/masterha/app1
[server1]
hostname=host1
[server2]
hostname=host2
[server3]
hostname=host3
[binlog1]
hostname=binlog_host1
[binlog2]
hostname=binlog_host2
參考:Writing an application configuration file
本文永久更新連結地址: