mysql增加从库_不停止MySQL服务增加从库的两种方式 (装载)
現在生產環境MySQL數據庫是一主一從,由于業務量訪問不斷增大,故再增加一臺從庫。前提是不能影響線上業務使用,也就是說不能重啟MySQL服務,為了避免出現其他情況,選擇在網站訪問量低峰期時間段操作。
一般在線增加從庫有兩種方式,一種是通過mysqldump備份主庫,恢復到從庫,mysqldump是邏輯備份,數據量大時,備份速度會很慢,鎖表的時間也會很長。另一種是通過xtrabackup工具備份主庫,恢復到從庫,xtrabackup是物理備份,備份速度快,不鎖表。為什么不鎖表?因為自身會監控主庫日志,如果有更新的數據,就會先寫到一個文件中,然后再回歸到備份文件中,從而保持數據一致性。
服務器信息:
主庫:192.168.18.212(原有)
從庫1:192.168.18.213(原有)
從庫2:192.168.18.214(新增)
數據庫版本:MySQL5.5
存儲引擎:Innodb
測試庫名:weibo
一、mysqldump方式
MySQL主從是基于binlog日志,所以在安裝好數據庫后就要開啟binlog。這樣好處是,一方面可以用binlog恢復數據庫,另一方面可以為主從做準備。
原有主庫配置參數如下:
1. 主庫創建同步賬號
2. 從庫配置MySQL
3. 備份主庫
參數說明:
--routines:導出存儲過程和函數
--single_transaction:導出開始時設置事務隔離狀態,并使用一致性快照開始事務,然后unlock tables;而lock-tables是鎖住一張表不能寫操作,直到dump完畢。
--master-data:默認等于1,將dump起始(change master to)binlog點和pos值寫到結果中,等于2是將change master to寫到結果中并注釋。
4. 把備份庫拷貝到從庫
5. 在主庫創建test_tb表,模擬數據庫新增數據,weibo.sql是沒有的
6. 從庫導入備份庫
7. 在備份文件weibo.sql查看binlog和pos值
8. 從庫設置從這個日志點同步,并啟動
可以看到IO和SQL線程均為YES,說明主從配置成功。
9. 從庫查看weibo庫里面的表
發現剛才模擬創建的test_tb表已經同步過來!
二、xtrabackup方式(推薦)
在上面配置基礎上做實驗,先刪除掉從庫配置:
此時,從庫現在和新裝的一樣,繼續前進!
1. 主庫使用xtrabackup備份
生成一個以時間為命名的備份目錄:2015-07-01_16-49-43
2. 把備份目錄拷貝到從庫上
3. 從庫上把MySQL服務停掉,刪除datadir目錄,將備份目錄重命名為datadir目錄
4. 在主庫創建test_tb2表,模擬數據庫新增數據
5. 從備份目錄中xtrabackup_info文件獲取到binlog和pos位置
6. 從庫設置從這個日志點同步,并啟動
可以看到IO和SQL線程均為YES,說明主從配置成功。
9. 從庫查看weibo庫里面的表
發現剛才模擬創建的test_tb2表已經同步過來。
總結
以上是生活随笔為你收集整理的mysql增加从库_不停止MySQL服务增加从库的两种方式 (装载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql运用与实践_MySQL开发与实
- 下一篇: mysql 字符串解析_MySQL 动态