數據庫主從同步
阿新 • • 發佈:2017-09-13
replica 大小 server-id 負載 防止 數據庫 span 等於 ges
優點:對於負載比較大的網站,主從同步可以有效緩解數據庫讀寫壓力
-->mysql主從同步機制:
1.主服務器(master)將變更事件(更新,刪除,表結構變更)寫入二進制日誌(master log)
2.從服務器(slave)的IO線程從主服務器(binlog dump)獲取二進制日誌,並在本地保存一份自己的二進制日誌(relay log)
3.從服務器的sql線程讀取本地日誌(slave log),重演變更事件
-->mysql主從同步作用:
1.可以作為一種備份機制,相當於熱備份(在從備份,避免在備份期間影響主服器工作)
2.可以用作讀寫分離,均衡數據庫負載(主寫從讀)
3.當主服務器出現問題,可以切換到從服務器
-->mysql 主從同步步驟:
(1)準備工作:
1.主從數據庫版本一致;
2.主從數據庫數據一致。
(2)主數據庫master修改:
1、修改MySQL配置:
# /etc/my.cnf
log-bin = mysql-bin
# 主數據庫端ID號
server-id = 1
log-bin=/home/mysql/logs/binlog/bin-log
max_binlog_size = 500M
binlog_cache_size = 128K
binlog-do-db = adb
binlog-ignore-db = mysql
log-slave-updates
expire_logs_day=2
binlog_format="MIXED"
#服務器標誌號,註意在配置文件中不能出現多個這樣的標識,如果出現多個的話mysql以第一個為準,一組主從中此標識號不能重復。
server-id = 1 log-bin=/home/mysql/logs/binlog/bin-log #開啟bin-log,並指定文件目錄和文件名前綴。
#每個bin-log最大大小,當此大小等於500M時會自動生成一個新的日誌文件。一條記錄不會寫在2個日誌文件中,所以有時日誌文件會超過此大小。 max_binlog_size = 500M binlog_cache_size = 128K
#日誌緩存大小 binlog-do-db = adb #需要同步的數據庫名字,如果是多個,就以此格式在寫一行即可。 binlog-ignore-db = mysql #不需要同步的數據庫名字,如果是多個,就以此格式在寫一行即可。
#當Slave從Master數據庫讀取日誌時更新新寫入日誌中,如果只啟動log-bin 而沒有啟動log-slave-updates則Slave只記錄針對自己數據庫操作的更新。 log-slave-updates expire_logs_day=2
#設置bin-log日誌文件保存的天數,此參數mysql5.0以下版本不支持。 binlog_format="MIXED" #設置bin-log日誌文件格式為:MIXED,可以防止主鍵重復。
2、重啟mysql,創建用於同步的賬戶:
# 創建slave帳號slave,密碼111111 mysql>grant replication slave on *.* to ‘slave‘@‘%‘ identified by ‘111111‘;
# 更新數據庫權限 mysql>flush privileges;
3、查詢master的狀態
mysql> show master status;
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+
| mysql-bin.000009 | 196 | | | +------------------+----------+--------------+------------------+ 1 row in set
數據庫主從同步