共用方式為


「適用於 MariaDB 的 Azure 資料庫」中的讀取複本

重要

適用於 MariaDB 的 Azure 資料庫位於淘汰路徑上。 強烈建議您移轉至適用於 MySQL 的 Azure 資料庫。 如需移轉至適用於 MySQL 的 Azure 資料庫的詳細資訊,請參閱適用於 MariaDB 的 Azure 資料庫會發生什麼事?(部份機器翻譯)。

讀取複本功能可讓您將資料從適用於 MariaDB 的 Azure 資料庫伺服器複寫到唯讀伺服器。 您可以從來源伺服器複寫到最多五個複本。 複本會使用 MariaDB 引擎的二進位記錄 (binlog) 檔案位置型複寫技術搭配全域交易識別碼 (GTID) 來進行非同步更新。 若要深入了解 binlog 複寫,請參閱 binlog 複寫概觀 \(英文\)。

複本是新伺服器,管理方式類似於一般適用於 MariaDB 的 Azure 資料庫伺服器。 針對每個讀取複本,系統每月會針對在虛擬核心中所佈建的計算量,以及在儲存體中所佈建的容量 (以 GB 為單位) 向您收費。

若要深入了解 GTID 複寫,請參閱 MariaDB 複寫文件

注意

本文包含「從屬」一詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。

何時應該使用讀取複本

讀取複本功能可針對需大量讀取的工作負載,協助改善效能及調整能力。 讀取工作負載可隔離至複本,而寫入工作負載可以導向到主要伺服器。

常見的案例是讓 BI 與分析工作負載使用讀取複本做為報告的資料來源。

由於複本是唯讀狀態,因此不會直接降低主要伺服器上的寫入容量負擔。 這項功能不是以大量寫入的工作負載為目標。

讀取複本功能會使用非同步複寫。 此功能不適用於同步複寫案例。 來源伺服器和複本之間會有顯著的延遲情形。 複本上的資料,最終仍會與主要伺服器上的資料保持一致。 請針對可接受此延遲的工作負載使用此功能。

跨區域複寫

您可以從來源伺服器在不同的區域中建立讀取複本。 跨區域複寫有助於災害復原規劃或讓資料更接近使用者之類的案例。

您可以在任何 適用於 MariaDB 區域的 Azure 資料庫中擁有來源伺服器。 來源伺服器可以在其配對區域或全球複本區域中擁有複本。 下圖顯示根據您的來源區域而可供使用的複本區域。

讀取複本區域

全球的複本區域

無論您的來源伺服器位於何處,您都可以在下列任何區域中建立讀取複本。 支援的全球複本區域包括:

澳大利亞東部、澳大利亞東南部、巴西南部、加拿大中部、加拿大東部、美國中部、東亞、美國東部、美國東部 2、日本東部、日本西部、南韓中部、南韓南部、美國中北部、北歐、美國中南部、東南亞、英國南部、英國西部、西歐、美國西部、美國西部 2、美國中西部。

配對的區域

除了全球的複本區域外,您還可以在來源伺服器的 Azure 配對區域中,建立讀取複本。 如果您不知道所在區域的配對,則可以從 Azure 配對區域一文深入了解。

如果您使用跨區域複本來規劃災害復原,建議您在配對區域中建立複本,而不要在其他區域之一建立。 配對區域可避免同時更新,並排定實體隔離和資料落地的優先順序。

不過,其中有一些限制需要考慮:

  • 區域可用性:法國中部、阿拉伯聯合大公國北部和德國中部,提供適用於 MariaDB 的 Azure 資料庫。 不過,卻沒有提供其配對區域。

  • 單向配對:某些 Azure 區域只會單向配對。 這些區域包括印度西部、巴西南部和 US Gov 維吉尼亞州。 這表示位於印度西部的來源伺服器可以在印度南部建立複本。 但位於印度南部的來源伺服器無法在印度西部建立複本。 其原因是印度西部的次要區域是印度南部,但印度南部的次要區域卻不是印度西部。

建立複本

重要

讀取複本功能僅供一般用途或記憶體最佳化定價層中適用於 MariaDB 的 Azure 資料庫伺服器使用。 請確定來源伺服器處於這些定價層中。

如果來源伺服器沒有現有的複本伺服器,則來源伺服器會先重新啟動,以準備進行複寫。

當您開始建立複本的工作流程時,系統會建立空白的「適用於 MariaDB 的 Azure 資料庫」伺服器。 新的伺服器會有來源伺服器上的資料。 建立時間取決於來源伺服器上的資料量,以及距離上次執行每週完整備份所經過的時間。 時間的範圍可能介於數分鐘到數小時。

注意

如果您沒有在伺服器上設定儲存體警示,建議您這麼做。 警示會在伺服器接近儲存體限制時向您發出通知,因為此狀況會影響複寫。

了解如何在 Azure 入口網站中建立讀取複本

連線到複本

複本會於建立時繼承來源伺服器的防火牆規則。 之後,這些規則就與來源伺服器無關了。

複本會從來源伺服器繼承系統管理員帳戶。 系統會將來源伺服器上的所有使用者帳戶,複寫至讀取複本。 您只能使用來源伺服器上可用的使用者帳戶,來連線到讀取複本。

您可以使用複本的主機名稱和有效的使用者帳戶來連線到該複本,如同連線到一般適用於 MariaDB 的 Azure 資料庫伺服器一樣。 若伺服器名稱為 myreplica,且統管理員使用者名稱為 myadmin,則您可以使用 mysql CLI 來連線到複本:

