MYSQL 雙機數據同步備份(主從、雙Master)

環境說明

1、MySQL主服務器    IP:192.168.1.110  主機名稱:MySQL Master  MySQL版本:mysql-7.5

2、MySQL從服務器    IP:192.168.1.111  主機名稱:MySQL SlaveMySQL版本:mysql-7.5


一、主從備份(數據僅從主服務同步到備份服務器)


1、主備服務器上安裝的mysql 需要授權遠程訪問 最好建立一個同步的單獨用戶synch)

主服務器Mysql同步用戶 授權遠程訪問權限配置:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'synch'@'%' IDENTIFIED BY '12345' WITH GRANT OPTION;

#將所有數據庫的所有表(*.*)的所有權限(all privileges),授予通過任何ip(%)訪問的synch用戶,密碼爲12345

mysql>flush privileges;


2、配置MySQL主服務器的my.cnf文件

#vi /etc/my.cnf

編輯配置文件,在[mysqld]部分添加下面內容

server-id=1   #設置服務器id 用於標識不同的數據庫服務器

log-bin=mysql-bin  #啓動mysql二進制日誌系統

relay-log=relay-bin

relay-log-index=relay-bin-index

binlog-do-db=sy_test #需要同步的數據庫名,如果有多個數據庫,可重複此參數

binlog-ignore-db = information_schema

binlog-ignore-db = mysql

binlog-ignore-db = test  #不同步mysql系統數據庫

:wq!   #保存退出


注意:windows系統修改mysql安裝 根目錄下my.ini文件 (5.6版本默認爲my-default.ini 需要重命名爲my.ini修改配置並重啓mysql服務配置才能生效)



#service mysqld  restart  #重啓MySQL

#mysql -u root -p   #進入mysql控制檯

mysql>show master status;  查看主服務器配置信息




3、配置MySQL從服務器的my.cnf文件

#vi /etc/my.cnf   

編輯配置文件,在[mysqld]部分添加下面內容

server-id=2   #配置文件中已經有一行server-id=1,修改其值爲2,表示爲從數據庫

log-bin=mysql-bin  #啓動MySQ二進制日誌系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。

replicate-do-db=sy_test   #需要同步的數據庫名,如果有多個數據庫,可重複此參數,每個數據庫一行

replicate-ignore-db=mysql   #不同步mysql系統數據庫

:wq!    #保存退出


其他參數說明:

replicate_wild_do_table 和 replicate_wild_ignore_table

參數解決同步所有跨數據庫的更新,與replicate-do-db或者replicate-ignore-db類似

auto_increment_incrementauto_increment_offset

兩個參數一般用在主主同步中,用來錯開自增值,防止鍵值衝突

slave-skip-errors= [err1,err2,…….|ALL]

用來定義複製過程中從服務器可以自動跳過的錯誤號(1062,1053,1146),當複製過程中遇到定義的錯誤號,就可以自動跳過,直接執行後面的SQL語句,慎用,當啓動這個參數MYSQL會忽略那些錯誤,可能造成主從數據庫的數據不同步

master-connect-retry

這個參數是用來設置在和主服務器連接丟失的時候,重試的時間間隔,默認是60秒

log-slave-updates

這個參數用來配置從服務器的更新是否寫入二進制日誌,這個選項默認是不打開的,但是,如果這個從服務器B是服務器A的從服務器,

同時還作爲服務器C的主服務器,那麼就需要開發這個選項,這樣它的從服務器C才能獲得它的二進制日誌進行同步操作



4、配置 同步master配置屬性

(MySQL 5.1.7版本之後,已經不支持把master配置屬性寫入my.cnf配置文件中了,只需要把同步的數據庫和要忽略的數據庫寫入即可)

#service mysqld restart   #重啓MySQL

#mysql  -u root -p  #進入MySQL控制檯

mysql>stop slave;   #停止slave同步進程

mysql>change master to master_host='192.168.1.110',master_user='synch',master_password='12345',master_log_file='mysql-bin.000003' ,master_log_pos=413;

#執行同步語句

mysql>start slave;    #開啓slave同步進程

mysql>SHOW SLAVE STATUS;   #查看slave同步信息


Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上這兩個參數的值爲Yes,即說明配置成功!


5、在MySQL主服務器 增刪改數據 查看從服務器是否都同步成功 驗證MySQL主從服務器雙機熱備是否成功


二、雙機互爲備份(兩個服務器數據互相同步)


1、在原主服務器 mysql 配置文件中添加同步數據配置

binlog-do-db=sy_test #需要同步的數據庫名,如果有多個數據庫,可重複此參數

binlog-ignore-db = mysql#不同步mysql系統數據庫

replicate-do-db=sy_test   #需要同步的數據庫名,如果有多個數據庫,可重複此參數,每個數據庫一行

replicate-ignore-db=mysql   #不同步mysql系統數據庫


2、在原從服務器 授權同步用戶

服務器Mysql同步用戶 授權遠程訪問權限配置:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'synch'@'%' IDENTIFIED BY '12345' WITH GRANT OPTION;

#所有數據庫的所有表(*.*)的所有權限(all privileges),授予通過任何ip(%)訪問的synch用戶,密碼爲12345

mysql>flush privileges;


3、原主服務 mysql 指定需要同步的數據庫地址用戶等信息

mysql>stop slave;   #停止slave同步進程

mysql>change master tomaster_host='192.168.1.111',master_user='synch',master_password='12345';

#執行同步語句

mysql>start slave;    #開啓slave同步進程

mysql>SHOW SLAVE STATUS;   #查看slave同步信息




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章