国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

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

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

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

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙湾县| 济宁市| 梁平县| 佛教| 昆明市| 达州市| 湟中县| 自治县| 鄯善县| 利津县| 南涧| 宁蒗| 巴林左旗| 石城县| 文登市| 鄄城县| 湘潭县| 化州市| 姚安县| 澄城县| 黔东| 德化县| 肃南| 昌黎县| 巴南区| 马尔康县| 曲阜市| 桂平市| 景洪市| 高阳县| 桦南县| 当阳市| 沙坪坝区| 台湾省| 拜城县| 沾益县| 内乡县| 容城县| 大同县| 从化市| 宣武区|