mysql -h myreplica.mariadb.database.azure.com -u myadmin@myreplica -p

在出現提示時,請輸入使用者帳戶的密碼。

監視複寫

適用於 MariaDB 的 Azure 資料庫會在 Azure 監視器中提供複寫延遲 (秒) 計量。 此計量僅適用於複本。

在計算此計量時,會使用可於 MariaDB 的 SHOW SLAVE STATUS 命令中取得的 seconds_behind_master 計量。

請設定警示,以在複寫延遲接近工作負載無法接受的值時通知您。

停止複寫

您可以停止來源伺服器與複本伺服器之間的複寫。 當您停止來源伺服器和讀取複本之間的複寫,該複本就會成為獨立伺服器。 獨立伺服器中的資料是起始「停止複寫」命令時,複本上所包含的可用資料。 獨立伺服器不會與來源伺服器保持一致。

當您選擇停止複寫至複本時,其會失去與其先前來源伺服器和其他複本的所有連結。 來源伺服器及其複本之間沒有自動容錯移轉功能。

重要

獨立伺服器無法再次設定為複本。 在您停止讀取複本上的複寫之前,請確定該複本上已經有您所需要的所有資料。

了解如何停止複寫至複本

容錯移轉

來源伺服器及複本伺服器之間沒有自動容錯移轉功能。

由於複寫會以非同步方式進行,因此來源伺服器與複本伺服器之間會具有延遲。 延遲數量可能會受到幾個因素影響,例如在來源伺服器上執行的工作負載數量,以及資料中心之間的延遲情形。 在大部分的情況下,複本延遲的範圍是幾秒鐘到幾分鐘。 您可以使用計量複本延遲,追蹤實際複寫延遲,此計量適用於每個複本。 此計量會顯示自最後一次重新執行交易所經過的時間。 建議您藉由觀察複本在一段時間內的延遲情形,來識別平均延隔時間。 您可以設定複本延遲的警示,當延遲情況超出預期範圍時,便可採取行動。

提示

如果您容錯移轉至複本,則當您從來源伺服器取消複本連結時,延遲會指出遺失的資料數量。

當您決定要容錯移轉至複本後,

  1. 停止複寫至複本。

    這是讓複本伺服器可接受寫入作業的必要步驟。 在此處理序中,系統會從主要伺服器中斷複本伺服器的連結。 當您停止複寫時,後端處理序通常需要大約 2 分鐘才能完成。 請參閱本文的停止複寫章節,以了解此動作的含意。

  2. 將應用程式指向 (先前) 複本。

    每部伺服器都具有唯一的連接字串。 更新應用程式以指向 (先前) 複本,而主要副本。

在應用程式順利處理讀取和寫入作業後,您便完成容錯移轉。 應用程式的停機時間長度,是取決於您偵測到問題並完成上述步驟 1 和 2 的時間點。

考量與限制

定價層

目前只有「一般用途」與「記憶體最佳化」定價層提供讀取複本。

注意

執行複本伺服器的成本,是取決於複本伺服器執行所在的區域。

來源伺服器重新啟動

當您為沒有任何現有複本的來源伺服器建立複本時,來源伺服器會先重新啟動,以準備進行複寫。 請考慮這一點,並在離峰期間執行這些作業。

新複本

讀取複本會建立為最新適用於 MariaDB 伺服器的 Azure 資料庫。 現有伺服器無法設定為複本。 您無法為另一個讀取複本建立複本。

複本設定

系統會使用與主要伺服器相同的伺服器設定來建立複本。 建立複本之後,以下設定可以個別從來源伺服器進行變更:計算世代、虛擬核心、儲存體、備份保留期間以及 MariaDB 引擎版本。 定價層也可以個別變更,但不能變更為基本層,或從基本層變更為別的層。

重要

在將來源伺服器設定更新為新值之前,應將複本的設定更新為相等或更大的值。 此動作可確保複本可以跟上主要伺服器上所做的變更。

建立複本時,複本會從來源伺服器繼承防火牆規則和參數設定。 之後,複本的規則就已獨立。

已停止的複本

如果您停止在來源伺服器和讀取複本之間進行複寫,已停止的複本就會成為獨立伺服器,同時接受讀取和寫入作業。 獨立伺服器無法再次設定為複本。

已刪除的來源和獨立伺服器

刪除來源伺服器時,系統會在所有讀取複本上停止複寫。 這些複本會自動變成獨立伺服器,並且可以同時接受讀取和寫入。 來源伺服器本身會被刪除。

使用者帳戶

系統會將來源伺服器上的使用者複寫到讀取複本。 您只能使用來源伺服器上可用的使用者帳戶,來連線到讀取複本。

伺服器參數

若要防止資料不同步,以及避免潛在的資料遺失或損毀,則會在使用讀取複本時,有些伺服器參數會被鎖定而無法更新。

來源伺服器和複本伺服器都會鎖定下列伺服器參數:

複本伺服器上會鎖定 event_scheduler 參數。

若要更新來源伺服器上的上述其中一個參數,請刪除複本伺服器、更新主要伺服器上的參數值,然後重新建立複本。

其他

  • 不支援建立複本的複本。
  • 記憶體內資料表可能會導致複本不同步。這是 MariaDB 複寫技術的限制。
  • 請確定來源伺服器資料表,具有主索引鍵。 缺少主索引鍵,可能會造成來源伺服器和複本伺服器之間,所產生的複寫延遲。

下一步