1. 程式人生 > >mysql MHA主從切換問題實驗總結

mysql MHA主從切換問題實驗總結

問題一:
Fri May 27 10:01:05 2016 - [error][/apps/lib/mha/mha_manager/MHA/MasterRotate.pm, ln161] We should not start online master switch when one of connections are running long updates on the current master(10.16.24.108(10.16.24.108:3307)). Currently 1 update thread(s) are running.
Details:
{'Time' => '88270','Command' => 'Daemon','db' => undef,'Id' => '2','Info' => undef,'User' => 'event_scheduler','Progress' => '0.000','State' => 'Waiting on empty queue','Host' => 'localhost'}
Fri May 27 10:01:05 2016 - [error][/apps/lib/mha/mha_manager/MHA/ManagerUtil.pm, ln177] Got ERROR:  at /apps/sh/mha/mha_manager/bin/masterha_master_switch line 53.

解決方法:
關掉event_schedule即可:
(product)[email protected] [(none)]> SET GLOBAL event_scheduler =off;
Query OK, 0 rows affected (0.00 sec)

(product)[email protected] [(none)]> Select @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| OFF               |
+-------------------+
1 row in set (0.00 sec)

(product)[email protected] [(none)]> show processlist\G
*************************** 1. row ***************************
      Id: 140
    User: repl
    Host: 10.16.24.107:44449
      db: NULL
 Command: Binlog Dump
    Time: 13262
   State: Master has sent all binlog to slave; waiting for binlog to be updated
    Info: NULL
Progress: 0.000
*************************** 2. row ***************************
      Id: 141
    User: repl
    Host: 10.16.24.109:23490
      db: NULL
 Command: Binlog Dump
    Time: 13254
   State: Master has sent all binlog to slave; waiting for binlog to be updated
    Info: NULL
Progress: 0.000
*************************** 3. row ***************************
      Id: 147
    User: mha
    Host: 10.16.24.108:59213
      db: NULL
 Command: Query
    Time: 0
   State: init
    Info: show processlist
Progress: 0.000
3 rows in set (0.00 sec)


問題二:
It is better to execute FLUSH NO_WRITE_TO_BINLOG TABLES on the master before switching. Is it ok to execute on 10.16.24.108(10.16.24.108:3307)? (YES/no): yes
Fri May 27 15:19:14 2016 - [info] Executing FLUSH NO_WRITE_TO_BINLOG TABLES. This may take long time..
Fri May 27 15:19:14 2016 - [info]  ok.
Fri May 27 15:19:14 2016 - [info] Checking MHA is not monitoring or doing failover..
Fri May 27 15:19:14 2016 - [info] Checking replication health on 10.16.24.107..
Fri May 27 15:19:14 2016 - [info]  ok.
Fri May 27 15:19:14 2016 - [info] Checking replication health on 10.16.24.109..
Fri May 27 15:19:14 2016 - [info]  ok.
Fri May 27 15:19:14 2016 - [error][/apps/lib/mha/mha_manager/MHA/ServerManager.pm, ln1218] 10.16.24.109 is not alive!
Fri May 27 15:19:14 2016 - [error][/apps/lib/mha/mha_manager/MHA/MasterRotate.pm, ln232] Failed to get new master!
Fri May 27 15:19:14 2016 - [error][/apps/lib/mha/mha_manager/MHA/ManagerUtil.pm, ln177] Got ERROR:  at /apps/sh/mha/mha_manager/bin/masterha_master_switch line 53.

解決方法:
因為10.16.24.109的/apps/conf/mha/app1.cnf中的no_master=1限制了它成為新master的可能,標識掉no_master=1後,重新線上切換成功。


問題三:
Sat May 28 09:35:06 2016 - [info] Master configurations are as below:
Master 10.16.24.109(10.16.24.109:3307), replicating from 10.16.24.108(10.16.24.108:3307)
Master 10.16.24.108(10.16.24.108:3307), replicating from 10.16.24.109(10.16.24.109:3307), read-only

