mysql 主備切換

在咱們平常的數據庫運維中,常常會由於各類緣由須要進行master到slave的切換,好比MySQL版本升級,服務器硬件升級等。所以在這裏完整總結一下過程步驟,整個過程當中應用處於只讀狀態大約5分鐘。mysql

 

背景:sql

master —— MySQL-A,如下簡稱A數據庫

slave —— MySQL-B,如下簡稱B服務器

 

準備工做:運維

1. 檢查B是否與A同步。同步

2. 檢查B中用戶權限是否與A配置一致。ast

3. 修改應用系統數據庫讀寫鏈接地址爲B。配置

4. B:參數read-only=0,使其可讀寫。date

5. 若是B沒有配置log_slave_updates請添加該配置。硬件

6. B:show master status 取當前binlog位置。

 

線上切換:

1. A:執行set global read_only=1 使其進入只讀狀態

2. A:執行show master status,檢查並確認已經進入只讀狀態

3. 輪流重啓應用服務器

 

善後工做:

1. 檢查B的工做狀態是否正常

2. B:執行stop slave中止與A的同步,執行reset slave解除與A的slave關係

3. A:執行change master與B創建slave關係

 

 

更換master

從服務器上執行

stop slave;

reset slave; 

change msater to xxx

 

 

log_slave_updates

a) M01同步從M02同步數據過來的時候,log_slave_updates參數用來控制M01是否把全部的操做寫入到binary log,默認的狀況下mysql是關閉的;

b) R01數據的更新須要經過讀取到M01的binary log才能進行更新,這個時候M01是沒有寫binary log的,因此當數據從M02寫入的時候,R01也就沒有更新了。

處理方法:修改/etc/my.cnf,增長一行log_slave_updates=1,重啓數據庫後就能夠了;

相關文章
相關標籤/搜索