MySQL 主主同步配置

來源:互聯網
上載者:User

      戰環境介紹:

       

伺服器名 IP 系統 MySQL
odd.example.com 192.168.1.116 rhel-5.8 5.5.16
even.example.com 192.168.1.115 rhel-5.8 5.5.16

     假設要同步的庫是 db_rocky
     
     ㈠ 建立同步處理的使用者
     
     在 ODD上

mysql> grant replication slave on *.* to 'water'@'192.168.1.115' identified by 'cdio2010';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

     在 EVEN 上

mysql> grant replication slave on *.* to 'water'@'192.168.1.116' identified by 'cdio2010';Query OK, 0 rows affected (0.11 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

     ㈡ 修改 /etc/my.cnf 設定檔,為其添加以下內容:


     在 ODD 上 

[mysqld]binlog-do-db=db_rocky #需要記錄進位日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項binlog-ignore-db=mysql #不需要記錄進位日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項replicate-do-db=db_rocky #需要進行同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個replicate-do-db選項replicate-ignore-db=mysql,information_schema #不需要同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個replicate-ignore-db選項#同步參數:#保證slave掛在任何一台master上都會接收到另一個master的寫入資訊log-slave-updatessync_binlog=1auto_increment_offset=1auto_increment_increment=2slave-skip-errors=all #過濾掉一些沒啥大問題的錯誤

     在 EVEN 上

[mysqld]server-id=2 #設定一個不同的id、注意這裡在my.cnf裡面有個預設值是 1 、把預設值改掉、而不能新增一個server-idbinlog-do-db=db_rocky #需要記錄二進位日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項binlog-ignore-db=mysql #不需要記錄進位日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-ignore-db選項#需要同步的資料庫replicate-do-db=db_rocky #需要進行同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項replicate-ignore-db=mysql,information_schema #不需要同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項#同步參數:#保證slave掛在任何一台master上都會接收到另一個master的寫入資訊log-slave-updatessync_binlog=1auto_increment_offset=2auto_increment_increment=2slave-skip-errors=all #過濾掉一些沒啥大問題的錯誤


     ㈢ 分別重啟伺服器ODD  EVEN 上的mysql服務 
     
     
     ㈣ 分別在伺服器ODD、EVEN 上查看做為主伺服器狀態

     
     在ODD

mysql> flush tables with read lock;#防止進入新的資料Query OK, 0 rows affected (0.00 sec)mysql> show master status\G;*************************** 1. row ***************************            File: mysql-bin.000007        Position: 438    Binlog_Do_DB: db_rockyBinlog_Ignore_DB: mysql1 row in set (0.00 sec)

     在EVEN

mysql> flush tables with read lock;Query OK, 0 rows affected (0.00 sec)mysql> show master status\G;*************************** 1. row ***************************            File: mysql-bin.000008        Position: 107    Binlog_Do_DB: db_rockyBinlog_Ignore_DB: mysql1 row in set (0.01 sec)

     ㈤ 分別在伺服器ODD、EVEN上用change master語句指定同步位置 : 
     
     在ODD

mysql> change master to master_host='192.168.1.115',master_user='water',master_password='cdio2010',    -> master_log_file='mysql-bin.000008',master_log_pos=107;Query OK, 0 rows affected (0.05 sec)

     在EVEN

mysql> change master to master_host='192.168.1.116',master_user='water',master_password='cdio2010',    -> master_log_file='mysql-bin.000007',master_log_pos=438;Query OK, 0 rows affected (0.15 sec)

     註:master_log_file,master_log_pos由上面主伺服器查出的狀態值中確定
             master_log_file對應File,master_log_pos對應Position
     
     
     在ODD EVEN上

mysql> unlock tables;Query OK, 0 rows affected (0.00 sec)

     ㈥ 分別在伺服器ODD、EVEN上啟動從伺服器線程 

mysql> start slave;Query OK, 0 rows affected (0.00 sec)

     分別在伺服器ODD、EVEN上查看從伺服器狀態 :

ODD上mysql> show slave status\G;*************************** 1. row ***************************主要關注以下 2 個參數:......             Slave_IO_Running: Yes            Slave_SQL_Running: Yes......EVEN上:mysql> show slave status\G;*************************** 1. row ***************************主要關注以下 2 個參數:......             Slave_IO_Running: Yes            Slave_SQL_Running: Yes......

     ㈦ 測試

EVEN 上mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || db_rocky           || mysql              || performance_schema || test               |+--------------------+5 rows in set (0.00 sec)mysql> use db_rocky;Database changedmysql> show tables;Empty set (0.00 sec)mysql> create table water (id int);Query OK, 0 rows affected (0.04 sec)mysql> insert into water values(1);Query OK, 1 row affected (0.01 sec)mysql> commit;Query OK, 0 rows affected (0.00 sec)在 ODD 上mysql> show tables;+--------------------+| Tables_in_db_rocky |+--------------------+| t_rocky            || water              |+--------------------+2 rows in set (0.00 sec)mysql> select * from water;+------+| id   |+------+|    1 |+------+1 row in set (0.00 sec)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.