使用 Aurora PostgreSQL 的本機寫入轉送 - Amazon Aurora

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

使用 Aurora PostgreSQL 的本機寫入轉送

使用下列各節,您可以檢查資料庫叢集是否已啟用本機寫入轉送、檢視相容性考量,以及查看可設定的參數和身分驗證設定。此資訊可讓您取得詳細資訊,以有效利用 Aurora PostgreSQL 中的本機寫入轉送功能。

注意

當叢集中使用本機寫入轉送的寫入器執行個體重新啟動時,使用本機寫入轉送的讀取器執行個體上任何作用中的轉送交易和查詢都會自動關閉。當寫入器執行個體再次可用之後,您可以重試這些交易。

檢查資料庫叢集是否已啟用本機寫入轉送

若要確定您是否可以在資料庫叢集中使用本機寫入轉送,請確認該叢集的屬性 LocalWriteForwardingStatus 設定為 enabled

在 the console 中,叢集的詳細資訊頁面上的組態標籤,您可以看到本機僅供讀取複本寫入轉送的狀態為啟用

若要查看所有叢集的本機寫入轉送設定狀態,請執行下列 AWS CLI 命令。

aws rds describe-db-clusters \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}' [ { "LocalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "write-forwarding-test-cluster-1" }, { "LocalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "write-forwarding-test-cluster-2" }, { "LocalWriteForwardingStatus": "requested", "DBClusterIdentifier": "test-global-cluster-2" }, { "LocalWriteForwardingStatus": "null", "DBClusterIdentifier": "aurora-postgresql-v2-cluster" } ]

資料庫叢集可以具有以下值 LocalWriteForwardingStatus

  • disabled – 本機寫入轉送已停用。

  • disabling – 本機寫入轉送正處於停用的過程。

  • enabled – 本機寫入轉送已啟用。

  • enabling – 本機寫入轉送正處於啟用的過程。

  • null – 本機寫入轉送不適用於此資料庫叢集。

  • requested – 已請求本機寫入轉送,但尚未作用中。

寫入轉送的預設參數設定

Aurora 叢集參數群組包含本機寫入轉送功能的設定。因為這些是叢集參數,所以每個叢集中的所有資料庫執行個體都有這些變數的相同值。下表列出了有關這些參數的詳細資訊,並在表格後面附有使用注意事項。

參數 範圍 類型 預設值 有效值
apg_write_forward.connect_timeout Session (工作階段) 30 0–2147483647
apg_write_forward.consistency_mode 工作階段 (Session) enum Session (工作階段) SESSION, EVENTUAL, GLOBAL, 和 OFF
apg_write_forward.idle_in_transaction_session_timeout Session (工作階段) 毫秒 86400000 0–2147483647
apg_write_forward.idle_session_timeout Session (工作階段) 毫秒 300000 0–2147483647
apg_write_forward.max_forwarding_connections_percent 全球服務 int 25 1–100

apg_write_forward.max_forwarding_connections_percent 參數是可用於處理從讀取器轉送之查詢的資料庫連線上限。此上限的表示方式是寫入器資料庫執行個體的 max_connections 設定百分比。例如,如果 max_connections800,且 apg_write_forward.max_forwarding_connections_percent10,則寫入器允許最多 80 個同時轉送的工作階段。這些連線來自 max_connections 設定所管理的相同連線集區。此設定僅適用於叢集已啟用本機寫入轉送功能的寫入器資料庫執行個體。

使用下列設定來控制本機寫入轉送請求:

  • apg_write_forward.consistency_mode – 工作階段層級參數,用於控制僅供讀取複本的讀取一致性程度。有效值為 SESSIONEVENTUALGLOBALOFF。根據預設,系統會將此值設為 SESSION。將值設定為 OFF 會停用工作階段中的本機寫入轉送。若要進一步了解一致性層級,請參閱Aurora PostgreSQL 中本機寫入轉送的一致性與隔離。此參數僅在啟用本機寫入轉送的讀取器執行個體中啟用。

  • apg_write_forward.connect_timeout – 在建立寫入器資料庫執行個體的連線時,僅供讀取複本在放棄之前等待的秒數上限。值 0 表示無限期等待。

  • apg_write_forward.idle_in_transaction_session_timeout – 寫入器資料庫執行個體在關閉讀取器執行個體之前,等待從具有開啟交易之僅供讀取複本轉送的連線上活動的毫秒數。如果在此期間之後工作階段在交易中仍處於閒置狀態,則 Aurora 會終止工作階段。值為 0 會停用逾時。

  • apg_write_forward.idle_session_timeout – 寫入器資料庫執行個體在關閉讀取器執行個體之前,等待從僅供讀取複本轉送的連線上活動的毫秒數。如果工作階段在此期間之後仍處於閒置狀態,則 Aurora 會終止工作階段。值為 0 會停用逾時。

rdswriteforwarduser

rdswriteforwarduser 是我們用來在僅供讀取複本與寫入器資料庫執行個體之間建立連線的使用者。

注意

rdswriteforwarduser 透過 PUBLIC 角色將其 CONNECT 權限繼承至客戶資料庫。如果撤銷 PUBLIC 角色的權限,您將需要針對轉送寫入所需的資料庫 GRANT CONNECT 權限。