国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

(五)支持多源復制和多線程復制

2018-02-24 16:05 更新

本文是基于MySQL-5.7.7-rc版本,未來可能 還會發(fā)生更多變化。

1、支持多源復制(Multi-source replication)

這對采用分庫分表的同學絕對是個超級重磅福音。可以把多個MASTER的數(shù)據(jù)歸并到一個實例上,?有助于提高SLAVE服務(wù)器的利用率。不過如果是同一個表的話,會存在主鍵和唯一索引沖突的風險,需要提前做好規(guī)劃。

新特性實踐

MySQL 5.7的多源復制采用多通道的模式,例如用以下方法可以創(chuàng)建多個復制通道,將多個MASTER上的數(shù)據(jù)復制到同一個SLAVE節(jié)點中去:

-- 需要先把 MASTER_INFO_REPOSITORY 和 RELAY_LOG_INFO_REPOSITORY 改成 TABLE 模式
[yejr@imysql.com]> SET GLOBAL MASTER_INFO_REPOSITORY = "TABLE";
Query OK, 0 rows affected (0.00 sec)

[yejr@imysql.com]> SET GLOBAL RELAY_LOG_INFO_REPOSITORY = "TABLE";
Query OK, 0 rows affected (0.00 sec)

-- 創(chuàng)建第一個復制通道
[yejr@imysql.com]> CHANGE MASTER TO MASTER_HOST='1.2.3.4', MASTER_USER='user', MASTER_PASSWORD='repl' FOR CHANNEL 'MASTER-01';
Query OK, 0 rows affected, 2 warnings (0.00 sec)

-- 創(chuàng)建第二個復制通道
[yejr@imysql.com]> CHANGE MASTER TO MASTER_HOST='2.3.4.5', MASTER_USER='user', MASTER_PASSWORD='repl' FOR CHANNEL 'MASTER-02';
Query OK, 0 rows affected, 2 warnings (0.00 sec)

-- 查看第二個復制通道的狀態(tài)
[yejr@imysql.com]> SHOW SLAVE STATUS FOR CHANNEL 'MASTER-02';
*************************** 1\. row ***************************
               Slave_IO_State: 
                  Master_Host: 2.3.4.5
                  Master_User: user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: 
          Read_Master_Log_Pos: 4
               Relay_Log_File: yejr-relay-bin-master@002d02.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: 
             Slave_IO_Running: No
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          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: 154
              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: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 0
                  Master_UUID: 
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: 
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: f0df162a-1a39-11e5-883a-782bcb65f419:1-11025782
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: master-02
1 row in set (0.00 sec)

其他和復制相關(guān)的SQL指令和以往也基本一樣,只需在加上?FOR CHANNEL ‘CHANNEL-NAME’?子句即可。

此外,還支持在線修改replication filter規(guī)則,不過不是太建議使用filter規(guī)則,因此不重點介紹了。執(zhí)行下面的SQL命令可以完成filter規(guī)則修改:

[yejr@imysql.com]>?CHANGE REPLICATION FILTER
 REPLICATE_DO_DB = (d1), REPLICATE_IGNORE_DB = (d2);

2、支持多線程復制(Multi-Threaded Slaves, 簡稱MTS)

在5.6版本中實現(xiàn)了SCHEMA級別的并行復制,不過意義不大,因為我們線上大部分實例的讀寫壓力基本集中在某幾個數(shù)據(jù)表,基本無助于緩解復制延遲問題。倒是MariaDB的多線程并行復制大放異彩,有不少人因為這個特性選擇MariaDB(比如我也是其一,呵呵)。

MySQL 5.7 MTS支持兩種模式,一種是和5.6一樣,另一種則是基于binlog group commit實現(xiàn)的多線程復制,也就是MASTER上同時提交的binlog在SLAVE端也可以同時被apply,實現(xiàn)并行復制。關(guān)于MTS的更多詳細介紹可以查看姜承堯的分享?MySQL 5.7 并行復制實現(xiàn)原理與調(diào)優(yōu),我這里就不重復說了。

值得一提的是,經(jīng)過對比測試,5.7采用新的并行復制后,仍然會存在一定程度的延遲,只不過相比5.6版本減少了86%,相比MariaDB的并行復制延遲也小不少。

下一期,我們繼續(xù)講講5.7的其他新特性。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號