與 Amazon Aurora 郵政複製 SQL - Amazon Aurora

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

與 Amazon Aurora 郵政複製 SQL

接下來,您可以找到有關使用 Amazon Aurora Postgre 進行複寫的資訊SQL,包括如何監控和使用邏輯複寫。

使用 Aurora 複本

Aurora 複本是 Aurora 資料庫叢集中的獨立端點,最適合用於擴展讀取操作和提高可用性。Aurora 資料庫叢集最多可包含 15 個 Aurora 複本,位於 Aurora 資料庫叢集的可用區域中 AWS 地區。

資料庫叢集磁碟區由資料庫叢集的多個資料副本組成。然而,叢集磁碟區中的資料是以單一邏輯磁碟區的形式呈現給主要執行個體,以及資料庫叢集中的 Aurora 複本。如需 Aurora 複本的詳細資訊,請參閱 Aurora 複本

Aurora 複本很適合讀取擴展,因為完全專用於叢集磁碟區上的讀取操作。寫入器資料庫執行個體會管理寫入操作。叢集磁碟區會在您的 Aurora Postgre SQL 資料庫叢集中的所有執行個體之間共用。因此,不需要額外的工作來複寫每個 Aurora 複本的資料複本。

使用 Aurora Postgre 時SQL,刪除 Aurora 複本時,其執行個體端點會立即移除,並從讀取器端點移除 Aurora 複本。如果在要刪除的 Aurora 複本上有陳述式正在執行,則會有三分鐘的寬限期。現有陳述式在寬限期期間可以從容地完成。在寬限期結束時,Aurora 複本會關閉並刪除。

Aurora 後SQL資料庫叢集支援不同的 Aurora 複本 AWS 區域,使用 Aurora 全域資料庫。如需詳細資訊,請參閱使用 Amazon Aurora Global Database

注意

讀取可用性功能改善後,您必須手動執行才可重新啟動資料庫叢集中的 Aurora 複本。對於在此功能之前建立的資料庫叢集,重新啟動寫入器資料庫執行個體會自動重新啟動 Aurora 複本。自動重新啟動會重新建立進入點,保證資料庫叢集之間讀取/寫入的一致性。

改善 Aurora 複本的讀取可用性

Aurora Postgre 會在寫入器資料庫執行個體重新啟動或 Aurora 複本無法跟上寫入流量時持續提供讀取請求,藉此SQL改善資料庫叢集中的讀取可用性。

根據預設,讀取可用性功能在以下版本的 Aurora Postgre SQL 上可用:

  • 16.1 及所有更高版本

  • 15.2 版和更新的 15 版本

  • 14.7 版和更新的 14 版本

  • 13.10 版和更新的 13 版本

  • 12.14 版和更新的 12 版本

Aurora 全域資料庫支援下列版本的讀取可用性功能:

  • 16.1 及所有更高版本

  • 15.4 版和更新的 15 版本

  • 14.9 版和更新的 14 版本

  • 13.12 及更高版本 13 個版本

  • 12.16 及更高版本 12 個版本

若要在此啟動之前針對在其中一個版本上建立的資料庫叢集使用讀取可用性功能,請重新啟動資料庫叢集的寫入器執行個體。

修改 Aurora Postgre SQL 資料庫叢集的靜態參數時,必須重新啟動寫入器執行個體,以使參數變更生效。例如,設定 shared_buffers 的值時,您必須重新啟動寫入器執行個體。使用改善的 Aurora 複本可用性,資料庫叢集會在這些重新啟動期間維持讀取可用性,進而減少變更對寫入器執行個體的影響。讀取器執行個體不會重新啟動,並繼續回應讀取請求。若要套用靜態參數變更,請重新啟動每個個別的讀取器執行個體。

Aurora Postgre 資料SQL庫叢集的 Aurora 複本可在與寫入器重新連線後快速復原至記憶體內資料庫狀態,從複寫錯誤 (例如寫入器重新啟動、容錯移轉、緩慢複寫和網路問題) 中復原。此方法可讓 Aurora 複本執行個體在用戶端資料庫仍然可用時,與最新的儲存體更新達成一致性。

與複寫復原發生衝突的進行中交易可能會收到錯誤,但是在讀取器趕上寫入器之後,用戶端可以重試這些交易。

監控 Aurora 複本

從寫入器中斷連線復原時,您可以監控 Aurora 複本。使用以下指標檢查讀取器執行個體是否有最新的相關資訊,以及追蹤進行中的唯讀交易。

  • aurora_replica_status函數會更新,以便在讀取器實體仍連線時傳回最多 up-to-date 資訊。資料列若對應至查詢執行所在的資料庫執行個體,aurora_replica_status 中的最後一個更新時間戳記一律為空白。這表示讀取器執行個體具有最新的資料。

  • 當 Aurora 複本中斷與寫入器執行個體的連線並重新連線時,系統會發送下列資料庫事件:

    Read replica has been disconnected from the writer instance and reconnected.

  • 當唯讀查詢因為復原衝突而取消時,您可能會在資料庫錯誤記錄檔中看到下列一或多個錯誤訊息:

    Canceling statement due to conflict with recovery.

    User query may not have access to page data to replica disconnect.

    User query might have tried to access a file that no longer exists.

    When the replica reconnects, you will be able to repeat your command.

限制

下列限制適用於可用性已改善的 Aurora 複本:

  • 如果在複寫復原期間無法從寫入器執行個體串流資料,則次要資料庫叢集的 Aurora 複本可以重新啟動。

  • 如果 Aurora 複本已在進行中,則它不支援線上複寫復原,並將重新啟動。

  • 當您的資料庫執行個體接近交易 ID 包圍時,Aurora 複本將重新啟動。如需交易 ID 包圍的詳細資訊,請參閱避免交易 ID 包圍失敗

  • 在特定情況下,當複寫程序遭到封鎖時,Aurora 複本可以重新啟動。

監測 Aurora 後複製 SQL

讀取擴展和高可用性取決於最短延遲時間。您可以監控 Amazon CloudWatch ReplicaLag 指標,監控 Aurora 複本落後於 Aurora Postgre 資料庫叢集的寫入器SQL資料庫執行個體之後的距離。由於 Aurora 複本從與寫入器資料庫執行個體相同的叢集磁碟區讀取,因此該ReplicaLag指標對於 Aurora Postgre SQL 資料庫叢集具有不同的意義。Aurora 複本的 ReplicaLag 指標指出 Aurora 複本的頁面快取落後於寫入器資料庫執行個體的頁面快取的程度。

如需監視RDS執行個體和 CloudWatch 指標的詳細資訊,請參閱在 Amazon Aurora 叢集中監控指標