Sat May 28 09:35:06 2016 - [warning] SQL Thread is stopped(no error) on 10.16.24.108(10.16.24.108:3307)
Sat May 28 09:35:06 2016 - [error][/apps/lib/mha/mha_manager/MHA/ServerManager.pm, ln726] Slave 10.16.24.107(10.16.24.107:3307) replicates from 10.16.24.108:3307, but real master is 10.16.24.109(10.16.24.109:3307)!
Sat May 28 09:35:06 2016 - [error][/apps/lib/mha/mha_manager/MHA/ManagerUtil.pm, ln177] Got ERROR:  at /apps/lib/mha/mha_manager/MHA/MasterRotate.pm line 85.

解決方法:
10.16.24.108上執行:set global read_only=off;
10.16.24.109上執行:set global read_only=on;
10.16.24.107上執行:set global read_only=on;

問題四:
Sat May 28 10:00:32 2016 831853 Set read_only=0 on the new master.
Sat May 28 10:00:32 2016 832417Add vip 10.16.24.58 on eth1..
RTNETLINK answers: Operation not permitted
解決方法:
在root使用者下每個節點執行:
chmod u+s /sbin/ip

問題五:
MHA手工線上切換後,vip也漂到新主庫上,但在其它主機上用vip連線時,卻還是連到本主機的從庫上
是啥原因
解決方法:
在所有從庫上執行drop_vip.sh即可

相關推薦

mysql MHA主從切換問題實驗總結

問題一:Fri May 27 10:01:05 2016 - [error][/apps/lib/mha/mha_manager/MHA/MasterRotate.pm, ln161] We should not start online master switch whe

MySQL主從切換

mysql 主從切換 在一主多從的環境中,如主庫為M,從庫為S1、S2,當主庫出現故障時,主從切換的詳細步驟如下:1 首先要保證所有從庫已經執行了relay log中的全部更新,用以下語句查看:mysql> show processlist\G直到看到下面的語句,表示全部更新執行完畢。Has re

mysql表分區實驗總結

mysql 分區表測試總結mysql表分區技術能有效解決水平拆分和垂直拆分的不足,可操作性和效率都更優。以下是一些實驗總結。InnoDB引擎需先在配置文件中設置: innodb_file_per_table=1--innodb : 主表.frm 保存表結構和分區數目一致的 .ibd 文件,用於保存數據和索引。

Spring + Mybatis環境實現Mysql資料庫主從切換

一、簡述: 資料庫應用場景中,經常是“讀多寫少”,也就是對資料庫讀取資料壓力比較大。有一個解決方案是採用資料庫叢集方案。 一個數據庫是主庫,負責寫;其他為從庫,負責讀。實現:讀寫分離。 那麼,對我們的要求是: 1. 讀庫和寫庫的資料一致; 2. 寫資料

Spring AOP實現Mysql資料庫主從切換(一主多從)

設定資料庫主從切換的原因:資料庫中經常發生的是“讀多寫少”,這樣讀操作對資料庫壓力比較大,通過採用資料庫叢集方案,  一個數據庫是主庫,負責寫;其他為從庫,負責讀,從而實現讀寫分離增大資料庫的容錯率。  那麼,對資料庫的要求是:  1. 讀庫和寫庫的資料一致;  2. 寫資料

MHA 主從切換過程及日誌分析

本文主要在MHA 切換日誌的角度分析MHA切換的過。MHA故障切換過程如下圖所示   第一部分:開啟MHA 監控 通過分析日誌,得到以下步驟: 1、讀取MHA manager 節點的配置檔案,並檢查配置檔案中引數設定的正確性。 Sat Jun 22 20:16:29 2019

利用mha實現mysql主從自動切換

ssh免密連線: [[email protected] etc]# ssh-keygen [[email protected] etc]# ssh-copy-id -i /root/

mysql MHA安裝搭建問題實驗總結

