麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > 文庫 > 正文

MHA配置文件參數詳情

2024-09-07 22:13:00
字體:
來源:轉載
供稿:網友
  ###

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

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91九色蝌蚪国产 | 中文字幕综合 | 欧美午夜网 | 涩涩99| 国产精品一区二区三区99 | 中文字幕涩涩久久乱小说 | 色a综合| 九九黄色 | 毛片大全免费看 | 欧美 videos粗暴 | 91精选视频在线观看 | 国产精品视频免费网站 | 精品一区二区三区电影 | 夜添久久精品亚洲国产精品 | 91中文在线| 久久福利小视频 | 3344永久免费 | 久青草免费视频 | 久国久产久精永久网页 | 日韩黄色免费在线观看 | 免费毛片免费看 | 成人免费视频 | 国产资源在线视频 | 色欧美视频 | 一本到免费视频 | 国内精品久久久久影院不卡 | 青草视频在线观看视频 | 久久经典国产视频 | 老子午夜影院 | 亚洲一区二区在线免费 | 91精品国产综合久久青草 | 国产91影院 | 久久精品国产亚洲7777 | 国产一级一国产一级毛片 | 一级成人免费 | 国产乱一区二区三区视频 | 国产午夜电影 | 欧美精品一区二区三区在线 | 韩国精品视频在线观看 | 精品一区二区三区中文字幕老牛 | 亚洲精品免费播放 |