mysql復制

復制

1.復制類型

基于行的復制、基于語句的復制  

2.復制原理

通過主庫上記錄二進制日志、在備庫重放日志的方式來實現異步的數據復制。并且無法保證主備之間的延遲。  

3復制常用的用途

數據分布  
負載均衡:將讀操作分布到多個服務器上,實現對讀密集型應用的優化,一個機器名只想多個ip地址、網絡負載均衡解決方案、Linux虛擬服務器等方法。
備份:復制不等于備份,是備份的補充。
高可用性和故障切除:復制能夠幫助應用程序避免mysql單點失敗,縮短故障宕機時間。  
mysql升級測試:使用一個更高版本的mysql作為悲苦,保證在升級全部實例前,查詢能夠在備庫按照預期執行。  

4復制如何工作

1)在主庫上把數據更改記錄到二進制日志中。  
2)備庫將主庫上的日志復制到自己的中繼日志中。  
3)備庫讀取中繼日志中的事件,將其重放到備庫數據之上。

5配置復制

1)在每臺服務器上創建復制賬號;  
2)配置主庫和備庫;  
3)通知備庫連接到主庫并從主庫復制數據 

6給一個已經運行的服務器配置備庫

server1:192.168.0.1  server2:192.168.0.2  
1)創建復制賬號  
    mysql>grant replication slave,replication client on *.* to relp@'192.168.0.%' identified by 'p4ssword';  
    //主庫和備庫都創建  
2)配置主庫和備庫  
    主庫server1的my.cnf:  
        log_bin  = mysql-bin //開啟bin日志  
        server_id = 10 //指定唯一的服務器id  
    從庫server2的my.cnf:
        log_bin = mysql-bin  
        server_id = 2  
        relay_log = /var/lib/mysql/mysql-relay-bin//指定的中繼日志的位置和命名  
        log_slave_updates = 1//語序備庫將其重放的事件也記錄到自身的二進制日志中  
        read_only = 1//阻止任何沒有特權權限的線程修改數據  

7.啟動復制

mysql>change master to master_host='server1',
    ->master_user = 'repl',
    ->master_password='p4ssword',
    ->master_log_file='mysql-bin.000001',
    ->master_log_pos=0;//日志開頭讀起  
//啟動  
mysql>start slave;  
//檢查  
mysql>show slave status\G  
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容