MySQL數(shù)據(jù)庫主從服務(wù)器文檔的部署與切換詳解
MySQL數(shù)據(jù)庫中如何實(shí)現(xiàn)主從服務(wù)器文檔的部署呢?主從服務(wù)器之間怎樣進(jìn)行文檔切換呢?本文我們主要就介紹了這一部分的內(nèi)容,接下來我們就開始介紹。
一、部署文檔
1.確保在主服務(wù)器和從服務(wù)器上安裝的MySQL版本一致.
2.在主服務(wù)器上為從服務(wù)器設(shè)置一個(gè)連接賬戶
mysql GRANT REPLICATION SLAVE, SUPER, RELOAD ON *.* TO 'username'@10.1.1.4' IDENTIFIED BY 'use。
主服務(wù)器IP: 10.1.1.3
從服務(wù)器IP: 10.1.1.4
1.確保在主服務(wù)器和從服務(wù)器上安裝的MySQL版本一致.
2.在主服務(wù)器上為從服務(wù)器設(shè)置一個(gè)連接賬戶
- mysql> GRANT REPLICATION SLAVE, SUPER, RELOAD ON *.* TO IDENTIF
- IED BY 'userpassword';
3. 執(zhí)行FLUSH TABLES WITH READ LOCK 進(jìn)行鎖表
- mysql> FLUSH TABLES WITH READ LOCK;
4. 讓客戶程序保持運(yùn)行,發(fā)出FLUSH TABLES語句讓讀鎖定保持有效。(如果退出客戶程序,鎖被釋放)。進(jìn)入主服務(wù)器的數(shù)據(jù)目錄,然后執(zhí)行命令:
- shell> tar -cvf /tmp/mysql-snapshot.tar .
- shell> tar -xvf /tmp/mysql-snapshot.tar
讀取主服務(wù)器上當(dāng)前的二進(jìn)制日志名(File)和偏移量值(Position),并記錄下來:
mysql > SHOW MASTER STATUS; | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | | mysql-bin.003 | 73 | test | manual,mysql | 取得快照并記錄日志名和偏移量后,可以在主服務(wù)器上重新啟用寫活動(dòng):
mysql> UNLOCK TABLES;
5. 確保主服務(wù)器主機(jī)上my.cnf文件的[mysqld]部分包括一個(gè)log_bin選項(xiàng)
- [mysqld]
- Log_bin=mysql-bin
- server-id=1
6. 停止用于從服務(wù)器的服務(wù)器并在其my.cnf文件中添加下面的行:
- [mysqld]
- server-id=2
7.如果對主服務(wù)器的數(shù)據(jù)進(jìn)行二進(jìn)制備份,啟動(dòng)從服務(wù)器之前將它復(fù)制到從服務(wù)器的數(shù)據(jù)目錄中。
確保對這些文件和目錄的權(quán)限正確。服務(wù)器 MySQL運(yùn)行的用戶必須能夠讀寫文件,如同在主服務(wù)器上一樣。
8. 用--skip-slave-start選項(xiàng)啟動(dòng)從服務(wù)器,以便它不立即嘗試連接主服務(wù)器。
9. 在從服務(wù)器上執(zhí)行下面的語句:
- mysql> CHANGE MASTER TO MASTER_HOST='10.1.1.3',MASTER_USER='username',MASTER_PASSWORD='userpassword',
- MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=recorded_log_position;
9. 啟動(dòng)從服務(wù)器線程:
mysql> START SLAVE;
10.驗(yàn)證部署是否成功
- mysql> show slave status\G
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 10.1.1.3
- Master_User: rep_slave
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.000058
- Read_Master_Log_Pos: 27324573
- Relay_Log_File: cacti-11-111-relay-bin.000008
- Relay_Log_Pos: 27324718
- Relay_Master_Log_File: mysql-bin.000058
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Replicate_Do_DB:
- Replicate_Ignore_DB: mysql
- 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: 27324573
- Relay_Log_Space: 27325025
- 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
- 1 row in set (0.00 sec)
當(dāng)Slave_IO_Running和Slave_SQL_Running都顯示Yes的時(shí)候,表示同步成功。
二、切換文檔
1. 確保從服務(wù)器已經(jīng)處理了中繼日志中的所有語句。 mysql> STOP SLAVE IO_THREAD。
2.然后檢查SHOW PROCESSLIST語句的輸出,直到你看到Has read all relay log。
3.當(dāng)從服務(wù)器都執(zhí)行完這些,它們可以被重新配置為一個(gè)新的設(shè)置。
4.在被提升為主服務(wù)器的從服務(wù)器上,發(fā)出 STOP SLAVE和RESET MASTER和RESET SLAVE操作。
5. 然后重啟mysql服務(wù)。
6.在主服務(wù)器上RESET MASTER。然后CHANGE MASTER TO MASTER_HOST='10.1.1.4',MASTER_USER='rep_slave',MASTER_PASSWORD='userpassword';切換完成。
關(guān)于MySQL數(shù)據(jù)庫主從服務(wù)器文檔的部署及主從文檔切換的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@。
【編輯推薦】






