以 Amazon Aurora 進行複寫 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

以 Amazon Aurora 進行複寫

Aurora 有多種複寫選項。每個 Aurora 資料庫叢集在同一叢集中的多個資料庫執行個體之間都有內建複寫。您也可以將 Aurora 叢集的複寫設定為來源或目標。當您將資料複寫進入或移出 Aurora 叢集時,您可以選擇內建功能,例如 Aurora 全域資料庫或 MySQL 或 PostgreSQL 資料庫引擎的傳統複寫機制。您可以根據提供高可用性、便利性和效能之正確組合的選項,選擇滿足您需求的適當選項。以下部分說明如何與何時選擇各個技巧。

Aurora 複本

當您在 Aurora 佈建的資料庫叢集中建立第二個、第三個等資料庫執行個體時,Aurora 會自動設定從寫入器資料庫執行個體到所有其他資料庫執行個體的複寫。這些其他資料庫執行個體是唯讀的,被稱為 Aurora 複本。我們也將它們稱為讀取器執行個體,討論您可以在叢集中結合寫入器和讀取器資料庫執行個體的方式。

Aurora 複本有兩個主要目的。您可以向他們發出查詢,以縮放應用程式的讀取操作。您通常會連線到叢集的讀取者端點來執行這項操作。如此一來,Aurora 可以將唯讀連線的負載分散到叢集中的所有 Aurora 複本。Aurora 複本也有助於提高可用性。如果叢集中的寫入器執行個體變成無法使用,則 Aurora 會自動升級其中一個讀取器執行個體,以作為新的寫入器取而代之。

Aurora 資料庫叢集最多可以包含 15 個 Aurora 複本。Aurora 複本可以分佈在 AWS 區域內資料庫叢集跨越的可用區域。

資料庫叢集中的資料擁有自己的高可用性和可靠性功能,與叢集中的資料庫執行個體無關。如果您不熟悉 Aurora 儲存功能,請參閱Amazon Aurora 儲存體的概觀。資料庫叢集磁碟區實際由資料庫叢集的多個資料副本組成。資料庫叢集中的主要執行個體和 Aurora 複本都會將叢集磁碟區中的資料視為單一邏輯磁碟區。

因此,所有 Aurora 複本都會針對查詢結果,以最少的複本延遲傳回相同的資料複本。在主要執行個體寫入更新後,此延遲通常遠低於 100 毫秒。複本延遲會根據資料庫變更率而有所不同。亦即,在資料庫發生大量寫入操作的期間,您可能看到複本延遲增加。

注意

在下列 Aurora PostgreSQL 版本中,當 Aurora 複本與寫入器資料庫執行個體失去通訊超過 60 秒時,Aurora 複本會重新啟動:

  • 14.6 及較舊版本

  • 13.9 及以前的版本

  • 12.13 及以前的版本

  • 所有 Aurora 11 版本

Aurora 複本很適用於讀取擴展,因為完全專用於叢集磁碟區上的讀取操作。寫入操作由主要執行個體管理。因為叢集磁碟區是在資料庫叢集的所有資料庫執行個體之間共用,所以只需要最少的額外工作,即可複寫每一個 Aurora 複本的資料副本。

若要增加可用性,您可以使用 Aurora 複本做為容錯移轉目標。亦即,如果主要執行個體失敗,則 Aurora 複本會提升為主要執行個體。在對主要執行個體提出的讀取和寫入請求由於例外狀況而失敗的期間,會發生短暫的中斷。

以容錯移轉提升 Aurora 複本遠比重新建立主要執行個體快得多。如果您的 Aurora 資料庫叢集不包含任何 Aurora 複本,則在資料庫執行個體從失敗事件還原期間,將無法使用該資料庫叢集。

