Mysql Slave群切換Master
Mysql Slave群切換Master
作者:sky | 分類: 大話技術 | 標籤: 大話技術 | 日期:2008-03-03
測試環境:
Type OS Mysql
Master rhel3.5 5.1.22-rc-log
Slave1 rhel3.5 5.1.22-rc-log
Slave2 rhel4.4 5.1.22-rc-log
切換測試過程是:1) Master down
2) Slave1 切換成新的Master
3) Slave2 更換Master配置為原Slave2
詳細過程如下:
1、從slave(slave1)群眾中選定一個slave,準備錢換成master;
2、檢查slave1的複製狀態:
mysql> SHOW PROCESSLIST ;
+—-+————-+———–+——+———+————+———————————————————————–+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—-+————-+———–+——+———+————+———————————————————————–+——————+
| 1 | system user | | NULL | Connect | 54733 | Waiting for master to send event | NULL |
| 2 | system user | | NULL | Connect | 4294965772 | Has read all relay log; waiting for the slave I/O thread to update it | NULL |
| 8 | root | localhost | NULL | Query | 0 | NULL | SHOW PROCESSLIST |
+—-+————-+———–+——+———+————+———————————————————————–+——————+
這裡主要是檢測Slave1是否已經應用完從Master讀取過來的在relay log中的操作,如果未應用完不能stop slave,否則資料肯定會有丟失。
3、停止slave1的slave程式,並reset稱master:
mysql> STOP SLAVE ;
Query OK, 0 rows affected (0.00 sec)
mysql> RESET MASTER;
Query OK, 0 rows affected, 8 warnings (0.02 sec)
4、將slave 群中的其他slave(slave2)的Master切換成新的master(由原slave1reset成的):
1) 停slave程式:
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
2) 更換master:
mysql> CHANGE MASTER TO
-> MASTER_HOST=’10.0.65.106′,
-> MASTER_USER=’repl’,
-> MASTER_PASSWORD=’slavepass’
-> ;
Query OK, 0 rows affected (0.00 sec)
3) 開啟slave:
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
5、檢查slave的狀態:
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.65.106
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: oindeve-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 408
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
6、最後變換實際資料監測新的複製是否能成功進行:
1) 在新的Master建立測試表:
mysql> create table t3 as select * from test;
Query OK, 100003 rows affected (0.11 sec)
Records: 100003 Duplicates: 0 Warnings: 0
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| t1 |
| t2 |
| t3 |
| test |
+—————-+
4 rows in set (0.00 sec)
mysql> select count(*) from t3;
+———-+
| count(*) |
+———-+
| 100003 |
+———-+
1 row in set (0.00 sec)
2) 在slave2上面看是否已經複製過去:
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| t1 |
| t2 |
| t3 |
| test |
+—————-+
4 rows in set (0.00 sec)
mysql> select count(*) from t3;
+———-+
| count(*) |
+———-+
| 100003 |
+———-+
1 row in set (0.00 sec)
7、到此確認複製正常,master切換完成。
注:整個切換測試過程時間較短,大家從每一步操作後面反饋的執行時間也可以看出,所需要的操作步驟也不太多。但是此測試並不是資料庫整體環境在提供服務的壓力環境下所測試進行的,該過程資料庫整體環境較為空閒,所以目前還不敢確保在壓力環境下也會如此的順利,等後面還會找機會在有應用壓力的情況下再測試。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758322/viewspace-680472/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- The slave I/O thread stops because master and slave have equal MySQL server UUIDthreadASTMySqlServerUI
- Mysql Master-slave複製簡單配置記錄MySqlAST
- MySQL報錯Slave: received end packet from server, apparent master shutdownMySqlServerAPPAST
- Mysqldump實現mysql的master-slave主從複製MySqlAST
- mysql slave 跟進 master 的關鍵狀態指標MySqlAST指標
- Setup MariaDB Master/Slave Replication for Docker MariaDBASTDocker
- Innobackupex實現mysql線上搭建master-slave主從複製MySqlAST
- 故障案例:主從同步報錯Fatal error: The slave I/O thread stops because master and slave have equal MySQL server主從同步ErrorthreadASTMySqlServer
- 資料庫讀寫分離Master-Slave資料庫AST
- 手工切換MySQL主從MySql
- 切換分支時:pathspec master did not match any file(s) known to gitASTGit
- MySQL Orchestrator自動導換+VIP切換MySql
- Django切換MySQL資料庫DjangoMySql資料庫
- CentOS中MySQL5.6 資料庫主從(Master/Slave)同步安裝與配置詳解CentOSMySql資料庫AST
- Git使用gh-pages分支切換到master分支錯誤pathspec master did not match any files known to gitGitAST
- 分散式資料中的坑(一)Master-Slave架構分散式AST架構
- 使用etcd選舉sdk實踐master/slave故障轉移AST
- Mysql MHA部署-06手動切換MySql
- 基於Kubernetes構建企業Jenkins master/slave CI/CD平臺JenkinsAST
- mysql MGR搭建和模擬切換演練MySql
- 14. ORACLE到MYSQL上線切換方式OracleMySql
- MySQL 儲存過程進行切換表MySql儲存過程
- MySQL複製跳過錯誤--slave_skip_errors、sql_slave_skip_counter、slave_exec_modeMySqlError
- 程式切換(上下文切換)
- MySQ 資料庫主從同步安裝與配置詳解(Master/Slave)資料庫主從同步AST
- 實屬無奈!Redis 作者被迫修改 master-slave 架構的描述RedisAST架構
- MySQL故障切換之應用無感知設計MySql
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- 難以置信,MySQL也可以無損自由切換MySql
- MySQL 主從切換延時高問題分析MySql
- MYSQL Slave開機啟動指令碼MySql指令碼
- MySQL5.7 Master-Master主主搭建for Centos7MySqlASTCentOS
- 棧切換
- MYSQL5.6主從+keepalive高可用自動切換MySql
- MySQL MHA部署 Part 7 MHA手動切換測試MySql
- mysql主備切換canal出現的問題解析MySql
- mysql 5.7+keepalived主從切換步驟簡述MySql
- MySQL雙機互備熱備自動切換KVMySql