MySQL主從架構之Master-Master互爲主備

Master-Master互爲主備html

1:按照主從配置步驟將MasterB配置成MasterA的從庫;mysql

參考我這篇文章:http://www.cnblogs.com/xiaoit/p/3977843.htmlsql

2:確保MasterB沒有寫入,經過show master status命令在MasterB上獲得其同步點,再將MasterA配置成MasterB的從庫。數據庫

一般,爲了簡化邏輯,其中一個Master會設置爲只讀,正常只經過另一個Master進行讀寫。 若要兩邊都寫,爲了不自增id衝突,通常會設置奇偶錯開,即一臺的自增ID均爲奇數,另外一臺均爲偶數。spa

 

這裏假設你已經按照我第一篇文章作了主從。htm

配置實例:blog

1:在Master B(Slave)的配置文件中添加ip

port = 3307
log_bin = /var/lib/mysql/mysql-binlog
binlog_do_db = testSM

2:在MasterA(Master)的配置文件中添加文檔

prot=3306
master-host = 10.4.5.9 master-user = gechong1 master-password = gechong1 master-port = 3307 master-connect-retry = 5 replicate-do-db = testSM

3:在Master B(Slave)上建立複製帳號gechong1get

GRANT REPLICATION SLAVE ON *.* TO gechong1@'%' IDENTIFIED BY 'gechong1';

4:兩邊都重啓服務登錄數據庫

在Master A(Master)上查看

mysql> show master status;
+---------------------+----------+--------------+------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| mysql-binlog.000002 |      106 | test         |                  |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 10.4.5.9
                  Master_User: gechong1
                  Master_Port: 3306
                Connect_Retry: 5
              Master_Log_File: 
          Read_Master_Log_Pos: 4
               Relay_Log_File: mysqld-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: 
             Slave_IO_Running: No
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 0
              Relay_Log_Space: 106
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 2013
                Last_IO_Error: error connecting to master 'gechong1@10.4.5.9:3306' - retry-time: 5  retries: 86400
               Last_SQL_Errno: 0
               Last_SQL_Error: 
1 row in set (0.00 sec)

在MasterB(Slave)上查看

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.4.14.168
                  Master_User: gechong
                  Master_Port: 3306
                Connect_Retry: 5
              Master_Log_File: mysql-binlog.000002
          Read_Master_Log_Pos: 106
               Relay_Log_File: mysqld-relay-bin.000006
                Relay_Log_Pos: 254
        Relay_Master_Log_File: mysql-binlog.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 106
              Relay_Log_Space: 558
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
1 row in set (0.00 sec)

mysql> show master status;
+---------------------+----------+--------------+------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| mysql-binlog.000001 |      327 |              |                  |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

  

能夠看到  Master A:Slave_IO_Running: No

能夠參照第一篇文檔,從新配置參數便可。

相關文章
相關標籤/搜索