發生容錯移轉時,某些 Aurora 複本可能會重新啟動,具體取決於資料庫引擎版本。例如,在 Aurora MySQL 2.10 及更高版本中,Aurora 只會在容錯移轉期間重新啟動寫入器資料庫執行個體和容錯移轉目標。如需詳細了解不同 Aurora 資料庫引擎版本重新啟動行為,請參閱 重新啟動 Amazon Aurora 資料庫叢集或 Amazon Aurora 資料庫執行個體。如需詳細了解重新啟動或容錯移轉時,頁面快取的情況,請參閱 可存活的頁面快取

對於高可性案例,我們建議您建立一個或多個 Aurora 複本。這些應該屬於與主要執行個體相同的資料庫執行個體類別,且位於 Aurora 資料庫叢集的不同可用區域中。如需 Aurora 複本做為容錯移轉目標的詳細資訊,請參閱 Aurora 資料庫叢集的容錯能力

您無法為未加密的 Aurora 資料庫叢集建立加密的 Aurora 複本。您無法為加密的 Aurora 資料庫叢集建立未加密的 Aurora 複本。

提示

您可以使用 Aurora 叢集內的 Aurora 複本作為唯一的複寫形式,以保持資料的高可用性。您也可以將內建 Aurora 複寫與其他類型的複寫結合。這樣做有助於為您的資料提供額外層級的高可用性和地理分佈。

如需如何建立 Aurora 複本的詳細資訊,請參閱將 Aurora 複本新增至資料庫叢集

以 Aurora MySQL 進行複寫

除了 Aurora 複本外,您還有下列選項可使用 Aurora MySQL 進行複寫:

  • Aurora MySQL 資料庫叢集位於不同 AWS 區域。

    • 您可以使用 Aurora 全域資料庫,跨多個區域複寫資料。如需詳細資訊,請參閱 使用 Aurora 全域資料庫實現的跨 AWS 區域高可用性

    • 您可以使用 MySQL 二進位記錄 (binlog) 複寫,在不同 AWS 區域中建立 Aurora MySQL 資料庫叢集的 Aurora 僅供讀取複本。每個叢集能以這種方式最多建立五個僅供讀取複本,每個複本都位於不同的區域。

  • 相同 區域中的兩個 Aurora MySQL 資料庫叢集,方法為使用 MySQL 二進位日誌 (binlog) 複寫。

  • 透過建立 RDS for MySQL 資料庫執行個體的 Aurora 僅供讀取複本,將 RDS for MySQL 資料庫執行個體作為資料來源和 Aurora MySQL 資料庫叢集。通常,您會將此方法用於遷移至 Aurora MySQL,而非進行持續複寫。

如需以 Aurora MySQL 進行複寫的詳細資訊,請參閱以 Amazon Aurora MySQL 進行複寫

以 Aurora PostgreSQL 進行複寫

除了 Aurora 複本外,您還有下列選項可使用 Aurora PostgreSQL 進行複寫:

  • 使用 Aurora 全域資料庫,一個區域的主要資料庫叢集和不同區域中最多五個唯讀次要資料庫叢集。Aurora PostgreSQL 不支援跨區域 Aurora 複本。不過,您可以使用 Aurora 全域資料庫將 Aurora PostgreSQL 資料庫叢集的讀取功能擴展到多個 AWS 區域,並達到可用性目標。如需詳細資訊,請參閱 使用 Amazon Aurora Global Database

  • 使用 PostgreSQL 的邏輯複寫功能,在同一區域中的兩個 Aurora PostgreSQL 資料庫叢集。

  • 透過建立 RDS for PostgreSQL 資料庫執行個體的 Aurora 僅供讀取複本,將 RDS for PostgreSQL 資料庫執行個體作為資料來源和 Aurora PostgreSQL 資料庫叢集。通常,您會將此方法用於遷移至 Aurora PostgreSQL,而非進行持續複寫。

如需以 Aurora PostgreSQL 進行複寫的詳細資訊,請參閱以 Amazon Aurora PostgreSQL 進行複寫