MHA 設定檔樣本描述

來源:互聯網
上載者:User

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

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.