mysql基於replication實現最簡單的M-S主從複製

什麼是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;

相關文章
相關標籤/搜索