天天看點

MySQL 主從-主主伺服器備份配置

前提:本教程隻備份指定資料庫mis

      主伺服器IP:192.168.1.10

      從伺服器IP:192.168.1.20

1:主伺服器鎖定資料庫,避免Position變化

      flush tables with read lock;

2:主伺服器将要備份的資料庫導出到備份檔案,導入到從伺服器,使得兩個伺服器的資料庫有相同的初态,否則Slave_SQL_Running 不等于YES

3:備份完成後,解鎖主伺服器資料庫

      unlock tables;

4:配置從伺服器資料庫配置檔案

      [mysqld]

      server-id = 2                              # 伺服器唯一編号,比主伺服器小,主伺服器一般是1,必須

      log-bin = mysql-bin                    # 開啟mysql binlog功能,二進制日志,必須

      replicate_wild_do_table=mis.% # 隻同步mis 庫下的表,非必須

      relay_log=mysqld-relay-bin        # 記錄中繼日志,非必須

      log-slave-updates=YES              # 從伺服器同步後記錄日志,非必須

      修改完成後重新開機mysql服務。

5:檢視主伺服器資料庫狀态

      show master status

MySQL 主從-主主伺服器備份配置

 6:主伺服器建立允許從伺服器同步資料的賬戶:

      建立使用者:CREATE USER 'bakuser'@'%' IDENTIFIED BY 'password';

      授權使用者:GRANT REPLICATION SLAVE ON mis.* TO 'bakuser'@'%';

7:從伺服器開啟同步:

      change master to  

            master_host='192.168.1.10',

            master_user='bakuser',

            master_password='password',

            master_log_file='mysql-bin.000092',

            master_log_pos=1167;

      運作成功 --->配置完以上後,重新開機從伺服器mysql服務。

8:檢視從伺服器是否已經成功開啟同步:

      show slave status

MySQL 主從-主主伺服器備份配置

       其中:Slave_IO_Running和Slave_SQL_Running的狀态都是YES,說明同步開啟成功。

到這一步,主從伺服器已配置完畢,更改主伺服器mis 資料庫内容,從伺服器也會相應更改,但是從伺服器更改時,主伺服器不會更改,是以要保住兩個資料互相一緻,需要配置主主伺服器

在主從配置的基礎上實作雙主備份

9:從伺服器建立允許主伺服器同步資料的賬戶:同步驟6

10:配置主伺服器資料庫配置檔案:同步驟4,server-id 得比從伺服器資料庫配置的小

11:記錄從伺服器二進制日志檔案名與位置:同步驟5

12:主伺服器開啟同步:同步驟7

13:重新開機mysqld服務後,檢視主伺服器是否已經成功開啟同步:同步驟8

問題:

1:Position 值變化原因:Position 值随着mysql 有增删改查 ,bin-log日志就增加,那麼Position 肯定會變化

答:FLUSH TABLE WITH READ LOCK; 鎖庫position就停了,配置完成前再解鎖可保證Position 同步變化

2:為什麼要設定replicate_wild_do_table(指定同步的資料庫)

答:replicate_do_db 跨資料執行sql 語句不會被執行,預設隻執行目前資料庫語句,replicate_wild_do_table可以確定需要同步的資料庫實時更新,不需要的資料庫被排除在外

3:Slave_IO_Running = Connecting

答:1:網絡不同,始終處于待連接配接狀态,互相ping 主從伺服器,觀察連接配接狀态,互相開啟端口3306 通訊;

       2:使用者權限不夠,配置的使用者沒有配置允許同步資料,或者使用者允許連接配接的IP有所指定,可以改成正确的指定IP或者%(通配)

       3:配置檔案問題,檢查以上配置是否都正常,檢查是否有【bind-address】(資料庫綁定了IP,指定IP才能通路,應當注釋掉)

4:Slave_IO_Running = No

答:主從同步配置錯誤,例如:啟動一次資料庫,就會産生新的mysql-bin 檔案,導緻配置的master_log_file 不可用,或者Position 變化導緻配置的master_log_pos 不可用

5:Slave_SQL_Running = No

答:主從資料庫初态内容不一緻照成的,例如:資料庫重新開機或者有增删改查等操作在配置未完成前,Position 變化導緻配置的master_log_pos 不可用

參考:https://www.cnblogs.com/yixiao21/p/8372214.html