什麼是replicationmysql
Replication能夠實現數據從一臺數據庫服務器(master)複製到一到多臺數據庫服務器。sql
默認狀況下,屬於異步複製,所以無需維持長鏈接。數據庫
經過配置,你能夠複製全部的庫或者某幾個庫,甚至庫中的某幾個表服務器
Replication原理app
Master將數據庫的改變寫入二進制日誌,salve同步這些數據庫日誌,並根據這些日誌進行數據操做。異步
Replication用途ide
Fail over故障切換性能
Backup sever備份服務rest
High performance 高性能 寫在master,讀在salve,實現讀寫分離日誌
配置replication
最簡單的M-S
一、salve是經過MySQL鏈接登陸到master上面來讀取二進制日誌,所以須要在master上給salve配置相應的權限。
Grant replication salve on *.* To ‘ ’@’’ identified by ‘’;
Flush privileges
二、在master上須要打開二進制日誌,並標示sever_id
Sever_id用於表示惟一主機,數字取值範圍1-2^32-1
#vi /etc/my.cnf
[mysqld]
Log_bin #打開二進制日誌
Binlog_format=now #指定當前二進制格式以row記錄,增長性能
Sync-binlog=1
Server-id=1 #設定sever_id
#service mysql restart
三、製做一個master的完整備份,而且執行prepare;
# innobackupex --user = dba password=beifen /var/lib/ (備份目錄)生成原始備份
生成備份目錄的日誌
#innobackkupex --use-memory=500m --apply-log /var/lib/(備份目錄)
四、將備份拷貝至slave,並放入數據文件目錄
In master:
#scp -r /var/lib/backup/(二進制文件) salveip(salve的ip): /var/lib/backup
In slave:
#cd /var/lib/backup/(文件)
#mv * /var/lib/mysql
#chmod -R mysql.mysql /var/lib/mysql
五、在salve上配置sever_id,表示服務器
#vi /etc/my.cnf
[mysqld]
Sercer-id=2
#service mysql restart
六、查看並記錄二進制日誌中的positionID
In salve
#cd /var/lib/mysql
#cat xtrabackup_binlog_info
Host2_bin.000001 120
七、配置salve Replication.
In slave
Change master to
MASTER_HOST=’masterip’
MASTER_USER=’’
MASTER_PASSWORD=’’
MASTER_LOG_FILE=’Host2_bin.000001’,
MASTER_LOG_POS=120;
八、啓動REPlication 並檢查結果
In Slave
>Start slave
>Show slave status \G;