mysql 主從同步 實現增量備份


數據庫復制 replication 的實現原理

1:主服務器凡運行語句,都產生一個二進制日志 binlog

2:從服務器不斷讀取主服務器的binlog

3:從主服務讀取到的binlog,轉換為自身可執行的relaylog,

4:執行relaylog 

 

具體實施

本人虛擬機下有兩台linux,IP為199 200

1: 200做從服務器

2: 199mysql,做為主服務器.

3: 保證主從3306端口互通.

4: 配置主服務器,打開binlog

 

上面就是實現增量備份的思路。下面我具體配置一下

 

 

一 、配置二進制日志

 

server_id = 199
#開啟二進制日志
log-bin=mysql-bin
log-bin-index=master-bin.index
#指定日志格式 位置、語句 和自動選擇(mixed)


 binlog_format=mixed

 

主服務器 配置好,重啟mysql

進入mysql   輸入  show master status;    出現下圖的說明日志文件配好了。

 二、授權賬號

     二進制文件是數據,也就是獲得了二進制文件就獲得了所以數據,那么問題來了,這么重要的東西要是誰都能訪問,那不壞菜了。。。。。所以主服務器 要給從服務器設置賬號,指定那些才能訪問。

  授權給客戶端  那些庫和表 用戶名為root 密碼為root的賬號在ip為192.168.1.200 起作用

  grant replication client, replication slave on *.*  to 'root'@'192.168.1.200' indentified by 'root' ;      

 

三 從服務器

 
         

  server_id = 200

  relay_log = mysql-relay-bin

  log_slave_updates = 1

 read_only = 1

server_id是必須的,而且唯一。slave沒有必要開啟二進制日志,但是在一些情況下,必須設置,relay_log配置中繼日志,log_slave_updates表示slave將復制事件寫進自己的二進制日志
有些人開啟了slave的二進制日志,卻沒有設置log_slave_updates,然后查看slave的數據是否改變,這是一種錯誤的配置。所以,盡量使用read_only,它防止改變數據(除了特殊的線程)。

但是,read_only並是很實用,特別是那些需要在slave上創建表的應用。

 

從服務器 從啟mysql

在mysql 執行  告訴從服務器 從哪個ip 用那個用戶名 密碼   那個日志文件 從什么位置   開始監聽復制

change master to master_host='192.168.1.199',master_user='root',master_password='root',
 master_log_file='mysql-bin.000001',master_log_pos=154;

 

Start slave;   啟動備

 

show  slave status; 查看從服務器狀態

reset slave ;  重置slave狀態.

stop slave; 暫停slave狀態;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM