

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

# 在 Aurora PostgreSQL 全域資料庫中使用寫入轉送
<a name="aurora-global-database-write-forwarding-apg"></a>

**Topics**
+ [Aurora PostgreSQL 中寫入轉送的區域和版本可用性](#aurora-global-database-write-forwarding-regions-versions-apg)
+ [在 Aurora 中啟用寫入轉送](#aurora-global-database-write-forwarding-enabling-apg)
+ [檢查 Aurora PostgreSQL 中的次要叢集是否已啟用寫入轉送](#aurora-global-database-write-forwarding-describing-apg)
+ [Aurora PostgreSQL 中的應用程式和 SQL 與寫入轉送的相容性](#aurora-global-database-write-forwarding-compatibility-apg)
+ [Aurora PostgreSQL 中寫入轉送的隔離與一致性](#aurora-global-database-write-forwarding-isolation-apg)
+ [具有寫入轉送的交易存取模式](#aurora-global-database-write-forwarding-txns)
+ [在 Aurora PostgreSQL 中使用寫入轉送執行多部分陳述式](#aurora-global-database-write-forwarding-multipart-apg)
+ [Aurora PostgreSQL 中寫入轉送的組態參數](#aurora-global-database-write-forwarding-params-apg)
+ [Aurora PostgreSQL 中寫入轉送的 Amazon CloudWatch 指標](#aurora-global-database-write-forwarding-cloudwatch-apg)
+ [Aurora PostgreSQL 中寫入轉送的等待事件](#aurora-global-database-write-forwarding-wait-events-apg)

## Aurora PostgreSQL 中寫入轉送的區域和版本可用性
<a name="aurora-global-database-write-forwarding-regions-versions-apg"></a>

 在 Aurora PostgreSQL 第 16 版和更新的主要版本中，所有次要版本都支援全域寫入轉送。對於舊版的 Aurora PostgreSQL，全域寫入轉送支援 15.4 版和更新的次要版本，以及 14.9 版和更新的次要版本。寫入轉送適用於可使用 Aurora PostgreSQL 型全域資料庫的每個 AWS 區域。

如需 Aurora PostgreSQL 全域資料庫版本和區域可用性的詳細資訊，請參閱 [使用 Aurora PostgreSQL 的 Aurora 全域資料庫](Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.apg)。

## 在 Aurora 中啟用寫入轉送
<a name="aurora-global-database-write-forwarding-enabling-apg"></a>

根據預設，當您將次要叢集新增至 Aurora 全域資料庫時，不會啟用寫入轉送。您可以在建立次要資料庫叢集時或建立後的任何時間啟用寫入轉送功能。如有需要，您可以稍後停用它。啟用或停用寫入轉送不會造成停機或重新開機。

**注意**  
您可以針對偶爾寫入的應用程式使用本機寫入轉送，並要求先寫後讀一致性，也就是能夠讀取交易中最新寫入的能力。

### 主控台
<a name="aurora-global-database-write-forwarding-enabling-apg.Console"></a>

在主控台中，您可以在建立或修改次要資料庫叢集時啟用寫入轉送。

#### 在建立次要資料庫叢集時啟用或停用寫入轉送
<a name="aurora-global-database-write-forwarding-enabling-apg.Console.Creating"></a>

當您建立新的次要資料庫叢集時，您可以選取**僅供讀取複本寫入轉送**下的**開啟全域寫入轉送**核取方塊來啟用寫入轉送。或者清除核取方塊以停用它。若要建立次要資料庫叢集，請遵循 [建立 Amazon Aurora 資料庫叢集](Aurora.CreateInstance.md) 中的資料庫引擎指示。

下列螢幕擷取畫面顯示已選取**開啟全域寫入轉送**核取方塊的**僅供讀取複本寫入轉送**區段。

![\[\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-db-enable-write-forwarding.png)


#### 在修改次要資料庫叢集時啟用或停用寫入轉送
<a name="aurora-global-database-write-forwarding-enabling-apg.Console.Modifying"></a>

在主控台中，您可以修改次要資料庫叢集以啟用或停用寫入轉送。

**使用主控台啟用或停用次要資料庫叢集的寫入轉送**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 選擇 **Databases** (資料庫)。

1. 選擇次要資料庫叢集，然後選擇**修改**。

1. 在**僅供讀取複本寫入轉送**區段中，勾選或清除**開啟全域寫入轉送**核取方塊。

1. 選擇**繼續**。

1. 在**排程修改**中，選擇**立即套用**。如果您選擇**在下一個排定的維護時段套用**，Aurora 會忽略此設定，並立即開啟寫入轉送。

1. 選擇**修改叢集**。

### AWS CLI
<a name="aurora-global-database-write-forwarding-enabling-apg.CLI"></a>

 若要使用 啟用寫入轉送 AWS CLI，請使用 `--enable-global-write-forwarding`選項。當您使用 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 命令建立新的次要叢集時，此選項會起作用。當您使用 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 命令修改現有的次要叢集時，此選項也會起作用。其要求全域資料庫使用支援寫入轉送的 Aurora 版本。您可以使用 `--no-enable-global-write-forwarding` 選項搭配這些相同的 CLI 命令來停用寫入轉送。

下列程序說明如何使用 AWS CLI來啟用或停用全域叢集中次要資料庫叢集的寫入轉送。

**為現有次要資料庫叢集啟用或停用寫入轉送**
+ 呼叫 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 命令並提供下列值：
  + `--db-cluster-identifier` – 資料庫叢集的名稱。
  + `--enable-global-write-forwarding` 用來開啟，`--no-enable-global-write-forwarding` 用來關閉。

  下列範例會啟用資料庫叢集 `sample-secondary-db-cluster` 的寫入轉送。

  對於 Linux、macOS 或 Unix：

  ```
  aws rds modify-db-cluster \
      --db-cluster-identifier sample-secondary-db-cluster \
      --enable-global-write-forwarding
  ```

  在 Windows 中：

  ```
  aws rds modify-db-cluster ^
      --db-cluster-identifier sample-secondary-db-cluster ^
      --enable-global-write-forwarding
  ```

### RDS API
<a name="aurora-global-database-write-forwarding-enabling-apg.API"></a>

 若要使用 Amazon RDS API 啟用寫入轉送，請將 `EnableGlobalWriteForwarding` 參數設定為 `true`。當您使用 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 操作建立新的次要叢集時，此參數會起作用。當您使用 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 操作修改現有的次要叢集時，此選項也會起作用。其要求全域資料庫使用支援寫入轉送的 Aurora 版本。您可以將 `EnableGlobalWriteForwarding` 參數設定為 `false` 來停用寫入轉送。

## 檢查 Aurora PostgreSQL 中的次要叢集是否已啟用寫入轉送
<a name="aurora-global-database-write-forwarding-describing-apg"></a>

 若要判斷是否可以從次要叢集使用寫入轉送，您可以檢查叢集是否具有屬性 `"GlobalWriteForwardingStatus": "enabled"`。

 在 中 AWS 管理主控台，您會`Read replica write forwarding`在叢集詳細資訊頁面的**組態**索引標籤上看到 。若要查看所有叢集的全域寫入轉送設定狀態，請執行下列 AWS CLI 命令。

 次要叢集會顯示值 `"enabled"` 或 `"disabled"`，指出寫入轉送是開啟或關閉。`null` 值表示該叢集無法使用寫入轉送。此叢集不屬於全域資料庫，或是主要叢集，而是次要叢集。如果寫入轉送處於開啟或關閉的程序中，此值也可以 `"enabling"` 是 `"disabling"`。

**Example**  

```
aws rds describe-db-clusters --query '*[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus}'
[
    {
        "GlobalWriteForwardingStatus": "enabled",
        "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1"
    },
    {
        "GlobalWriteForwardingStatus": "disabled",
        "DBClusterIdentifier": "aurora-write-forwarding-test-replica-2"
    },
    {
        "GlobalWriteForwardingStatus": null,
        "DBClusterIdentifier": "non-global-cluster"
    }
]
```

 若要尋找已啟用全域寫入轉送的次要叢集，請執行下列命令。此命令也會傳回叢集的讀取者端點。當您使用寫入轉送從 Aurora 全域資料庫的次要叢集到主要叢集時，您可以使用次要叢集的讀取者端點。

**Example**  

```
aws rds describe-db-clusters --query 'DBClusters[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus,ReaderEndpoint:ReaderEndpoint} | [?GlobalWriteForwardingStatus == `enabled`]'
[
    {
        "GlobalWriteForwardingStatus": "enabled",
        "ReaderEndpoint": "aurora-write-forwarding-test-replica-1.cluster-ro-cnpexample.us-west-2.rds.amazonaws.com",
        "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1"
    }
]
```

## Aurora PostgreSQL 中的應用程式和 SQL 與寫入轉送的相容性
<a name="aurora-global-database-write-forwarding-compatibility-apg"></a>

 當您在具有寫入轉送的全域資料庫中使用某些陳述式時，系統不允許使用這些陳述式或這些陳述式可能會產生過時的結果。此外，不支援使用者定義的函數和使用者定義的程序。因此，次要叢集的 `EnableGlobalWriteForwarding` 設定預設為關閉。在開啟此功能之前，請檢查以確定您的應用程式程式碼不受上述任何限制的影響。

 您可以使用以下類型的 SQL 陳述式搭配寫入轉送：
+  資料操作語言 (DML) 陳述式，例如 `INSERT`、`DELETE` 和 `UPDATE`
+  `SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }` 陳述式
+  `PREPARE` 和 `EXECUTE` 陳述式
+  包含此清單中陳述式的 `EXPLAIN` 陳述式

 寫入轉送不支援下列 SQL 陳述式類型：
+  資料定義語言 (DDL) 陳述式 
+  `ANALYZE` 
+  `CLUSTER` 
+  `COPY` 
+ 游標 – 不支援游標，因此請務必在使用寫入轉送之前將其關閉。
+  `GRANT`\$1`REVOKE`\$1`REASSIGN OWNED`\$1`SECURITY LABEL`
+  `LOCK` 
+  `SAVEPOINT` 陳述式 
+  `SELECT INTO` 
+  `SET CONSTRAINTS` 
+  `TRUNCATE` 
+  `VACUUM` 

## Aurora PostgreSQL 中寫入轉送的隔離與一致性
<a name="aurora-global-database-write-forwarding-isolation-apg"></a>

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

您可以控制次要叢集上的讀取一致性程度。讀取一致性層級會決定次要叢集在每次讀取操作之前的等待時間，以確保從主要叢集複寫部分或全部變更。您可以調整讀取一致性層級，以確保在任何後續查詢之前，您都可以在次要叢集中看見工作階段中的所有轉送寫入操作。您也可以使用此設定，確保次要叢集上的查詢永遠會看到主要叢集的最新更新。即使是由其他工作階段或其他叢集所提交的更新。若要為應用程式指定這種行為類型，請為 `apg_write_forward.consistency_mode` 參數選擇適當的值。該 `apg_write_forward.consistency_mode` 參數只會對啟用寫入轉送的次要叢集產生影響。

**注意**  
對於 `apg_write_forward.consistency_mode` 參數，您可以指定值 `SESSION`、`EVENTUAL`、`GLOBAL` 或 `OFF`。根據預設，系統會將此值設為 `SESSION`。將值設定為 `OFF` 會停用工作階段中的寫入轉送。

 隨著一致性層級的提高，您的應用程式會花費更多時間等待 AWS 區域之間傳播變更。您可以選擇在快速回應時間之間的平衡，並確保在查詢執行之前，在其他位置所做的變更完全可用。

對於每個可用的一致性模式設定，效果如下：
+ `SESSION` – 次要 AWS 區域中使用寫入轉送的所有查詢都會查看該工作階段中所有變更的結果。無論交易是否已遞交，這些變更都是可見的。如有必要，查詢會等待轉送寫入操作的結果複寫到目前的區域。其不會等待來自寫入操作的更新結果，這些寫入操作的執行位置位於其他區域或目前區域內其他工作階段。
+ `EVENTUAL` – 使用寫入轉送的次要 AWS 區域中的查詢可能會看到由於複寫延遲而稍微過時的資料。在主要區域上執行寫入操作並複寫到目前的區域之前，不會顯示相同工作階段中寫入操作的結果。查詢不會等待更新的結果變成可用。因此，它可能會擷取較舊的資料或更新的資料，視陳述式的時間和複寫延遲量而定。
+ `GLOBAL` – 次要區域中的工作階段會 AWS 看到該工作階段所做的變更。它也會查看主要 AWS 區域和其他次要 AWS 區域的所有遞交變更。每個查詢可能會等待一段時間，長短取決於工作階段的延遲量。自查詢開始的時間起，當次要叢集與主要叢集中的所有遞交資料都是最新時，查詢就會繼續。
+ `OFF` – 已停用工作階段中的寫入轉送。

 如需寫入轉送中所含所有參數的詳細資訊，請參閱 [Aurora PostgreSQL 中寫入轉送的組態參數](#aurora-global-database-write-forwarding-params-apg)。

## 具有寫入轉送的交易存取模式
<a name="aurora-global-database-write-forwarding-txns"></a>

如果交易存取模式設定為唯讀，則不會使用寫入轉送。您可以在連線至已啟用寫入轉送的資料庫叢集和工作階段時，將存取模式設定為僅讀取寫入。

如需交易存取模式的詳細資訊，請參閱[設定交易](https://www.postgresql.org/docs/current/sql-set-transaction.html)。

## 在 Aurora PostgreSQL 中使用寫入轉送執行多部分陳述式
<a name="aurora-global-database-write-forwarding-multipart-apg"></a>

 DML 陳述式可能包含多個部分，例如 `INSERT ... SELECT` 陳述式或 `DELETE ... WHERE` 陳述式。在這種情況下，系統會將整個陳述式轉送到主要叢集並在該處執行陳述式。

## Aurora PostgreSQL 中寫入轉送的組態參數
<a name="aurora-global-database-write-forwarding-params-apg"></a>

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


|  名稱  |  範圍  |  類型  |  預設值  |  有效值  | 
| --- | --- | --- | --- | --- | 
|  apg\$1write\$1forward.connect\$1timeout  |  Session (工作階段)  |  秒  |  30  |  0–2147483647  | 
|  apg\$1write\$1forward.consistency\$1mode |  工作階段 (Session)  |  enum  |  Session (工作階段) |  SESSION, EVENTUAL, GLOBAL, OFF  | 
|  apg\$1write\$1forward.idle\$1in\$1transaction\$1session\$1timeout  |  Session (工作階段)  |  毫秒  |  86400000  |  0–2147483647  | 
|  apg\$1write\$1forward.idle\$1session\$1timeout  |  Session (工作階段)  |  毫秒  |  300000  |  0–2147483647  | 
|  apg\$1write\$1forward.max\$1forwarding\$1connections\$1percent  |  全域  |  int  |  25  |  1–100  | 

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

在次要叢集上使用下列設定：
+ `apg_write_forward.consistency_mode` – 工作階段層級參數，用於控制次要叢集的讀取一致性程度。有效值為 `SESSION`、`EVENTUAL`、`GLOBAL` 或 `OFF`。根據預設，系統會將此值設為 `SESSION`。將值設定為 `OFF` 會停用工作階段中的寫入轉送。若要進一步了解一致性層級，請參閱[Aurora PostgreSQL 中寫入轉送的隔離與一致性](#aurora-global-database-write-forwarding-isolation-apg)。此參數僅在啟用寫入轉送之次要叢集的讀取器執行個體中，且該次要叢集位於 Aurora 全域資料庫中才有意義。
+ `apg_write_forward.connect_timeout` – 次要叢集在放棄與主要叢集建立連線之前等待的秒數上限。值 `0` 表示無限期等待。
+ `apg_write_forward.idle_in_transaction_session_timeout` – 主要叢集在關閉連線之前，等待從具有開啟交易之次要叢集轉送的連線上活動的毫秒數。如果在此期間之後工作階段在交易中仍處於閒置狀態，則 Aurora 會終止工作階段。值為 `0` 會停用逾時。
+ `apg_write_forward.idle_session_timeout` – 主要叢集在關閉從次要叢集轉送的連線前等待活動的毫秒數。如果工作階段在此期間之後仍處於閒置狀態，則 Aurora 會終止工作階段。值為 `0` 會停用逾時。

## Aurora PostgreSQL 中寫入轉送的 Amazon CloudWatch 指標
<a name="aurora-global-database-write-forwarding-cloudwatch-apg"></a>

 當您在一或多個次要叢集上使用寫入轉送時，下列 Amazon CloudWatch 指標適用於主要叢集。這些指標都是在主要叢集中寫入器資料庫執行個體上測量的。


| CloudWatch 指標 | 單位和描述 | 
| --- | --- | 
| `AuroraForwardingWriterDMLThroughput`  | 計數 (每秒) 此寫入器資料庫執行個體每秒處理的轉送 DML 陳述式數目。 | 
|  `AuroraForwardingWriterOpenSessions`  | 計數。此寫入器資料庫執行個體處理轉送查詢的開啟工作階段數目。 | 
|  `AuroraForwardingWriterTotalSessions`  | 計數。此寫入器資料庫執行個體上轉送的工作階段總數。 | 

 下列 CloudWatch 指標適用於每個次要叢集。這些指標的測量是在啟用寫入轉送的次要叢集中，每個讀取器資料庫執行個體上進行。


| CloudWatch 指標 | 單位和描述 | 
| --- | --- | 
|  `AuroraForwardingReplicaCommitThroughput` |  計數 (每秒) 此複本每秒轉送之工作階段中的遞交數目。 | 
|  `AuroraForwardingReplicaDMLLatency` |  毫秒。複本上轉送 DML 的平均回應時間 (以毫秒為單位)。 | 
|  `AuroraForwardingReplicaDMLThroughput` |  計數 (每秒) 每秒在此複本上處理的轉送 DML 陳述式數目。 | 
|  `AuroraForwardingReplicaErrorSessionsLimit` |  計數。由於達到連線數上限或寫入轉送連線數上限而被主要叢集拒絕的工作階段數目。 | 
|  `AuroraForwardingReplicaOpenSessions`  |  計數。在複本執行個體上使用寫入轉送的工作階段數目。 | 
|  `AuroraForwardingReplicaReadWaitLatency` | 毫秒。複本等待與主要叢集的 LSN 保持一致的平均等待時間 (毫秒)。讀取器資料庫執行個體等待的程度取決於 apg\$1write\$1forward.consistency\$1mode 設定。如需有關此設定的詳細資訊，請參閱 [Aurora PostgreSQL 中寫入轉送的組態參數](#aurora-global-database-write-forwarding-params-apg)。 | 

## Aurora PostgreSQL 中寫入轉送的等待事件
<a name="aurora-global-database-write-forwarding-wait-events-apg"></a>

當您搭配 Aurora PostgreSQL 使用寫入轉送時，Amazon Aurora 會產生下列等待事件。

**Topics**
+ [IPC:AuroraWriteForwardConnect](#apg-waits.ipcaurorawriteforwardconnect)
+ [IPC:AuroraWriteForwardConsistencyPoint](#apg-waits.ipcaurorawriteforwardconsistencypoint)
+ [IPC:AuroraWriteForwardExecute](#apg-waits.ipc:aurorawriteforwardexecute)
+ [IPC:AuroraWriteForwardGetGlobalConsistencyPoint](#apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint)
+ [IPC:AuroraWriteForwardXactAbort](#apg-waits.ipc:aurorawriteforwardxactabort)
+ [IPC:AuroraWriteForwardXactCommit](#apg-waits.ipc:aurorawriteforwardxactcommit)
+ [IPC:AuroraWriteForwardXactStart](#apg-waits.ipc:aurorawriteforwardxactstart)

### IPC:AuroraWriteForwardConnect
<a name="apg-waits.ipcaurorawriteforwardconnect"></a>

次要資料庫叢集上的後端程序正在等待開啟與主要資料庫叢集之寫入器節點的連線時，就會發生 `IPC:AuroraWriteForwardConnect` 事件。

**等待時間增加的可能原因**

隨著從次要區域的讀取器節點到主要資料庫叢集之寫入器節點的連線嘗試次數增加，此事件也會增加。

**動作**

減少從次要節點到主要區域的寫入器節點的同時連線數目。

### IPC:AuroraWriteForwardConsistencyPoint
<a name="apg-waits.ipcaurorawriteforwardconsistencypoint"></a>

`IPC:AuroraWriteForwardConsistencyPoint` 事件描述來自次要資料庫叢集上節點的查詢將等待轉送的寫入操作的結果複寫到目前區域的時間。只有在工作階段層級參數 `apg_write_forward.consistency_mode` 設定為下列其中一項時，才會產生此事件：
+ `SESSION` – 次要節點上的查詢會等待該工作階段中所做之所有變更的結果。
+ `GLOBAL` – 次要節點上的查詢會等待該工作階段所做的變更結果，以及來自全域叢集中主要區域和其他次要區域的所有已遞交變更。

如需有關 `apg_write_forward.consistency_mode` 參數設定的資訊，請參閱 [Aurora PostgreSQL 中寫入轉送的組態參數](#aurora-global-database-write-forwarding-params-apg)。

**等待時間增加的可能原因**

等待時間較長的常見原因如下：
+ 根據 Amazon CloudWatch `ReplicaLag` 指標所衡量的複本延遲增加。如需此指標的詳細資訊，請參閱 [監控 Aurora PostgreSQL 複寫](AuroraPostgreSQL.Replication.md#AuroraPostgreSQL.Replication.Monitoring)。
+ 主要區域寫入器節點或次要節點上的負載增加。

**動作**

請根據應用程式的需求變更一致性模式。

### IPC:AuroraWriteForwardExecute
<a name="apg-waits.ipc:aurorawriteforwardexecute"></a>

當次要資料庫叢集上的後端程序正在等待轉送的查詢完成，並從主要資料庫叢集的寫入器節點取得結果時，就會發生 `IPC:AuroraWriteForwardExecute` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 從主要區域的寫入器節點擷取大量的行。
+ 次要節點與主要區域寫入器節點之間的網路延遲增加，會增加次要節點從寫入器節點接收資料所花費的時間。
+ 次要節點上的負載增加，可能會延遲從次要節點到主要區域寫入器節點之查詢要求的傳輸。
+ 主要區域寫入器節點的負載增加，可能會延遲將資料從寫入器節點傳輸至次要節點。

**動作**

根據等待事件的原因，我們會建議不同的動作。
+ 最佳化查詢以僅擷取必要的資料。
+ 將資料處理語言 (DML) 操作最佳化，以僅修改必要的資料。
+ 如果次要節點或主要區域的寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardGetGlobalConsistencyPoint
<a name="apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint"></a>

當次要資料庫叢集上使用全域一致性模式的後端程序在執行查詢之前等待從寫入器節點取得全域一致性點時，就會發生 `IPC:AuroraWriteForwardGetGlobalConsistencyPoint` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 次要節點與主要區域寫入器節點之間的網路延遲增加，會增加次要節點從寫入器節點接收資料所花費的時間。
+ 次要節點上的負載增加，可能會延遲從次要節點到主要區域寫入器節點之查詢要求的傳輸。
+ 主要區域寫入器節點的負載增加，可能會延遲將資料從寫入器節點傳輸至次要節點。

**動作**

根據等待事件的原因，我們會建議不同的動作。
+ 請根據應用程式的需求變更一致性模式。
+ 如果次要節點或主要區域的寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardXactAbort
<a name="apg-waits.ipc:aurorawriteforwardxactabort"></a>

次要資料庫叢集上的後端程序正在等待遠端清除查詢的結果時，就會發生 `IPC:AuroraWriteForwardXactAbort` 事件。在中止寫入轉送的交易之後，會發出清除查詢以將程序返回到適當的狀態。Amazon Aurora 執行這些操作可能是因為發現錯誤，也可能是因為使用者發出了明確的 `ABORT` 命令或取消了正在執行的查詢。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 次要節點與主要區域寫入器節點之間的網路延遲增加，會增加次要節點從寫入器節點接收資料所花費的時間。
+ 次要節點上的負載增加，可能會延遲從次要節點到主要區域寫入器節點之清除查詢要求的傳輸。
+ 主要區域寫入器節點的負載增加，可能會延遲將資料從寫入器節點傳輸至次要節點。

**動作**

根據等待事件的原因，我們會建議不同的動作。
+ 調查中止交易的原因。
+ 如果次要節點或主要區域的寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardXactCommit
<a name="apg-waits.ipc:aurorawriteforwardxactcommit"></a>

當次要資料庫叢集上的後端程序正在等待轉送的 commit 交易命令的結果時，就會發生 `IPC:AuroraWriteForwardXactCommit` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 次要節點與主要區域寫入器節點之間的網路延遲增加，會增加次要節點從寫入器節點接收資料所花費的時間。
+ 次要節點上的負載增加，可能會延遲從次要節點到主要區域寫入器節點之查詢要求的傳輸。
+ 主要區域寫入器節點的負載增加，可能會延遲將資料從寫入器節點傳輸至次要節點。

**動作**

如果次要節點或主要區域的寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardXactStart
<a name="apg-waits.ipc:aurorawriteforwardxactstart"></a>

當次要資料庫叢集上的後端程序正在等待轉送的 start 交易命令的結果時，就會發生 `IPC:AuroraWriteForwardXactStart` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 次要節點與主要區域寫入器節點之間的網路延遲增加，會增加次要節點從寫入器節點接收資料所花費的時間。
+ 次要節點上的負載增加，可能會延遲從次要節點到主要區域寫入器節點之查詢要求的傳輸。
+ 主要區域寫入器節點的負載增加，可能會延遲將資料從寫入器節點傳輸至次要節點。

**動作**

如果次要節點或主要區域的寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。