<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[info] 構建mha **注:** 正式環境 MHA 要安裝在一臺單獨的服務器 **注:** `super_read_only` 必須MySQL 5.7 版本以上才有該參數,不然 驗證會報錯如下: ![](https://img.kancloud.cn/c6/95/c6958d44c3a8a992afd02058b6c0b450_957x359.png) ***** **流程:** 1. 安裝mha node 2. 安裝mha manger 3. 配置mha配置文件 4. 檢測mha情況 5. 演示宕機 ### **1. 安裝 MHA Node組件** 1. 登錄主節點(192.168.83.130) ``` mkdir -p /usr/local/mha | cd /usr/local/mha rz 上傳 mha 包 ``` ![](https://img.kancloud.cn/77/0c/770c5438ad08965a135cfb44b6d8e357_553x75.png) 2. scp 遠程傳輸 將mha4mysql-node-0.58.tar.gz 到 另外兩臺子節點 ``` # 無 mha 目錄先創建 scp mha4mysql-node-0.58.tar.gz root@192.168.83.131:/usr/local/mha/ scp mha4mysql-node-0.58.tar.gz root@192.168.83.132:/usr/local/mha/ ``` ![](https://img.kancloud.cn/c8/df/c8dfa9d8716fca2603afcadbd60727af_932x143.png) 3. 解壓安裝(在所有機器上執行:): ``` tar -zxvf mha4mysql-node-0.58.tar.gz cd mha4mysql-node-0.58 perl Makefile.PL make && make install ``` 4. node 安裝完成后會得到四個工具,位于 `/usr/local/bin/` 下面 ``` ll /usr/local/bin/ ``` ![](https://img.kancloud.cn/51/4b/514bd3baea223a35e77b5bed05629920_626x289.png) ### **2. 安裝 MHA Manager 組件** 1. 只在主節點 (192.168.83.130) 上安裝: ``` cd /usr/local/mha tar -zxvf mha4mysql-manager-0.58.tar.gz perl Makefile.PL make && make install ``` 2. 查看 Manager 工具 ``` ll /usr/local/bin/ | grep master ``` ![](https://img.kancloud.cn/0b/07/0b077eb5567cf9645e27e6b607efef7c_834x220.png) ### **3. 配置 MHA Manger** 1. 創建文件目錄 ``` # 創建MHA腳本目錄 mkdir /etc/mha/scripts -p # 創建MHA日志目錄 mkdir /var/log/mha/app1 -p # 創建日志文件 touch /var/log/mha/app1/manager.log ``` 2. MHA 應用配置文件 ``` vim /etc/mha/app1.cnf ``` **candidate_master=1的意思是是否能提升為master** ~~~ [server default] manager_workdir=/var/log/mha/app1 manager_log=/var/log/mha/app1/manager.log [server1] hostname=192.168.83.130 port=3306 [server2] hostname=192.168.83.131 port=3306 candidate_master=1 [server3] hostname=192.168.83.132 port=3306 ~~~ 3. MHA 檢測配置文件 ``` vim /etc/masterha_default.cnf ``` **只需要改用戶名 密碼、master_binlog_dir、secondary_check_script:** ~~~ [server default] user=slave password=123456 repl_user=slave repl_password=123456 ssh_user=root ping_interval=1 master_binlog_dir=/www/server/data manager_workdir=/var/log/mha/app1 manager_log=/var/log/mha/app1/manager.log master_ip_failover_script="/etc/mha/scripts/master_ip_failover" master_ip_online_change_script="/etc/mha/scripts/master_ip_online_change" report_script="/etc/mha/scripts/send_report" remote_workdir=/tmp secondary_check_script= /usr/local/bin/masterha_secondary_check -s 192.168.83.130 -s 192.168.83.131 -s 192.168.83.132 shutdown_script="" ~~~ **MHA主要配置文件說明:** ~~~ manager_workdir=/var/log/masterha/app1:設置manager的工作目錄 manager_log=/var/log/masterha/app1/manager.log:設置manager的日志文件 master_binlog_dir=/opt/mysql_data:設置master 保存binlog的位置,以便MHA可以找到master的日志 master_ip_failover_script="/etc/mha/scripts/master_ip_failover":設置自動failover時候的切換腳本 master_ip_online_change_script="/etc/mha/scripts/master_ip_online_change":設置手動切換時候的切換腳本 user=root:設置監控mysql的用戶 password=dayi123:設置監控mysql的用戶,需要授權能夠在manager節點遠程登錄 ping_interval=1:設置監控主庫,發送ping包的時間間隔,默認是3秒,嘗試三次沒有回應的時候自動進行railover remote_workdir=/tmp:設置遠端mysql在發生切換時binlog的保存位置 repl_user=repl :設置mysql中用于復制的用戶密碼 repl_password=replication:設置mysql中用于復制的用戶 report_script=/usr/local/send_report:設置發生切換后發送的報警的腳本 shutdown_script="":設置故障發生后關閉故障主機腳本(該腳本的主要作用是關閉主機放在發生腦裂,這里沒有使用) ssh_user=root //設置ssh的登錄用戶名 candidate_master=1:在節點下設置,設置當前節點為候選的master slave check_repl_delay=0 :在節點配置下設置,默認情況下如果一個slave落后master 100M的relay logs的話,MHA將不會選擇該slave作為一個新的master;這個選項對于對于設置了candidate_master=1的主機非常有用 ~~~ 4. 腳本配置 ``` vim /etc/mha/scripts/master_ip_failover ``` ***** 注意把下文中的變量$vip和$key 換成自己的。另外,如果網卡類型不是ens33的,就要把文中的ens33緩存自己的,因為老師的是ens33,所以寫的是ens33: **注:** 最好不要 copy 代碼,直接從 `master_ip_failover` 文件中 修改 copy ***** ``` #!/usr/bin/env perl use strict; use warnings FATAL => 'all'; use Getopt::Long; my ( $command, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $new_master_ip, $new_master_port ); my $vip = '192.168.83.10'; my $key = '0'; my $ssh_start_vip = "ifconfig ens33:0 192.168.83.10 netmask 255.255.255.0 up"; my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down"; GetOptions( 'command=s' => \$command, 'ssh_user=s' => \$ssh_user, 'orig_master_host=s' => \$orig_master_host, 'orig_master_ip=s' => \$orig_master_ip, 'orig_master_port=i' => \$orig_master_port, 'new_master_host=s' => \$new_master_host, 'new_master_ip=s' => \$new_master_ip, 'new_master_port=i' => \$new_master_port, ); exit &main(); sub main { print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n"; if ( $command eq "stop" || $command eq "stopssh" ) { my $exit_code = 1; eval { print "Disabling the VIP on old master: $orig_master_host \n"; &stop_vip(); $exit_code = 0; }; if ($@) { warn "Got Error: $@\n"; exit $exit_code; } exit $exit_code; } elsif ( $command eq "start" ) { my $exit_code = 10; eval { print "Enabling the VIP - $vip on the new master - $new_master_host \n"; &start_vip(); $exit_code = 0; }; if ($@) { warn $@; exit $exit_code; } exit $exit_code; } elsif ( $command eq "status" ) { print "Checking the Status of the script.. OK \n"; exit 0; } else { &usage(); exit 1; } } sub start_vip() { `ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`; } sub stop_vip() { return 0 unless ($ssh_user); `ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`; } sub usage { print "Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n"; } ``` 添加執行權限: ``` chmod +x /etc/mha/scripts/master_ip_failover ``` 5. 驗證 MHA 相關操作 5.1 通過 masterha_check_ssh 命令驗證ssh 信任登錄是否成功 ``` masterha_check_ssh --conf=/etc/mha/app1.cnf ``` ![](https://img.kancloud.cn/ca/44/ca44362dc5e06d756d841f89705068ca_904x457.png) **如報錯:** 直接更新 yum 再次安裝 如下包 ``` yum -y update yum install -y perl-ParallelForkManager ``` 5.2 通過 masterha_check_repl 命令驗證 mysql 主從復制是否成功 ``` masterha_check_repl --conf=/etc/mha/app1.cnf ``` **提示:** MySQL Replication Health is OK 表示成功 ![](https://img.kancloud.cn/fe/b0/feb09bff47c186ac3cc1ae6043157f22_941x354.png) **如報錯:** mha服務器連接不上83.130 這臺服務器節點 ![](https://img.kancloud.cn/ba/f0/baf0d0ec5b1082ec937cc7acb25804cd_960x371.png) ``` # 在3臺服務器 添加權限(正式環境 all 謹慎) grant all on *.* to 'slave'@'192.168.83.%' identified by '123456'; # 刷新用戶權限 flush privileges; ``` **如報錯:** All log-bin enabled servers must have same binlog filtering rules (same binlog-do-db and binlog-ignore-db) ![](https://img.kancloud.cn/fa/6a/fa6a287378d0b76127134e677febe5a0_944x313.png) ``` # 我在主上開了復制過濾,在從上也必須開啟(3臺服務器復制過濾要一樣) log-bin=mysql-bin binlog-do-db=test replicate-do-db=test ``` ![](https://img.kancloud.cn/ca/8d/ca8de50fde101cff7ae3e22ed6eec857_408x113.png) **如報錯:** Slaves settings check failed! **如報錯:** 檢查 mysqlbinlog 設置軟鏈接 (3臺都需要設置) ![](https://img.kancloud.cn/1b/7c/1b7c3876c5ae4059cc0fd353a5dfccc9_973x259.png) ``` # which mysqlbinlog:查看當前軟鏈接地址 ln -s /www/server/mysql/bin/mysqlbinlog /usr/local/bin/mysqlbinlog # which mysql:查看當前軟鏈接地址 ln -s /www/server/mysql/bin/mysql /usr/local/bin/mysql # 如還不行:再配置(/usr/bin /usr/local/sbin export)再重啟3臺服務器 ln -s /www/server/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog # ln -s /www/server/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog | ln -s /www/server/mysql/bin/mysql /usr/bin/mysql # rm -rf /usr/local/bin/mysqlbinlog | rm -rf /usr/bin/mysqlbinlog | rm -rf /usr/local/sbin/mysqlbinlog | rm -rf /usr/local/bin/mysql | rm -rf /usr/bin/mysql | rm -rf /usr/local/sbin/mysql ``` **如報錯:** 設置 最高權限 ``` chmod -R 777 /etc/mha/scripts/master_ip_failover ``` **如報錯:** 不穩定,時不時出現(重啟主服務器 或 2臺從服務器)(關閉防火墻 firewalld) ![](https://img.kancloud.cn/47/2d/472d4a2d2113e97dff475bf8a81094aa_949x274.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看