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

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

使用 Aurora PostgreSQL 的本機寫入轉送

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

注意

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

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

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

在叢集詳細資訊頁面的 AWS Management 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 Postgre 中本機寫入轉送的一致性和隔離SQL。此參數僅適用於已啟用本機寫入轉送的讀取器執行個體。

  • 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 權限。