問題一:[[email protected] apps]# perl -MCPAN -e "install Config::Tiny" CPAN: Storable loaded ok (v2.20) Going to read '/root/.cpan/sour

MySQL主從切換

mysql主從 主從切換 在一主兩從環境中,模擬測試當主庫宕機後的切換步驟我的系統為 CentOS6.7 x64mysql 版本為 5.5.33 並通過二進制包安裝上個截圖,三臺系統和 mysql 都是同樣的版本,同樣步驟的安裝[[email protected]/* */ ~]# mys

mysql 主從同步實驗細解

mysql master slavemysql 主從同步實驗細解一.實驗環境實驗環境 192.168.9.108 為master 192.168.9.109 為slave數據庫版本:version 5.1.73安裝方式:采用的yum 安裝 源為163的源系

MySQL MHA切換失敗一例

stop erl 出現 his mgr base root port urn 先看下引起問題的密碼啥樣, 包含兩個特殊字符[和~.$ egrep -w 'user|password' /etc/masterha/app1.cnfpassword=P[AI3M

使用Mycat實現MySQL的分庫分表、讀寫分離、主從切換

Mycat 分庫分表 讀寫分離 主從切換 Mycat及MySQL實例部署情況:Mycat:IP:10.20.8.57,Port:3310/3311MySQL :db1-M1,IP:10.20.8.126,Port:3306db1-M2,IP:10.20.8.126,Port:3307db2-M

互聯網金融MySQL高可用架構之-MHA故障切換

文件 ads erro osi ddr app1 bind enabled ive 互聯網金融MySQL高可用架構之-MHA 在線平滑切換過程 --切換命令如下: [root@MHA bin]# masterha_master_switch --conf=/etc/app1

mysql資料庫主資料庫down掉後,如果進行主從切換

mysql主從切換 在真實的生產環境中,總會有一些意外。 當企業的資料庫叢集有機器不幸down掉的時候,怎麼把從庫切換成主庫呢。 可以總結為如下步驟   一.登入從庫關閉io程序,確保relay log已被完全執行,並根據當前pos選取出下一個master。 mysql -uroot -

Windows上進行mysql主從資料庫同步總結

主要步驟:主從資料庫同步步驟 解決問題思路: 1.檢查my.ini檔案是否多次設定server-id,my.ini檔案修改不對將導致無法啟動mysql server; 2.檢視C:\ProgramData\MySQL\MySQL Server 5.7\Data資料夾下.err檔案

MySQL MHA高可用方案【三、主從複製】

3.1 db01伺服器上的操作 db01是用作Master,所以需要先在上面建立主從複製的帳號 [[email protected] ~]# mysql -uroot -pchenliang -S /data/3306/mysql.sock mysql> mysql&g

MySQL MHA高可用方案【五、故障切換

5.1 故障模擬 01:在db01(Master)伺服器上檢視主從複製及mha是否正常 02:停止db01(Master)伺服器上的mysql服務 02:在db04上檢查MHA的日誌(/var/log/mha/app/app1/manager.log) 03:檢視VIP是否飄移到新Ma

[超入門]使用docker做mysql主從複製實驗

簡介 本文主要介紹如何使用docker快速搭建實驗環境,熟悉mysql主從複製配置。 環境 docker 17.12.1-ce docker-compose 1.19.0 docker-compose.yml 一個主資料庫 一個從資料庫 主從

高可用(負載均衡)MYSQL(讀寫分離,主從切換

架構簡介 此架構主要是由keepalived實現雙機高可用,維護了一個外網VIP,一個內網VIP。正常情況時,外網VIP和內網VIP都繫結在server1伺服器,web請求傳送到server1的Nginx,nginx對於靜態資源請求就直接在本機檢索並返回,對於PHP的動

MySQL MHA 管理維護總結

第一部分:mha日常管理 1.檢視ssh登陸是否成功 masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf 2.檢視複製是否建立