這篇文章主要講解了“MySQL手動(dòng)主從同步不鎖表的實(shí)現(xiàn)過程”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL手動(dòng)主從同步不鎖表的實(shí)現(xiàn)過程”吧!
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
有時(shí)候MySQL主從同步不一致比較嚴(yán)重的時(shí)候,需要手動(dòng)同步。
先說說在鎖表的情況下如何操作:
以下是其簡要過程:
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命令把文件移動(dòng)到從庫
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 = '主庫主機(jī)', master_user = '同步用戶名', master_port=3306, master_password='', master_log_file = '第3步中獲取的file', master_log_pos=第3步中獲取的position;
9.從庫上啟動(dòng)同步并檢查
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í)候加上參數(shù)
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A
--skip-lock-tables 不鎖表
--master-data=2 在導(dǎo)出的時(shí)候同時(shí)生成binlog文件名和位置在導(dǎo)出的文件開頭。這個(gè)很重要。因此第4步也不需要執(zhí)行了,binlog的文件和位置可以從這里拿到。
--single-transaction 通過將導(dǎo)出操作封裝在一個(gè)事務(wù)內(nèi)來使得導(dǎo)出的數(shù)據(jù)是一個(gè)一致性快照
最后把第8步的binlog文件和位置替換成導(dǎo)出的文件開頭找到的那個(gè)帶有注釋的file和position就好可以了。
感謝各位的閱讀,以上就是“MySQL手動(dòng)主從同步不鎖表的實(shí)現(xiàn)過程”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MySQL手動(dòng)主從同步不鎖表的實(shí)現(xiàn)過程這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!