將資料複寫至適用於 MySQL 的 Azure 資料庫
適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫 - 單一伺服器會發生什麼事?
資料輸入複寫可讓您將來自外部 MySQL 伺服器的資料,同步處理到適用於 MySQL 的 Azure 資料庫服務。 外部伺服器可以位於內部部署環境、虛擬機器中或其他雲端提供者所裝載的資料庫服務內。 資料輸入複寫是建立在以二進位記錄 (binlog) 檔案位置為基礎,或以 GTID 為基礎的 MySQL 原生複寫之上。 若要深入了解 binlog 複寫,請參閱 MySQL binlog 複寫概觀 \(英文\)。
使用資料帶入複寫的時機
適合考慮使用資料輸入複寫的主要案例包括:
- 混合式資料同步:您可使用資料帶入複寫,讓內部部署伺服器與適用於 MySQL 的 Azure 資料庫之間的資料保持同步。 此同步適用於建立混合式應用程式。 當您目前擁有本機資料庫伺服器,但想要將資料移到更接近使用者的區域時,這個方法很吸引人。
- 多重雲端同步處理:針對複雜的雲端解決方案,使用資料帶入複寫來同步處理適用於 MySQL 的 Azure 資料庫與不同雲端提供者 (包括這些雲端中所裝載的虛擬機器和資料庫服務) 之間的資料。
對於移轉案例,請使用 Azure 資料移轉服務 (DMS)。
限制與考量
不會複寫資料
不會複寫來源伺服器上的 mysql 系統資料庫。 此外,也不會複寫來源伺服器上對於帳戶和權限的變更。 如果您在來源伺服器上建立帳戶,且此帳戶需要存取複本伺服器,請在複本伺服器上手動建立相同的帳戶。 若要了解系統資料庫中包含哪些資料表,請參閱 MySQL 手冊 \(英文\)。
篩選
若要略過從來源伺服器 (裝載於內部部署、虛擬機器中,或其他雲端提供者所裝載的資料庫服務) 複寫資料表的作業,需支援 replicate_wild_ignore_table
參數。 您可以選擇性地使用 Azure 入口網站或 Azure CLI,在裝載於 Azure 中的複本伺服器上更新此參數。
若要深入了解此參數,請檢閱 MySQL 文件。
僅支援一般用途或記憶體最佳化層級
資料輸入複寫只適用於一般用途和記憶體最佳化定價層。
Private Link 支援
「適用於 MySQL 的 Azure 資料庫」的私人連結僅支援輸入連線。 由於資料輸入複寫需要來自服務私人連結的輸出連線,因此不支援資料輸入流量。
注意
5.7 和 8.0 版僅支援最多 16 TB (一般用途儲存體 v2) 的伺服器上才支援 GTID。
需求
- 來源伺服器版本必須至少是 MySQL 5.6 版。
- 來源和複本伺服器的版本必須相同。 例如,兩者都必須是 MySQL 5.6 版,或兩者都必須是 MySQL 5.7 版。
- 每個資料表都必須有主索引鍵。
- 來源伺服器應使用 MySQL InnoDB 引擎。
- 使用者必須有權設定二進位記錄,以及在來源伺服器上建立新的使用者。
- 如果來源伺服器已啟用 SSL,請確定為網域提供的 SSL CA 憑證已包含在
mysql.az_replication_change_master
或mysql.az_replication_change_master_with_gtid
預存程序中。 請參閱下列範例和master_ssl_ca
參數。 - 請確定來源伺服器的 IP 位址已新增至「適用於 MySQL 的 Azure 資料庫」複本伺服器的防火牆規則。 使用 Azure 入口網站或 Azure CLI 更新防火牆規則。
- 請確定裝載來源伺服器的機器允許連接埠 3306 上的輸入和輸出流量。
- 請確定來源伺服器具有公用 IP 位址、DNS 可供公開存取,或來源伺服器具有完整網域名稱 (FQDN)。
下一步
- 了解如何設定資料帶入複寫
- 了解如何在 Azure 中使用讀取複本進行複寫
- 了解如何使用 DMS 在最短的停機時間內移轉資料