在 MySQL 多來源複製中,副本會開啟多個複製通道,每個來源伺服器各一個。複製通道代表交易從來源流向副本的路徑。每個複製通道都有自己的接收 (I/O) 執行緒、一個或多個應用程式 (SQL) 執行緒和中繼日誌。當來自來源的交易由通道的接收執行緒接收時,它們會新增至通道的中繼日誌檔案,並傳遞到通道的應用程式執行緒。這讓每個通道都能獨立運作。
本節說明如何在複製拓撲中使用通道,以及它們對單一來源複製的影響。如需設定多來源複製的來源和副本、啟動、停止和重設多來源副本,以及監控多來源複製的指示,請參閱 第 19.1.5 節,「MySQL 多來源複製」。
在多來源複製拓撲中,單一副本伺服器上可以建立的最大通道數為 256。每個複製通道都必須有一個唯一的 (非空白) 名稱,如第 19.2.2.4 節,「複製通道命名慣例」中所述。啟用多來源複製時發出的錯誤碼和訊息會指定產生錯誤的通道。
多來源副本上的每個通道都必須從不同的來源進行複製。您無法設定從單一副本到單一來源的多個複製通道。這是因為副本的伺服器 ID 在複製拓撲中必須是唯一的。來源僅透過伺服器 ID 來區分副本,而不是透過複製通道的名稱,因此無法辨識來自同一副本的不同複製通道。
透過將系統變數 replica_parallel_workers
設定為大於 0 的值,也可以將多來源副本設定為多執行緒副本。當您在多來源副本上執行此操作時,副本上的每個通道都會有所指定的應用程式執行緒數,加上一個協調執行緒來管理它們。您無法設定個別通道的應用程式執行緒數。
多來源副本可以使用特定複製通道上的複製篩選器進行設定。當相同的資料庫或表格存在於多個來源上時,可以使用通道特定複製篩選器,而您只需要副本從一個來源複製它。對於基於 GTID 的複製,如果相同的交易可能來自多個來源 (例如在鑽石拓撲中),您必須確保所有通道上的篩選設定都相同。如需更多資訊,請參閱第 19.2.5.4 節,「基於複製通道的篩選器」。
為了與先前的版本相容,MySQL 伺服器會在啟動時自動建立一個預設通道,其名稱為空字串 (""
)。此通道始終存在;使用者無法建立或銷毀它。如果沒有建立其他通道(具有非空名稱),則複製陳述式僅對預設通道起作用,因此來自較舊複本的所有複製陳述式都會如預期般運作(請參閱第 19.2.2.2 節,「與先前的複製陳述式相容」)。本節所述的應用於複製通道的陳述式,只有在至少有一個具名通道時才能使用。