a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

MHA配置文件參數(shù)詳情

2024-09-07 22:13:00
字體:
來源:轉載
供稿:網(wǎng)友
  ###

  Local Scope: 適用于單個server范圍的參數(shù)。局部作用域參數(shù)需要在 application configuration 文件里面的[server_xxx]塊下面進行設置。
 
  App Scope:用于每組{master, slaves}的參數(shù)。這些參數(shù)需要在application configuration文件的[server_default] 塊下面進行設置。
 
  Global Scope: 用于所有{master, slaves}組的參數(shù)。只有在使用單個manager服務器管理多組{master, slaves}時,全局范圍的參數(shù)菜有用。這些參數(shù)需要在global configuration 文件中設置。
 
  1.1 hostname
 
  MySQL服務器的Hostname 或者 IP 地址。這個參數(shù)是強制性的,在applicationconfiguration文件中的[server_xxx]塊下必須配置。
 
  1.2 ip
 
  MySQL服務器的IP地址。默認值是gethostbyname($hostname).。MHA Manager 和 MHA Node 在內部使用這個IP地址通過MYSQL和SSH連接。通常不需要配置這個參數(shù),因為會自動通過hostname參數(shù)解決。
 
  1.3 port
 
  MySQL服務器的端口號。默認是3306。MHA通過IP地址和端口連接MySQL服務器。
 
  1.4 ssh_host
 
  (從0.53開始支持)SSH使用的MySQL服務器的Hostname 或 IP 地址。當使用多VLAN配置的時候,這個參數(shù)(以及ssh_port參數(shù))是有用的。默認和hostname一致。
 
  1.5 ssh_ip
 
  (從0.53開始支持)通過SSH使用的MySQL服務器的IP地址。默認值是 gethostbyname($ssh_host)。
 
  1.6 ssh_port
 
  (從0.53開始支持)通過SSH連接的MySQL服務器的端口號。默認是22。
 
  1.7 ssh_connection_timeout
 
  (從0.54開始支持)默認是5秒。在添加這個參數(shù)之前,超時時間是固定的,只能在代碼中更改。
 
  1.8 ssh_options
 
  (從0.53開始支持)SSH命令行的額外選項。
 
  1.9 candidate_master
 
  slaves可能會使用不同類型的機器,需要提升最可靠的機器做為new master。(比如:提升RAID1+0的slave,而不是RAID0的slaves)。
 
  通過設置candidate_master為1,只要該服務器符合成為new master的條件,該服務器會優(yōu)先成為master(比如:開啟binlog,延遲不明顯,等等)所以candidate_master=1不代表指定的host在current master掛掉后總會成為new master,只是用于設置優(yōu)先級。
 
  如果在多臺服務器上設置了candidate_master=1,優(yōu)先級根據(jù)block名稱([server_xxx])的順序決定。[server_1] 優(yōu)先級高于[server_2]。
 
  1.10 no_master
 
  在目標服務器上設置no_master=1,該服務器不會成為new master。如果有一些服務器不應該成為new master,那么該參數(shù)是有用的。比如,如果在不可靠的機器(RAID0)上運行了salve,或者在遠程數(shù)據(jù)中心運行了slave,那可能需要設置no_master=1。如果沒有slave可以成為new master,MHA會退出,并且不會進行監(jiān)控或故障轉移。
 
  1.11 ignore_fail
 
  默認情況下,如果任意slave運行出錯了(通過SSH不能連接MySQL,SQL線程出錯停止了等待),MHA Manager就不會進行故障轉移。但是一些情況下,如果特定的slave服務器運行出錯,還是希望繼續(xù)故障轉移,那么可以在指定的服務器上設置ignore_fail=1,就算這些服務器出錯,MHA還是會繼續(xù)故障轉移。默認情況下,該參數(shù)值為0。
 
  1.12 skip_init_ssh_check
 
  在啟動初始化時跳過SSH連接。
 
  1.13 skip_reset_slave
 
  (從0.56開始支持)master 轉移之后跳過執(zhí)行RESET SLAVE (ALL) 。
 
  1.14 user
 
  連接MySQL服務器的管理賬號。該參數(shù)應該為root,因為會執(zhí)行一些管理命令,比如STOP SLAVE,CHANGE MASTER,RESET SLAVE。默認為root。
 
  1.15 password
 
  上述”user”用戶的MySQL密碼。默認為空。
 
  1.16 repl_user
 
  在每臺slave上執(zhí)行CHANGE MASTER TO master_user ..時使用的復制用戶名。該用戶在master上需要有REPLICATIONSLAVE 權限。默認情況下,使用的是new master(當前還是slave)上SHOW SLAVE STATUS 中 Master_User 這一列的值。
 
  1.17 repl_password
 
  上述"repl_user"用戶的MySQL密碼。默認情況下,是當前replication密碼。如果運行onlinemaster switch并且指定了--orig_master_is_new_slave (意味著當前master會做為new master的slave)參數(shù),如果不指定repl_password開啟slave就會失敗,因為在當前master上replication密碼默認為空(盡管在其他slaves上設置了replication密碼,但是MHA在當前master上執(zhí)行change master時不指定replication 密碼)。
 
  1.18 disable_log_bin
 
  該參數(shù)啟用時,當在slaves上應用差異relay logs時,slaves不產生二進制日志。MHA會將 --disable-log-bin 傳給mysqlbinlog命令。
 
  1.19 master_pid_file
 
  設置master的pid文件。在單個服務器上運行多個MySQL實例時,這個參數(shù)是有效的。參照shutdown_script參數(shù)查看更多詳細信息。
 
  1.20 ssh_user
 
  MHA Manager 和 MHA Node連接MySQL服務器時使用的操作×××用戶名。使用該參數(shù)有多種目的:比如遠程執(zhí)行命令(Manager->MySQL),從latest slave上復制差異relay logs到其他slaves(MySQL->MySQL),等等。
 
  該用戶在MySQL binary/relay log 文件和relay_log.info 文件上必須至少有read權限。在日志目錄(每臺MySQL服務器上的remote_workdir)必須有write權限。
 
  該用戶必須能夠無交互式的連接到服務器。一般推薦使用SSH公共密鑰驗證。默認情況下ssh_user是manager所在機器上的當前操作×××用戶。
 
  1.21 remote_workdir
 
  每個MHA Node(運行在MySQL服務器上)產生日志文件的路徑。如果該目錄不存在,MHA會自動創(chuàng)建。如果沒有賦予足夠的權限,MHA Node會終止。MHA Manager或MHA Node都不會檢測磁盤空間,所以應該注意這一點。默認情況下,remote_workdir是"/var/tmp"。
 
  1.22 master_binlog_dir
 
  master機器上MySQL產生二進制日志的目錄。當deadmaster可以通過SSH連接的時候該參數(shù)是有效的,為了讀取復制必需的二進制日志events。如果MySQL掛掉之后沒有方法自動檢測二進制日志目錄,所以該參數(shù)是必需的。
 
  默認情況下,master_binlog_dir 是 "/var/lib/mysql,/var/log/mysql"。/var/lib/mysql是許多MySQL版本的默認binlog輸出目錄,/var/log/mysql是Ubuntu上MySQL包的默認binlog輸出目錄。可以設置多個目錄,這些目錄用逗號隔開(i.e /data1,/data2,…)。
 
  1.23 log_level
 
  MHA Manager打印出來的日志的臨界值。默認情況下是info,還可以設置 debug/info/warning/error。
 
  1.24 manager_workdir
 
  MHA Manager產生相關狀態(tài)的文件目錄。如果沒有設置,會使用/var/tmp。
 
  1.25 manager_log
 
  MHA Manager產生日志的完整目錄。如果沒有設置,MHAManager會輸出到STDOUT/STDERR。當執(zhí)行手動切換時(交互式故障切換),MHAManager會忽略manager_log,并且總是輸出到STDOUT/STDERR。
 
  1.26 check_repl_delay
 
  默認情況下,如果一個slave落后master超過100MB的relay logs(相當于會應用超過100MB的relay logs),MHA就不會選擇該slave作為new master,因為恢復過程會花費太長時間。通過設置check_repl_delay=0,在選擇new master的時候MHA就會忽略復制延遲。如果在某個指定的host上設置了candidate_master=1,并且想要確保該host成為new master,那這個選項是有用的。
 
  1.27 check_repl_filter
 
  默認情況下,如果master和salves有不同的binary log/replication過濾規(guī)則,MHA會打印錯誤,并且不會開始監(jiān)控或者故障切換。這是為了防止在恢復的時候出現(xiàn)不期望的錯誤,比如"Table not exists"。如果你可以100%的確保設置不同的過濾規(guī)則不會導致恢復出現(xiàn)問題,可以設置check_repl_filter = 0。在應用差異relaylogs的時候MHA不會檢查過濾規(guī)則,所以如果設置check_repl_filter = 0有可能會出現(xiàn)"Table not exists" (或者其他)錯誤。設置這個參數(shù)的時候應該謹慎一點。
 
  1.28 latest_priority
 
  默認情況下,latest slave(接受到最新的binlog events的slave)會被優(yōu)先選為new master。如果想控制優(yōu)先順序(i.e. host2->host3->host4),可以設置latest_priority=0。
 
  1.29 multi_tier_slave
 
  從MHA Manager 0.52版本開始,開始支持多主復制配置。默認情況下,是不允許在MHA配置文件中設置3層或者更多層的replication hosts。比如,假設host2從host1復制,host3從host2上復制。默認情況下是不允許在配置文件中配置host1,host2,host3的,因為這是一個三層的復制,MHA Manager會報錯停止。通過設置multi_tier_slave ,MHA Manager 不會因為三層復制終止,但是會忽略第三層的hosts。如果host1(master)宕機,host2就會被選為新的master,host3還是繼續(xù)從host2復制。
 
  1.30 ping_interval
 
  這個參數(shù)表示MHA Manager多久ping一次master(執(zhí)行sql語句)。丟失三次連接后,MHA Manager決定MySQL master掛掉。默認是3秒。如果因為連接太多或者驗證錯誤導致MHA Manager連接失敗,不會記錄到ping失敗的次數(shù)里面。
 
  1.31 ping_type
 
  (從0.53開始支持)默認情況下,MHA建立了一個到master的持久連接,通過執(zhí)行"SELECT 1" (ping_type=SELECT)來驗證master的可用性。但是在一些情況下,每次都斷開連接再重新連接時更好的,因為更嚴格,而且可以更快檢測到TCP連接層的失敗。通過設置ping_type=CONNECT可以實現(xiàn)這個。從0.56開始,添加了ping_type=INSERT。
 
  1.32 secondary_check_script
 
  通常來說,非常推薦使用兩個貨更多的網(wǎng)絡線路檢測MySQL master服務器的可用性。默認情況下,MHA Manager只是用單個線路檢測:從Manager到Master。但是這個并不推薦。MHA通過調用一個額外的腳本(通過secondary_check_script參數(shù)指定),實際上可以有兩個或更多的檢查線路。配置示例:
 
  secondary_check_script =masterha_secondary_check -s remote_host1 -s remote_host2
 
  masterha_secondary_check在MHA Manager包中已經(jīng)包含。內置的masterha_secondary_check 腳本在大多數(shù)情況下都是比較好的,這里也可以調用其他任意腳本。
 
  在上述示例中,MHA Manager通過Manager-(A)->remote_host1-(B)->master_host和 Manager-(A)->remote_host2-(B)->master_host檢測MySQL master服務器。如果在兩個線路中都會出現(xiàn):connection A是成功的,但是B是不成功的,則masterha_secondary_check會退出(返回0),并且MHAManager決定MySQL master真的掛掉了,然后會進行failover。如果A是不成功的,masterha_secondary_check會退出(返回2),并且MHAManager猜測發(fā)生網(wǎng)絡問題,不會進行failover。如果B是成功的,masterha_secondary_check會退出(返回3),并且MHAManager 推斷MySQL master是存活的,不會進行failover。
 
  一般來講,remote_host1 和 remote_host2 應該位于不同的網(wǎng)段(從MHA Manager和MySQL服務器)。
 
  MHA 調用secondary_check_script參數(shù)定義的腳本,自動傳一下參數(shù)(所以不需要再配置文件中設置以下參數(shù))。 masterha_secondary_check 在許多情形下是適宜的,但是如果你需要更多功能可以自己寫一些網(wǎng)絡監(jiān)測腳本。
 
  --user=(遠程hosts的SSH用戶名。ssh_user 參數(shù)的值會被傳入)
 
  --master_host=(master的hostname)
 
  --master_ip=(master的ip 地址)
 
  --master_port=(master的端口號)
 
  內置的masterha_secondary_check 腳本依賴于IO::Socket::INETPerl包,從Perl v5.6.0開始已經(jīng)默認包含。masterha_secondary_check 腳本也是通過SSH連接到遠程服務器,所以也需要SSH公共密鑰驗證。還有,masterha_secondary_check 腳本嘗試從遠程服務器(set by -s)到MySQLmaster建立TCP連接。my.cnf中設置的max_connections參數(shù)不會影響,如果TCP連接成功,master上的aborted_connects值會加1。
 
  1.33 master_ip_failover_script
 
  在常見的HA環(huán)境中,許多情形下會在master上分配一個虛擬IP地址。如果master掛掉,HA軟件(比如:Pacemaker)會接管虛擬IP到備機上。
 
  另一個常見的處理方式是創(chuàng)建一個全局性的目錄數(shù)據(jù)庫,該數(shù)據(jù)庫包含應用名稱和讀寫IP地址之間的映射(i.e. {app1_master1, 192.168.0.1}, {app_master2, 192.168.0.2}, …)。這種情形下,在當前master掛掉之后需要更新目錄數(shù)據(jù)庫。
 
  兩者方式各有優(yōu)勢和劣勢。MHA不強制使用其中一種方式,允許用戶使用任何一種IP地址故障切換的解決辦法,master_ip_failover_script參數(shù)被用于解決這個。 換句話說,需要編寫一個腳本使應用透明的連接到new master,必須定義在master_ip_failover_script 參數(shù)中。實例如下:
 
  master_ip_failover_script= /usr/local/sample/bin/master_ip_failover
 
  示例及保本位于(MHA Manager包)/samples/scripts/master_ip_failover。 示例腳本在MHA Managertarball和GitHup分支中包含。
 
  MHA Manager 調用master_ip_failover_script 三次。第一次在進入master監(jiān)控之前(腳本有效性檢查),第二次是在調用shutdown_script腳本之前,第三次是在應用差異relay log到new master之后。MHA Manager 傳入以下參數(shù)(不需要在配置文件中配置)。
 
  Checking 階段
 
  --command=status
 
  --ssh_user=(當前master的ssh username)
 
  --orig_master_host=(當前master 的 hostname)
 
  --orig_master_ip=(當前 master的 ip地址)
 
  --orig_master_port=(當前master的端口號)
 
  當前master shutdown階段
 
  --command=stop 或 stopssh
 
  --ssh_user=(dead master的 ssh username,如果可以通過SSH訪問)
 
  --orig_master_host=(current(dead) master的 hostname)
 
  --orig_master_ip=(current(dead) master的 ip 地址)
 
  --orig_master_port=(current(dead) master的 端口號)
 
  New master 激活階段
 
  --command=start
 
  --ssh_user=(new master的 ssh username)
 
  --orig_master_host=(dead master的 hostname)
 
  --orig_master_ip=(dead master的 ip 地址)
 
  --orig_master_port=(dead master的端口號)
 
  --new_master_host=(new master的 hostname)
 
  --new_master_ip=(new master的 ip 地址)
 
  --new_master_port(new master的端口號)
 
  --new_master_user=(new master的用戶)
 
  --new_master_password(new master的密碼)
 
  如果在master上使用了一個共享的虛擬IP地址,只要在之后shutdown_script中關掉了機器,在shutdown階段可能不需要做任何事。在newmaster激活階段,可以在new master上指定虛擬IP。
 
  如果使用了目錄數(shù)據(jù)庫的方式,在master shutdown階段需要delete或者update dead master的記錄。在new master激活階段,可以insert/update new master的記錄。還有,可以做任何你需要做的事,使得應用可以寫入new master。比如,SET GLOBAL read_only=0,創(chuàng)建擁有write權限的數(shù)據(jù)庫用戶,等等。
 
  MHA Manager 檢查該腳本退出的code(return code)。如果腳本返回的code為0或者10,MHA Manager 繼續(xù)操作。 如果腳本返回的code不是0或者10,MHA Manager終止,不會繼續(xù)故障切換。參數(shù)默認為空。
 
  1.34 master_ip_online_change_script
 
  類似于master_ip_failover_script 參數(shù),但是該參數(shù)不是用于master故障切換的命令,用于master在線切換命令(masterha_master_switch--master_state=alive)。傳入以下參數(shù)。
 
  Current master阻塞寫入階段
 
  --command=stop 或 stopssh
 
  --orig_master_host=(current master的 hostname)
 
  --orig_master_ip=(current master的 ip 地址)
 
  --orig_master_port=(current master的端口號)
 
  --orig_master_user=(current master的用戶)
 
  --orig_master_password=(current master的密碼)
 
  --orig_master_ssh_user=(從0.56支持, current master的 ssh user)
 
  --orig_master_is_new_slave=(從0.56支持, 表示原來的master是否會成為新的slave)
 
  New master 賦write權限階段
 
  --command=start
 
  --orig_master_host=(orig master的hostname)
 
  --orig_master_ip=(orig master的 ip 地址)
 
  --orig_master_port=(orig master的端口號)
 
  --new_master_host=(new master的 hostname)
 
  --new_master_ip=(new master的ip 地址)
 
  --new_master_port(new master的端口號)
 
  --new_master_user=(new master的用戶)
 
  --new_master_password=(new master的密碼)
 
  --new_master_ssh_user=(從0.56支持, new master的 ssh user)
 
  當前master阻塞寫階段,MHA 在當前master上執(zhí)行 FLUSH TABLES WITH READ LOCK 。在new master賦wirte權限階段,可以做和master_ip_failover_script一樣的事情。比如,創(chuàng)建有權限的用戶,執(zhí)行SET GLOBAL read_only=0,更新目錄數(shù)據(jù)庫,等等。如果腳本返回的code不是0或10,則MHA Manager 會終止,并且不會繼續(xù)master切換。
 
  默認參數(shù)為空。
 
  示例腳本位于(MHA Manager包)/samples/scripts/master_ip_online_change。
 
  1.35 shutdown_script
 
  為了防止master重啟服務,需要強制關閉掉master服務器。對于防止腦裂很重要。示例如下:
 
  shutdown_script= /usr/local/sample/bin/power_manager
 
  示例腳本位于(MHA Manager包)/samples/scripts/power_manager。示例腳本在MHA Managertarball和GitHup分支中包含。
 
  調用shutdown_script之前, MHA Manager輝縣檢查MySQL master能否通過SSH訪問。如果SSH可達(OS 是可用的,但是mysqld不運行了,i.e. 數(shù)據(jù)文件損壞了), MHA Manager 傳入以下參數(shù)。
 
  --command=stopssh
 
  --ssh_user=(用于連接master的ssh username)
 
  --host=(master的 hostname)
 
  --ip=(master的ip 地址)
 
  --port=(master的端口號)
 
  --pid_file=(master的 pid 文件)
 
  如果master通過SSH不可達,MHA Manager傳入以下參數(shù)。
 
  --command=stop
 
  --host=(master的 hostname)
 
  --ip=(master的 ip 地址)
 
  示例腳本工作方式如下:如果傳入--command=stopssh ,該腳本通過ssh連接master然后kill掉所有的mysqld 和mysqld_safe進程。如果也傳入了 --pid_file ,或者kill掉所有mysqld和mysqld_safe進程失敗的時候,該腳本只會kill掉指定的進程。在master上運行多個實例時該參數(shù)是有用的。如果command=stopssh成功,則該腳本返回code 10。如果返回code為10, MHA Manager 之后會連接到master,并且保存必需的二進制日志。如果通過SSH連接master失敗,或者傳入--command=stop,則該腳本會嘗試關閉機器。關機命令依賴于 H/W。對于HP(iLO),通常使用ipmitool 或 SSL 。對于Dell(DRAC),通常使用dracadm 。如果關機成功,該腳本會返回code 0。否則會返回code 1。如果返回的code為0,則MHA Manager開始故障切換。如果返回的code不是0 或 10, MHA Manager 終止故障切換。默認該參數(shù)為空。
 
  還有,MHA Manager在開始監(jiān)控的時候調用shutdown_script。以下參數(shù)在這個時候傳入。可以在這一步進行設置。控制power依賴于H/W,所以強烈推薦在這一步檢查power status。如果一些地方出錯,在開始監(jiān)控之前就可以意識到。
 
  --command=status
 
  --host=(master的 hostname)
 
  --ip=(master的 ip 地址)
 
  1.36 report_script
 
  failover完成或者因為錯誤結束的時候可能需要發(fā)送報告(i.e. e-mail)。report_script 用于這個目的。MHA Manager傳入以下參數(shù)。
 
  --orig_master_host=(dead master的 hostname)
 
  --new_master_host=(new master的 hostname)
 
  --new_slave_hosts=(new slaves 的 hostnames,通過逗號分隔)
 
  --subject=(mail subject)
 
  --body=(body)
 
  參數(shù)默認為空。
 
  示例腳本位于(MHA Manager 包)/samples/scripts/send_report。示例腳本在MHA Managertarball 和 GitHub分支中包含。
 
  1.37 init_conf_load_script
 
  當不想在配置文件中設置純文本(i.e. password和repl_password)的時候可以使用該腳本。通過從該腳本返回 "name=value" 對,可以覆蓋全局配置文件的參數(shù)。示例如下。
 
  #!/usr/bin/perl
 
  print "password=$ROOT_PASS/n";
 
  print "repl_password=$REPL_PASS/n";
 
  參數(shù)默認為空。
 
  以上內容均為自己翻譯,有錯誤的地方麻煩之處,謝謝。
   ###
 
  MHA參數(shù)整理
 
  2014年09月17日 19:58:41
 
  閱讀數(shù):822
 
  MHA配置文件參數(shù)
 
  Parameter Name
 
  Required?
 
  Parameter Scope
 
  Default Value
 
  hostname
 
  Yes
 
  Local Only
 
  -
 
  ip
 
  No
 
  Local Only
 
  gethostbyname($hostname)
 
  port
 
  No
 
  Local/App/Global
 
  3306
 
  ssh_host
 
  No
 
  Local Only
 
  same as hostname
 
  ssh_ip
 
  No
 
  Local Only
 
  gethostbyname($ssh_host)
 
  ssh_port
 
  No
 
  Local/App/Global
 
  22
 
  ssh_connection_timeout
 
  No
 
  Local/App/Global
 
  5
 
  ssh_options
 
  No
 
  Local/App/Global
 
  ""(empty string)
 
  candidate_master
 
  No
 
  Local Only
 
 
  0
 
  no_master
 
  No
 
  Local Only
 
 
  0
 
  ignore_fail
 
  No
 
  Local Only
 
 
  0
 
  skip_init_ssh_check
 
  No
 
  Local Only
 
 
  0
 
  skip_reset_slave
 
  No
 
  Local/App/Global
 
 
  0
 
  user
 
  No
 
  Local/App/Global
 
  root
 
  password
 
  No
 
  Local/App/Global
 
  ""(empty string)
 
  repl_user
 
  No
 
  Local/App/Global
 
  Master_User value from SHOW SLAVE STATUS
 
  repl_password
 
  No
 
  Local/App/Global
 
  (current replication password)
 
  disable_log_bin
 
  No
 
  Local/App/Global
 
 
  0
 
  master_pid_file
 
  No
 
  Local/App/Global
 
  ""(empty string)
 
  ssh_user
 
  No
 
  Local/App/Global
 
  current OS user
 
  remote_workdir
 
  No
 
  Local/App/Global
 
  /var/tmp
 
  master_binlog_dir
 
  No
 
  Local/App/Global
 
  /var/lib/mysql
 
  log_level
 
  No
 
  App/Global
 
  info
 
  manager_workdir
 
  No
 
  App
 
  /var/tmp
 
  manager_log
 
  No
 
  App
 
  STDERR
 
  check_repl_delay
 
  No
 
  App/Global
 
  1
 
  check_repl_filter
 
  No
 
  App/Global
 
  1
 
  latest_priority
 
  No
 
  App/Global
 
  1
 
  multi_tier_slave
 
  No
 
  App/Global
 
 
  0
 
  ping_interval
 
  No
 
  App/Global
 
  3
 
  ping_type
 
  No
 
  App/Global
 
  SELECT
 
  secondary_check_script
 
  No
 
  App/Global
 
  null
 
  master_ip_failover_script
 
  No
 
  App/Global
 
  null
 
  master_ip_online_change_script
 
  No
 
  App/Global
 
  null
 
  shutdown_script
 
  No
 
  App/Global
 
  null
 
  report_script
 
  No
 
  App/Global
 
  null
 
  init_conf_load_script
 
  No
 
  App/Global
 
  null
 
  Local Scope: 適用于單個server范圍的參數(shù)。局部作用域參數(shù)需要在 application configuration 文件里面的[server_xxx]塊下面進行設置。
 
  App Scope:用于每組{master, slaves}的參數(shù)。這些參數(shù)需要在application configuration文件的[server_default] 塊下面進行設置。
 
  Global Scope: 用于所有{master, slaves}組的參數(shù)。只有在使用單個manager服務器管理多組{master, slaves}時,全局范圍的參數(shù)菜有用。這些參數(shù)需要在global configuration 文件中設置。
 
  1.1 hostname
 
  MySQL服務器的Hostname 或者 IP 地址。這個參數(shù)是強制性的,在applicationconfiguration文件中的[server_xxx]塊下必須配置。
 
  1.2 ip
 
  MySQL服務器的IP地址。默認值是gethostbyname($hostname).。MHA Manager 和 MHA Node 在內部使用這個IP地址通過MYSQL和SSH連接。通常不需要配置這個參數(shù),因為會自動通過hostname參數(shù)解決。
 
  1.3 port
 
  MySQL服務器的端口號。默認是3306。MHA通過IP地址和端口連接MySQL服務器。
 
  1.4 ssh_host
 
  (從0.53開始支持)SSH使用的MySQL服務器的Hostname 或 IP 地址。當使用多VLAN配置的時候,這個參數(shù)(以及ssh_port參數(shù))是有用的。默認和hostname一致。
 
  1.5 ssh_ip
 
  (從0.53開始支持)通過SSH使用的MySQL服務器的IP地址。默認值是 gethostbyname($ssh_host)。
 
  1.6 ssh_port
 
  (從0.53開始支持)通過SSH連接的MySQL服務器的端口號。默認是22。
 
  1.7 ssh_connection_timeout
 
  (從0.54開始支持)默認是5秒。在添加這個參數(shù)之前,超時時間是固定的,只能在代碼中更改。
 
  1.8 ssh_options
 
  (從0.53開始支持)SSH命令行的額外選項。
 
  1.9 candidate_master
 
  slaves可能會使用不同類型的機器,需要提升最可靠的機器做為new master。(比如:提升RAID1+0的slave,而不是RAID0的slaves)。
 
  通過設置candidate_master為1,只要該服務器符合成為new master的條件,該服務器會優(yōu)先成為master(比如:開啟binlog,延遲不明顯,等等)所以candidate_master=1不代表指定的host在current master掛掉后總會成為new master,只是用于設置優(yōu)先級。
 
  如果在多臺服務器上設置了candidate_master=1,優(yōu)先級根據(jù)block名稱([server_xxx])的順序決定。[server_1] 優(yōu)先級高于[server_2]。
 
  1.10 no_master
 
  在目標服務器上設置no_master=1,該服務器不會成為new master。如果有一些服務器不應該成為new master,那么該參數(shù)是有用的。比如,如果在不可靠的機器(RAID0)上運行了salve,或者在遠程數(shù)據(jù)中心運行了slave,那可能需要設置no_master=1。如果沒有slave可以成為new master,MHA會退出,并且不會進行監(jiān)控或故障轉移。
 
  1.11 ignore_fail
 
  默認情況下,如果任意slave運行出錯了(通過SSH不能連接MySQL,SQL線程出錯停止了等待),MHA Manager就不會進行故障轉移。但是一些情況下,如果特定的slave服務器運行出錯,還是希望繼續(xù)故障轉移,那么可以在指定的服務器上設置ignore_fail=1,就算這些服務器出錯,MHA還是會繼續(xù)故障轉移。默認情況下,該參數(shù)值為0。
 
  1.12 skip_init_ssh_check
 
  在啟動初始化時跳過SSH連接。
 
  1.13 skip_reset_slave
 
  (從0.56開始支持)master 轉移之后跳過執(zhí)行RESET SLAVE (ALL) 。
 
  1.14 user
 
  連接MySQL服務器的管理賬號。該參數(shù)應該為root,因為會執(zhí)行一些管理命令,比如STOP SLAVE,CHANGE MASTER,RESET SLAVE。默認為root。
 
  1.15 password
 
  上述”user”用戶的MySQL密碼。默認為空。
 
  1.16 repl_user
 
  在每臺slave上執(zhí)行CHANGE MASTER TO master_user ..時使用的復制用戶名。該用戶在master上需要有REPLICATIONSLAVE 權限。默認情況下,使用的是new master(當前還是slave)上SHOW SLAVE STATUS 中 Master_User 這一列的值。
 
  1.17 repl_password
 
  上述"repl_user"用戶的MySQL密碼。默認情況下,是當前replication密碼。如果運行onlinemaster switch并且指定了--orig_master_is_new_slave (意味著當前master會做為new master的slave)參數(shù),如果不指定repl_password開啟slave就會失敗,因為在當前master上replication密碼默認為空(盡管在其他slaves上設置了replication密碼,但是MHA在當前master上執(zhí)行change master時不指定replication 密碼)。
 
  1.18 disable_log_bin
 
  該參數(shù)啟用時,當在slaves上應用差異relay logs時,slaves不產生二進制日志。MHA會將 --disable-log-bin 傳給mysqlbinlog命令。
 
  1.19 master_pid_file
 
  設置master的pid文件。在單個服務器上運行多個MySQL實例時,這個參數(shù)是有效的。參照shutdown_script參數(shù)查看更多詳細信息。
 
  1.20 ssh_user
 
  MHA Manager 和 MHA Node連接MySQL服務器時使用的操作×××用戶名。使用該參數(shù)有多種目的:比如遠程執(zhí)行命令(Manager->MySQL),從latest slave上復制差異relay logs到其他slaves(MySQL->MySQL),等等。
 
  該用戶在MySQL binary/relay log 文件和relay_log.info 文件上必須至少有read權限。在日志目錄(每臺MySQL服務器上的remote_workdir)必須有write權限。
 
  該用戶必須能夠無交互式的連接到服務器。一般推薦使用SSH公共密鑰驗證。默認情況下ssh_user是manager所在機器上的當前操作×××用戶。
 
  1.21 remote_workdir
 
  每個MHA Node(運行在MySQL服務器上)產生日志文件的路徑。如果該目錄不存在,MHA會自動創(chuàng)建。如果沒有賦予足夠的權限,MHA Node會終止。MHA Manager或MHA Node都不會檢測磁盤空間,所以應該注意這一點。默認情況下,remote_workdir是"/var/tmp"。
 
  1.22 master_binlog_dir
 
  master機器上MySQL產生二進制日志的目錄。當deadmaster可以通過SSH連接的時候該參數(shù)是有效的,為了讀取復制必需的二進制日志events。如果MySQL掛掉之后沒有方法自動檢測二進制日志目錄,所以該參數(shù)是必需的。
 
  默認情況下,master_binlog_dir 是 "/var/lib/mysql,/var/log/mysql"。/var/lib/mysql是許多MySQL版本的默認binlog輸出目錄,/var/log/mysql是Ubuntu上MySQL包的默認binlog輸出目錄。可以設置多個目錄,這些目錄用逗號隔開(i.e /data1,/data2,…)。
 
  1.23 log_level
 
  MHA Manager打印出來的日志的臨界值。默認情況下是info,還可以設置 debug/info/warning/error。
 
  1.24 manager_workdir
 
  MHA Manager產生相關狀態(tài)的文件目錄。如果沒有設置,會使用/var/tmp。
 
  1.25 manager_log
 
  MHA Manager產生日志的完整目錄。如果沒有設置,MHAManager會輸出到STDOUT/STDERR。當執(zhí)行手動切換時(交互式故障切換),MHAManager會忽略manager_log,并且總是輸出到STDOUT/STDERR。
 
  1.26 check_repl_delay
 
  默認情況下,如果一個slave落后master超過100MB的relay logs(相當于會應用超過100MB的relay logs),MHA就不會選擇該slave作為new master,因為恢復過程會花費太長時間。通過設置check_repl_delay=0,在選擇new master的時候MHA就會忽略復制延遲。如果在某個指定的host上設置了candidate_master=1,并且想要確保該host成為new master,那這個選項是有用的。
 
  1.27 check_repl_filter
 
  默認情況下,如果master和salves有不同的binary log/replication過濾規(guī)則,MHA會打印錯誤,并且不會開始監(jiān)控或者故障切換。這是為了防止在恢復的時候出現(xiàn)不期望的錯誤,比如"Table not exists"。如果你可以100%的確保設置不同的過濾規(guī)則不會導致恢復出現(xiàn)問題,可以設置check_repl_filter = 0。在應用差異relaylogs的時候MHA不會檢查過濾規(guī)則,所以如果設置check_repl_filter = 0有可能會出現(xiàn)"Table not exists" (或者其他)錯誤。設置這個參數(shù)的時候應該謹慎一點。
 
  1.28 latest_priority
 
  默認情況下,latest slave(接受到最新的binlog events的slave)會被優(yōu)先選為new master。如果想控制優(yōu)先順序(i.e. host2->host3->host4),可以設置latest_priority=0。
 
  1.29 multi_tier_slave
 
  從MHA Manager 0.52版本開始,開始支持多主復制配置。默認情況下,是不允許在MHA配置文件中設置3層或者更多層的replication hosts。比如,假設host2從host1復制,host3從host2上復制。默認情況下是不允許在配置文件中配置host1,host2,host3的,因為這是一個三層的復制,MHA Manager會報錯停止。通過設置multi_tier_slave ,MHA Manager 不會因為三層復制終止,但是會忽略第三層的hosts。如果host1(master)宕機,host2就會被選為新的master,host3還是繼續(xù)從host2復制。
 
  1.30 ping_interval
 
  這個參數(shù)表示MHA Manager多久ping一次master(執(zhí)行sql語句)。丟失三次連接后,MHA Manager決定MySQL master掛掉。默認是3秒。如果因為連接太多或者驗證錯誤導致MHA Manager連接失敗,不會記錄到ping失敗的次數(shù)里面。
 
  1.31 ping_type
 
  (從0.53開始支持)默認情況下,MHA建立了一個到master的持久連接,通過執(zhí)行"SELECT 1" (ping_type=SELECT)來驗證master的可用性。但是在一些情況下,每次都斷開連接再重新連接時更好的,因為更嚴格,而且可以更快檢測到TCP連接層的失敗。通過設置ping_type=CONNECT可以實現(xiàn)這個。從0.56開始,添加了ping_type=INSERT。
 
  1.32 secondary_check_script
 
  通常來說,非常推薦使用兩個貨更多的網(wǎng)絡線路檢測MySQL master服務器的可用性。默認情況下,MHA Manager只是用單個線路檢測:從Manager到Master。但是這個并不推薦。MHA通過調用一個額外的腳本(通過secondary_check_script參數(shù)指定),實際上可以有兩個或更多的檢查線路。配置示例:
 
  secondary_check_script =masterha_secondary_check -s remote_host1 -s remote_host2
 
  masterha_secondary_check在MHA Manager包中已經(jīng)包含。內置的masterha_secondary_check 腳本在大多數(shù)情況下都是比較好的,這里也可以調用其他任意腳本。
 
  在上述示例中,MHA Manager通過Manager-(A)->remote_host1-(B)->master_host和 Manager-(A)->remote_host2-(B)->master_host檢測MySQL master服務器。如果在兩個線路中都會出現(xiàn):connection A是成功的,但是B是不成功的,則masterha_secondary_check會退出(返回0),并且MHAManager決定MySQL master真的掛掉了,然后會進行failover。如果A是不成功的,masterha_secondary_check會退出(返回2),并且MHAManager猜測發(fā)生網(wǎng)絡問題,不會進行failover。如果B是成功的,masterha_secondary_check會退出(返回3),并且MHAManager 推斷MySQL master是存活的,不會進行failover。
 
  一般來講,remote_host1 和 remote_host2 應該位于不同的網(wǎng)段(從MHA Manager和MySQL服務器)。
 
  MHA 調用secondary_check_script參數(shù)定義的腳本,自動傳一下參數(shù)(所以不需要再配置文件中設置以下參數(shù))。 masterha_secondary_check 在許多情形下是適宜的,但是如果你需要更多功能可以自己寫一些網(wǎng)絡監(jiān)測腳本。
 
  --user=(遠程hosts的SSH用戶名。ssh_user 參數(shù)的值會被傳入)
 
  --master_host=(master的hostname)
 
  --master_ip=(master的ip 地址)
 
  --master_port=(master的端口號)
 
  內置的masterha_secondary_check 腳本依賴于IO::Socket::INETPerl包,從Perl v5.6.0開始已經(jīng)默認包含。masterha_secondary_check 腳本也是通過SSH連接到遠程服務器,所以也需要SSH公共密鑰驗證。還有,masterha_secondary_check 腳本嘗試從遠程服務器(set by -s)到MySQLmaster建立TCP連接。my.cnf中設置的max_connections參數(shù)不會影響,如果TCP連接成功,master上的aborted_connects值會加1。
 
  1.33 master_ip_failover_script
 
  在常見的HA環(huán)境中,許多情形下會在master上分配一個虛擬IP地址。如果master掛掉,HA軟件(比如:Pacemaker)會接管虛擬IP到備機上。
 
  另一個常見的處理方式是創(chuàng)建一個全局性的目錄數(shù)據(jù)庫,該數(shù)據(jù)庫包含應用名稱和讀寫IP地址之間的映射(i.e. {app1_master1, 192.168.0.1}, {app_master2, 192.168.0.2}, …)。這種情形下,在當前master掛掉之后需要更新目錄數(shù)據(jù)庫。
 
  兩者方式各有優(yōu)勢和劣勢。MHA不強制使用其中一種方式,允許用戶使用任何一種IP地址故障切換的解決辦法,master_ip_failover_script參數(shù)被用于解決這個。 換句話說,需要編寫一個腳本使應用透明的連接到new master,必須定義在master_ip_failover_script 參數(shù)中。實例如下:
 
  master_ip_failover_script= /usr/local/sample/bin/master_ip_failover
 
  示例及保本位于(MHA Manager包)/samples/scripts/master_ip_failover。 示例腳本在MHA Managertarball和GitHup分支中包含。

  如果在master上使用了一個共享的虛擬IP地址,只要在之后shutdown_script中關掉了機器,在shutdown階段可能不需要做任何事。在newmaster激活階段,可以在new master上指定虛擬IP。
 
  如果使用了目錄數(shù)據(jù)庫的方式,在master shutdown階段需要delete或者update dead master的記錄。在new master激活階段,可以insert/update new master的記錄。還有,可以做任何你需要做的事,使得應用可以寫入new master。比如,SET GLOBAL read_only=0,創(chuàng)建擁有write權限的數(shù)據(jù)庫用戶,等等。
 
  MHA Manager 檢查該腳本退出的code(return code)。如果腳本返回的code為0或者10,MHA Manager 繼續(xù)操作。 如果腳本返回的code不是0或者10,MHA Manager終止,不會繼續(xù)故障切換。參數(shù)默認為空。
 
  1.34 master_ip_online_change_script
 
  類似于master_ip_failover_script 參數(shù),但是該參數(shù)不是用于master故障切換的命令,用于master在線切換命令(masterha_master_switch--master_state=alive)。傳入以下參數(shù)。
 
  Current master阻塞寫入階段
 
  --command=stop 或 stopssh
 
  --orig_master_host=(current master的 hostname)
 
  --orig_master_ip=(current master的 ip 地址)
 
  --orig_master_port=(current master的端口號)
 
  --orig_master_user=(current master的用戶)
 
  --orig_master_password=(current master的密碼)
 
  --orig_master_ssh_user=(從0.56支持, current master的 ssh user)
 
  --orig_master_is_new_slave=(從0.56支持, 表示原來的master是否會成為新的slave)
 
  New master 賦write權限階段
 
  --command=start
 
  --orig_master_host=(orig master的hostname)
 
  --orig_master_ip=(orig master的 ip 地址)
 
  --orig_master_port=(orig master的端口號)
 
  --new_master_host=(new master的 hostname)
 
  --new_master_ip=(new master的ip 地址)
 
  --new_master_port(new master的端口號)
 
  --new_master_user=(new master的用戶)
 
  --new_master_password=(new master的密碼)
 
  --new_master_ssh_user=(從0.56支持, new master的 ssh user)
 
  當前master阻塞寫階段,MHA 在當前master上執(zhí)行 FLUSH TABLES WITH READ LOCK 。在new master賦wirte權限階段,可以做和master_ip_failover_script一樣的事情。比如,創(chuàng)建有權限的用戶,執(zhí)行SET GLOBAL read_only=0,更新目錄數(shù)據(jù)庫,等等。如果腳本返回的code不是0或10,則MHA Manager 會終止,并且不會繼續(xù)master切換。
 
  默認參數(shù)為空。
 
  示例腳本工作方式如下:如果傳入--command=stopssh ,該腳本通過ssh連接master然后kill掉所有的mysqld 和mysqld_safe進程。如果也傳入了 --pid_file ,或者kill掉所有mysqld和mysqld_safe進程失敗的時候,該腳本只會kill掉指定的進程。在master上運行多個實例時該參數(shù)是有用的。如果command=stopssh成功,則該腳本返回code 10。如果返回code為10, MHA Manager 之后會連接到master,并且保存必需的二進制日志。如果通過SSH連接master失敗,或者傳入--command=stop,則該腳本會嘗試關閉機器。關機命令依賴于 H/W。對于HP(iLO),通常使用ipmitool 或 SSL 。對于Dell(DRAC),通常使用dracadm 。如果關機成功,該腳本會返回code 0。否則會返回code 1。如果返回的code為0,則MHA Manager開始故障切換。如果返回的code不是0 或 10, MHA Manager 終止故障切換。默認該參數(shù)為空。
 
  還有,MHA Manager在開始監(jiān)控的時候調用shutdown_script。以下參數(shù)在這個時候傳入。可以在這一步進行設置。控制power依賴于H/W,所以強烈推薦在這一步檢查power status。如果一些地方出錯,在開始監(jiān)控之前就可以意識到。
 
  --command=status
 
  --host=(master的 hostname)
 
  --ip=(master的 ip 地址)
 
  1.36 report_script
 
  failover完成或者因為錯誤結束的時候可能需要發(fā)送報告(i.e. e-mail)。report_script 用于這個目的。MHA Manager傳入以下參數(shù)。
 
  --orig_master_host=(dead master的 hostname)
 
  --new_master_host=(new master的 hostname)
 
  --new_slave_hosts=(new slaves 的 hostnames,通過逗號分隔)
 
  --subject=(mail subject)
 
  --body=(body)
 
  參數(shù)默認為空。
 
  示例腳本位于(MHA Manager 包)/samples/scripts/send_report。示例腳本在MHA Managertarball 和 GitHub分支中包含。
 
  1.37 init_conf_load_script
 
  當不想在配置文件中設置純文本(i.e. password和repl_password)的時候可以使用該腳本。通過從該腳本返回 "name=value" 對,可以覆蓋全局配置文件的參數(shù)。示例如下。
 
  #!/usr/bin/perl
 
  print "password=$ROOT_PASS/n";
 
  print "repl_password=$REPL_PASS/n";
 
  參數(shù)默認為空。
 
  以上內容均為自己翻譯,有錯誤的地方麻煩之處,謝謝。
 

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 毛片在线免费 | 国产精彩视频 | 国产精品久久国产精品99 gif | 操视频网站 | 亚洲一区久久 | 一区二区三区视频在线观看 | 可以免费观看的av | 四虎成人在线播放 | 日本一区二区视频在线 | 免费一区二区视频 | 日本一区二区高清 | 九九久久久 | 91精品国产91久久久久久吃药 | 青草青草久热精品视频在线观看 | 亚洲精选久久 | 成人在线影视 | 国产成人毛片 | 视频精品一区二区 | 久久精品成人欧美大片 | 国产高清无av久久 | 视频二区| 亚洲国产精品人人爽夜夜爽 | 日韩一区二区精品 | 欧美一区二区影院 | 成人黄页在线观看 | 羞羞av在线 | 中文字幕色婷婷在线视频 | 皇上侵犯双性太子高h虐受视频 | 亚洲三级视频 | 色综合一区 | 国产一级免费在线观看 | 日本综合在线 | 91精品国产欧美一区二区成人 | 一区二区三区视频免费观看 | 日韩a级免费视频 | 羞视频在线观看 | 91伊人| 欧美成人在线免费观看 | 一级毛片在线视频 | 激情91 | 成人黄色在线观看 |