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 5.7 主庫崩潰切備庫MySql
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- 【DG】Data Guard主備庫Failove切換AI
- 【DG】Data Guard主備庫Switchover切換
- mysql主備切換canal出現的問題解析MySql
- 手工切換MySQL主從MySql
- SQLServer2012映象主庫掛掉如何切換到映象備庫SQLServer
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- Oracle 單機切換為主備Oracle
- openGauss主備切換之switchover與failoverAI
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- Django切換MySQL資料庫DjangoMySql資料庫
- MySQL 複製 - 效能與擴充套件性的基石 4:主備切換MySql套件
- MHA實現mysql主從資料庫手動切換的方法MySql資料庫
- MySQL雙機互備熱備自動切換KVMySql
- Oracle 11g 一主多備切換方案Oracle
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- 生產環境中mysql資料庫由主從關係切換為主主關係MySql資料庫
- 【PG流複製】Postgresql流複製主備切換SQL
- 【記錄】Ubuntu18.04 切換 Python 版本UbuntuPython
- MySQL 主從切換延時高問題分析MySql
- (九)主題切換
- Redis主從切換Redis
- MYSQL5.6主從+keepalive高可用自動切換MySql
- mysql 5.7+keepalived主從切換步驟簡述MySql
- MySQL 主備MySql
- 【實操記錄】MySQL主從配置MySql
- cd 切換目錄
- cd:切換目錄
- HeyUI元件庫 | 如何實現線上切換主題UI元件
- 一個月後,我們又從 MySQL 雙主切換成了主 - 從!MySql
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- 12c data guard 使用 sqlplus 主備切換最佳實踐SQL
- Redis sentinel主從切換Redis
- 達夢資料庫DM8主備叢集測試記錄資料庫
- Redis哨兵模式(sentinel)學習總結及部署記錄(主從複製、讀寫分離、主從切換)Redis模式
- keepalived配置redis主從切換Redis
- 小程式切換主題配色
- ostgreSQL主從切換-手動SQL