為本機寫入轉送設定 Aurora PostgreSQL - Amazon Aurora

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

為本機寫入轉送設定 Aurora PostgreSQL

您可以使用下列區段,為 Amazon Aurora PostgreSQL 資料庫叢集啟用本機寫入轉送、設定一致性層級,以及使用寫入轉送管理交易。

啟用本機寫入轉送

根據預設,Aurora PostgreSQL 資料庫叢集不會啟用本機寫入轉送。您能夠在叢集層級啟用本機寫入轉送,而非執行個體層級。

使用 AWS Management Console,選取建立或修改資料庫叢集時,在僅供讀取複本寫入轉送下開啟本機寫入轉送核取方塊。

若要使用 啟用本機寫入轉送 AWS CLI,請使用 --enable-local-write-forwarding選項。當您使用 create-db-cluster 命令建立新的資料庫叢集時,此選項會起作用。當您使用 modify-db-cluster 命令修改現有的資料庫叢集時,此選項也會起作用。您可以使用 --no-enable-local-write-forwarding選項搭配這些相同的CLI命令來停用本機寫入轉送。

下列範例會建立啟用本機寫入轉送的 Aurora PostgreSQL 資料庫叢集。

aws rds create-db-cluster \ --db-cluster-identifier write-forwarding-test-cluster \ --enable-local-write-forwarding \ --engine aurora-postgresql \ --engine-version 16.4 \ --master-username myuser \ --master-user-password mypassword \ --backup-retention 1

然後,您可以建立寫入器和讀取器資料庫執行個體,以便您可以使用寫入轉送。如需詳細資訊,請參閱建立 Amazon Aurora 資料庫叢集

若要使用 RDS Amazon 啟用本機寫入轉送API,請將 EnableLocalWriteForwarding 參數設定為 true。當您使用 CreateDBCluster 操作建立新的資料庫叢集時,此參數會起作用。當您使用 ModifyDBCluster 操作修改現有的資料庫叢集時,此選項也會起作用。您可以將 EnableLocalWriteForwarding 參數設定為 ,以停用本機寫入轉送false

啟用資料庫工作階段的本機寫入轉送

apg_write_forward.consistency_mode 參數是啟用寫入轉送的資料庫參數和資料庫叢集參數。您可以OFF為讀取一致性層級指定 GLOBAL、、 SESSION EVENTUAL或 。若要進一步了解一致性層級,請參閱Aurora Postgre 中本機寫入轉送的一致性和隔離SQL

下列規則適用於此參數:

  • 預設值為 SESSION

  • 只有在您將 apg_write_forward.consistency_mode設定為 EVENTUAL、 或 時SESSION,才能使用本機寫入轉送GLOBAL。此參數僅適用於已啟用本機寫入轉送的資料庫叢集讀取器執行個體。

  • 將 值設定為 會在工作階段中OFF停用本機寫入轉送。

Aurora Postgre 中本機寫入轉送的一致性和隔離SQL

您可以控制僅供讀取複本上的讀取一致性程度。您可以調整讀取一致性層級,以確保在任何後續查詢之前,來自工作階段的所有轉送寫入操作都會顯示在僅供讀取複本中。您也可以使用此設定,以確保僅供讀取複本上的查詢一律會看到寫入器資料庫執行個體的最新更新。即使是由其他工作階段或其他叢集所提交的更新。若要為應用程式指定這種行為類型,請為工作階段層級參數 apg_write_forward.consistency_mode 選擇適當的值。apg_write_forward.consistency_mode 參數只會對啟用本機寫入轉送的僅供讀取複本產生影響。

注意

對於 apg_write_forward.consistency_mode 參數,您可以指定值 SESSIONEVENTUALGLOBALOFF。根據預設,系統會將此值設為 SESSION。將 值設定為 會OFF停用寫入轉送。

當您提高一致性層級時,您的應用程式會花費更多時間等待將變更傳播到僅供讀取複本。您可以選擇較低延遲之間的平衡,並確保在其他位置所做的變更在查詢執行之前完全可用。

對於每個可用的一致性模式設定,效果如下:

  • SESSION – 僅供讀取複本上的工作階段使用本機寫入轉送,可查看該工作階段中所有變更的結果。無論交易是否已遞交,這些變更都是可見的。如有必要,查詢會等待轉送寫入操作的結果複寫至目前的讀取器資料庫執行個體。它不會等待目前資料庫叢集內其他工作階段中執行的寫入操作的更新結果。

  • EVENTUAL – 使用本機寫入轉送的僅供讀取複本上的工作階段可能會看到由於複寫延遲而稍微過時的資料。在寫入器資料庫執行個體上執行寫入操作並複寫至僅供讀取複本之前,不會顯示相同工作階段中的寫入操作結果。查詢不會等待更新的結果變成可用。因此,它可能會擷取較舊的資料或更新的資料,視陳述式的時間和複寫延遲量而定。

  • GLOBAL – 僅供讀取複本上的工作階段會看到該工作階段所做的變更。它也會查看寫入器資料庫執行個體和其他僅供讀取複本的所有遞交變更。每個查詢可能會等待一段時間,長短取決於工作階段的延遲量。當僅供讀取複本 up-to-date包含寫入器資料庫執行個體的所有遞交資料時,查詢會繼續,直到查詢開始為止。

    注意

    全域一致性模式會影響工作階段中執行查詢的延遲。即使工作階段未傳送任何寫入查詢,也會執行等待。

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

在使用寫入轉送的工作階段中,您可以使用 REPEATABLE READREAD COMMITTED 隔離層級。不過,不支援 SERIALIZABLE 隔離層級。

如需寫入轉送中所含所有參數的詳細資訊,請參閱 寫入轉送的預設參數設定

具有寫入轉送的交易存取模式

如果交易存取模式設定為唯讀,則不會使用本機寫入轉送。只有在連線至已啟用本機寫入轉送的資料庫叢集和工作階段時,才能將存取模式設定為僅供讀取寫入。

如需交易存取模式的詳細資訊,請參閱SET。 TRANSACTION