您好,登錄后才能下訂單哦!
這篇文章主要講解了“MySQL手動主從同步不鎖表的實現過程”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL手動主從同步不鎖表的實現過程”吧!
有時候MySQL主從同步不一致比較嚴重的時候,需要手動同步。
先說說在鎖表的情況下如何操作:
以下是其簡要過程:
1.先對主庫鎖表
FLUSH TABLES WITH READ LOCK;
2.備份數據
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.導入數據
mysql> source /tmp/mysql.bak.sql
8.設置從庫的同步開始文件和開始位置
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、
不鎖表的方法:
大致是不需要執行第1和第3步,在第2導出數據的時候加上參數
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A
--skip-lock-tables 不鎖表
--master-data=2 在導出的時候同時生成binlog文件名和位置在導出的文件開頭。這個很重要。因此第4步也不需要執行了,binlog的文件和位置可以從這里拿到。
--single-transaction 通過將導出操作封裝在一個事務內來使得導出的數據是一個一致性快照
最后把第8步的binlog文件和位置替換成導出的文件開頭找到的那個帶有注釋的file和position就好可以了。
感謝各位的閱讀,以上就是“MySQL手動主從同步不鎖表的實現過程”的內容了,經過本文的學習后,相信大家對MySQL手動主從同步不鎖表的實現過程這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。