最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL數(shù)據(jù)庫雙主改造

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 07:24:13
文檔

MySQL數(shù)據(jù)庫雙主改造

MySQL數(shù)據(jù)庫雙主改造:對于使用中的已有了一些數(shù)據(jù)庫的 MySQL, 如何改造成雙主呢 這里寫一篇文章, 詳細(xì)記錄操作步驟. 聽取各位的意見. 這里假設(shè)有兩臺服務(wù)器: A 和 B. 要讓他們互為主, 但實際使用時, 不同的服務(wù)器只服務(wù)不同的 db, 避免出現(xiàn)數(shù)據(jù)沖突. 1. 修改 nginx
推薦度:
導(dǎo)讀MySQL數(shù)據(jù)庫雙主改造:對于使用中的已有了一些數(shù)據(jù)庫的 MySQL, 如何改造成雙主呢 這里寫一篇文章, 詳細(xì)記錄操作步驟. 聽取各位的意見. 這里假設(shè)有兩臺服務(wù)器: A 和 B. 要讓他們互為主, 但實際使用時, 不同的服務(wù)器只服務(wù)不同的 db, 避免出現(xiàn)數(shù)據(jù)沖突. 1. 修改 nginx

對于使用中的已有了一些數(shù)據(jù)庫的 MySQL, 如何改造成雙主呢? 這里寫一篇文章, 詳細(xì)記錄操作步驟. 聽取各位的意見. 這里假設(shè)有兩臺服務(wù)器: A 和 B. 要讓他們互為主, 但實際使用時, 不同的服務(wù)器只服務(wù)不同的 db, 避免出現(xiàn)數(shù)據(jù)沖突. 1. 修改 nginx 配置, 掛維護

對于使用中的已有了一些數(shù)據(jù)庫的 MySQL, 如何改造成雙主呢? 這里寫一篇文章, 詳細(xì)記錄操作步驟. 聽取各位的意見.

這里假設(shè)有兩臺服務(wù)器: A 和 B. 要讓他們互為主, 但實際使用時, 不同的服務(wù)器只服務(wù)不同的 db, 避免出現(xiàn)數(shù)據(jù)沖突.

1. 修改 nginx 配置, 掛維護頁

這一步很重要. 你需要告訴你的用戶, 你的網(wǎng)站在維護, 同時要確保不會再出現(xiàn)數(shù)據(jù)庫寫操作.

另外, 還要停止 crontab 任務(wù).

2. 備份數(shù)據(jù)庫

Server A:

mysqldump -uroot -p --all-databases > a_dbdump_all.sql
gzip a_dbdump_all.sql

Server B:

mysqldump -uroot -p --all-databases > b_dbdump_all.sql
gzip b_dbdump_all.sql

把線上數(shù)據(jù)庫備份到本地

scp test@server_a:~/a_dbdump_all.sql.gz .
scp test@server_b:~/b_dbdump_all.sql.gz .

3. 新建數(shù)據(jù)庫同步賬號

Server A:

GRANT REPLICATION SLAVE ON *.* TO 'userx'@'server_b' IDENTIFIED BY 'xxxxx';

Server B:

GRANT REPLICATION SLAVE ON *.* TO 'userx'@'server_a' IDENTIFIED BY 'xxxxx';

4. 導(dǎo)數(shù)據(jù)

這一步是手工將兩臺服務(wù)器數(shù)據(jù)庫(基準(zhǔn)數(shù)據(jù))同步.

Server A:

mysqldump -uroot -p --databases db1 > a_dbdump.sql
scp a_dbdump.sql test@server_b:~

Server B:

mysqldump -uroot -p --databases db2 > b_dbdump.sql
scp b_dbdump.sql test@server_a:~

Server A:

source b_dbdump.sql

Server B:

source a_dbdump.sql

5. 修改 mysql 配置

Server A:

[mysqld]
server-id=1
log-bin=mysql-bin
log-slave-updates
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=mysql
replicate-ignore-db=test
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
master-connect-retry=10Server B:[mysqld]
server-id=2
log-bin=mysql-bin
log-slave-updates
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=mysql
replicate-ignore-db=test
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
master-connect-retry=10

注意, 他們的 server-id 不相同.

6. 重啟 MySQL, 測試同步賬號可用

重啟 MySQL.

Server A:

mysql -hserver_b -uuserx -pxxxxx

Server B:

mysql -hserver_a -uuserx -pxxxxx

7. 啟動 Slave 線程

Server A:

FLUSH TABLES;
show master status;

會顯示這樣的信息.

***************************1. row ***************************File: mysql-bin.000001Position:106Binlog_Do_DB:Binlog_Ignore_DB: mysql,test,information_schema,performance_schema
1 row inset(0.00 sec)

記錄 File 和 Position, 這時 binlog 的當(dāng)前位置, 因為 Slave 要從這個位置開始同步數(shù)據(jù).

Server B:

CHANGE MASTER TO MASTER_HOST='server_a';
CHANGE MASTER TO MASTER_USER='userx';
CHANGE MASTER TO MASTER_PASSWORD='xxxxx';
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;
start slave;
show slave status\G

同樣的, 在 Server A 上也啟動同步 Slave 進程.

因為我們確保了沒有數(shù)據(jù)庫寫操作, 所以不需要 FLUSH TABLES WITH READ LOCK;.

8. 驗證

在不同的數(shù)據(jù)庫上執(zhí)行一些更新數(shù)據(jù)的操作, 看看數(shù)據(jù)是否同步過去了.

9. 完成

恢復(fù) crontab 任務(wù)
修改 nginx, 撤下維護網(wǎng)頁, 恢復(fù)服務(wù)
如果你有什么問題, 或者發(fā)現(xiàn)里這些步驟的不足, 歡迎評論!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

MySQL數(shù)據(jù)庫雙主改造

MySQL數(shù)據(jù)庫雙主改造:對于使用中的已有了一些數(shù)據(jù)庫的 MySQL, 如何改造成雙主呢 這里寫一篇文章, 詳細(xì)記錄操作步驟. 聽取各位的意見. 這里假設(shè)有兩臺服務(wù)器: A 和 B. 要讓他們互為主, 但實際使用時, 不同的服務(wù)器只服務(wù)不同的 db, 避免出現(xiàn)數(shù)據(jù)沖突. 1. 修改 nginx
推薦度:
標(biāo)簽: 中的 使用 有了
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top