您好,登錄后才能下訂單哦!
這篇文章主要講解了“MySQL手動主從同步不鎖表的實現(xiàn)過程”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL手動主從同步不鎖表的實現(xiàn)過程”吧!
有時候MySQL主從同步不一致比較嚴重的時候,需要手動同步。
先說說在鎖表的情況下如何操作:
以下是其簡要過程:
1.先對主庫鎖表
FLUSH TABLES WITH READ LOCK;
2.備份數(shù)據(jù)
mysqldump -uroot -p -hlocalhost > mysql.bak.sql
3.解鎖主庫
unlock tables;
4.查看主庫的binlog文件和位置
show master status; 找出File和Position
5.使用scp命令把文件移動到從庫
scp mysql.bak.sql root@192.168.128.101:/tmp/
6.在從庫上停止同步
mysql> stop slave;
7.導(dǎo)入數(shù)據(jù)
mysql> source /tmp/mysql.bak.sql
8.設(shè)置從庫的同步開始文件和開始位置
change master to master_host = '主庫主機', master_user = '同步用戶名', master_port=3306, master_password='', master_log_file = '第3步中獲取的file', master_log_pos=第3步中獲取的position;
9.從庫上啟動同步并檢查
mysql> start slave;
mysql> show slave status\G 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes、
不鎖表的方法:
大致是不需要執(zhí)行第1和第3步,在第2導(dǎo)出數(shù)據(jù)的時候加上參數(shù)
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A
--skip-lock-tables 不鎖表
--master-data=2 在導(dǎo)出的時候同時生成binlog文件名和位置在導(dǎo)出的文件開頭。這個很重要。因此第4步也不需要執(zhí)行了,binlog的文件和位置可以從這里拿到。
--single-transaction 通過將導(dǎo)出操作封裝在一個事務(wù)內(nèi)來使得導(dǎo)出的數(shù)據(jù)是一個一致性快照
最后把第8步的binlog文件和位置替換成導(dǎo)出的文件開頭找到的那個帶有注釋的file和position就好可以了。
感謝各位的閱讀,以上就是“MySQL手動主從同步不鎖表的實現(xiàn)過程”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MySQL手動主從同步不鎖表的實現(xiàn)過程這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。