MySQL 主備庫切換記錄
舊主庫:
切換前將主庫的表上鎖,防止切換期間資料寫到主庫
mysql> flush tables with read lock;
舊備庫:
mysql> show processlist ;
Slave has read all relay log; waiting for the slave I/O thread to update it
mysql> show slave status \G
舊主庫:
mysql> show processlist ;
Master has sent all binlog to slave; waiting for binlog to be updated
舊從庫
mysql> STOP SLAVE IO_THREAD;
mysql> SHOW PROCESSLIST;
確保狀態為:has read all relay log
舊主庫:
mysql> show master status
mysql> STOP SLAVE;
mysql> RESET MASTER;
mysql> RESET SLAVE;
mysql> show master status \G
關閉舊主庫
/etc/init.d/mysql stop
待主庫應用切到備庫,關閉原主庫的表lock狀態
unlock tables;
從庫變主庫
mysql> RESET MASTER;
mysql> RESET SLAVE;
主庫重新做備庫
新主庫:
mysql> grant replication slave on *.* to 'root'@'192.168.1.29' identified by 'test123';
vi /etc/my.cnf
log-bin=mysql-masterbin
service mysql restart
mysql> flush tables with read lock;
mysql> show master status; 記下file和positon
/usr/bin/mysqldump -uroot -ptest123 --log-error=mysqldump47.log --all-databases > mysqldump47.sql
mysql> unlock tables;
scp mysqldump47.sql 192.168.234.29:/root/
新備庫:
mysql> stop slave;
mysql> /usr/bin/mysql -uroot -ptest123 < mysqldump47.sql
mysql> change master to master_host='192.168.1.47',master_user='root',master_password='test123',master_log_file='mysql-masterbin.00001' ,master_log_pos=65238;
mysql> start slave;
新主庫運算元據,新備庫驗證一下
附錄:
不重啟MySQL修改配置引數(萬不得已使用)
system gdb -p $(pidof mysqld) -ex "set log_bin = mysql-masterbin47" -batch
資料庫只讀鎖定命令,防止匯出資料庫的時候有資料寫入
flush tables with read lock;
解除鎖定
unlock tables;
備份或者準備主備切換前設定資料為只讀狀態(具有超級管理許可權的使用者仍然可以DML操作表)
SET GLOBAL READ_ONLY = ON;
SET GLOBAL READ_ONLY = OFF;
SHOW VARIABLES LIKE '%read_only%';
set global read_only=on/off是DBA經常用的一個操作:進行主備切換的時候,一般都會先對主庫進行只讀操作(on),然後主備同步完成後,再把備庫置為可讀寫(off)。這樣可以避免切換的過程中雙寫引起髒資料。
mysqld.cc中同時定義了2個變數:my_bool read_only= 0, opt_readonly= 0; opt_readonly是當前系統的read_only狀態,read_only是要把read_only設定成的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-1733654/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql主從複製+主備切換MySql
- Data Guard主備庫切換
- DataGuard主備庫切換步驟
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- MySQL 5.7 主庫崩潰切備庫MySql
- 【DG】Data Guard主備庫Switchover切換
- Oracle Data Guard主庫備庫角色切換(Switchovers)Oracle
- 【DG】Data Guard主備庫Failove切換AI
- MySQL主從切換MySql
- 備庫的切換狀態為SWITCHOVER PENDING時進行dataguard主備庫角色切換
- 主備切換(failover)AI
- DataGuard切換(主庫為Rac+備庫為Rac)
- 主備切換的準備工作
- 執行主備庫切換以解決主庫儲存不足
- 主備庫切換以解決主庫儲存空間不足
- 手工切換MySQL主從MySql
- mysql主從搭建切換MySql
- mysql主備切換canal出現的問題解析MySql
- 主備切換的準備工作(二)
- Oracle10G Dataguard 多個備庫 - 主庫和物理備庫的切換Oracle
- Mysql+keepalived主主切換薦MySql
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- mysql for linux主從切換MySqlLinux
- Oracle 單機切換為主備Oracle
- failover切換後恢復原來主庫為新備庫AI
- MySQL從庫切換成主庫後的relay-bin問題MySql
- RAC和Dataguard環境下主備庫切換演練模板
- Oracle 12c Data guard 物理主備庫正常切換(switchover)流程Oracle
- Oracle 11g Data guard 物理主備庫正常切換(switchover)流程Oracle
- 再次使用DGbroker做switchover主備切換
- DG中備庫為SWITCHOVER PENDING時是否能進行主備切換
- MySQL 複製 - 效能與擴充套件性的基石 4:主備切換MySql套件
- keepalived與mysql主主叢集自動切換MySql
- SQLServer2012映象主庫掛掉如何切換到映象備庫SQLServer
- MHA實現mysql主從資料庫手動切換的方法MySql資料庫
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- 【新炬網路名師大講堂】Data Guard–物理主備庫切換
- 5.6 MySql主從自動切換指令碼MySql指令碼