兩種情況服務器down機,數據庫down機
如果此時需要切從庫
1、先show processlist\G,查看狀態 如果看到兩個狀態,說明此時的從庫和主庫是同步的 state: waiting for master to send event I/O線程 state:has read all relay log;waiting for the slave I/O thread to update it sql線程 2、登錄從庫分別查看: cat /data/3306/data/master.info cat /data/3307/data/master.info 看哪個從庫的哪個master.info哪個更新,就說明哪個從庫一致性更高,所以此時就確定最新的庫為主庫。 選個pos最大的作為主庫 或利用半同步的功能,直接選擇做實時同步的這個從庫。 1、確保所有relay log全部更新完畢。 在每個從庫上執行stop slave io_thread;show processlist; 直到看到has read all relay log;表示從庫更新都執行完畢 2、登錄從庫 mysql -uroot -p123 -S /data/3306/mysql.sock stop slave; reset master; quit; 3、進入數據庫數據目錄,刪除master.info relay-log.info cd /data/3306/data/master rm -f master.info relay-log.info 檢查授權表,類似read-only參數 4、3306提升從庫為主庫 vim /data/3306/my.cnf 開啟: log-bin =/data/3306/mysql-bin //如果存在log-slave-updates read-only等參數一定要注釋掉。 /data/3306/mysql stop /data/3306/mysql start 到此,提升主庫完畢 5、如果主庫服務器沒down,需要去主庫拉取bin-log補全提升主庫的從庫 6、其他從庫操作 已檢查(同步user rep均存在) 登錄從庫 stop slave; change master to master_host='192.168.1.32'; //如果不同步,就指定位置點 start slave; show slave status\G;