

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

# 使用專用日誌磁碟區 (DLV)
<a name="USER_PIOPS.dlv"></a>

您可以將專用日誌磁碟區 (DLV) 用於使用佈建 IOPS (PIOPS) 儲存體的資料庫執行個體。DLV 會將 PostgreSQL 資料庫交易日誌和 MySQL/MariaDB 重做日誌與二進位日誌移至與包含資料庫資料表的磁碟區不同的儲存體磁碟區。DLV 使交易寫入記錄更有效率且一致。DLV 非常適合具有大型配置儲存體、每秒高 I/O (IOPS) 需求或延遲敏感工作負載的資料庫。

PIOPS 儲存體 (io1 和 io2 Block Express) 支援 DLV，這些 DLV 是使用固定大小 1,024 GiB 和 3,000 個佈建 IOPS 建立的。

Amazon RDS 在 AWS 區域 下列版本中支援所有 中的 DLVs：
+ MariaDB 10.6.7 和更新的 10 版本
+ MySQL 8.0.28 和更高的 8.0 版本，MySQL 8.4.3 和更高的 8.4 版本
+ PostgreSQL 13.10 和更新的 13 版本、14.7 和更新的 14 版本，以及 15.2 和更新的 15 版本

RDS 支援 DLV 搭配多可用區部署。修改或建立多可用區執行個體時，會同時為主要和次要執行個體建立 DLV。

RDS 支援 DLV 搭配僅供讀取複本。如果主要資料庫執行個體已啟用 DLV，則在啟用 DLV 之後建立的所有僅供讀取複本也將具有 DLV。在切換到 DLV 之前建立的任何僅供讀取複本將不會啟用它，除非明確修改為要這樣做。建議在啟用 DLV 之前附加至主要執行個體的所有僅供讀取複本，您也須將其手動修改為具有 DLV。

**注意**  
對於 5 TiB 或更高的資料庫組態，建議使用 DLV。

若要進一步了解 DLV 的優點，請參閱下列部落格文章：
+ [使用 Amazon RDS 專用日誌磁碟區增強資料庫效能](https://aws.amazon.com/blogs/database/enhance-database-performance-with-amazon-rds-dedicated-log-volumes/)
+ [使用專用日誌磁碟區對 Amazon RDS for PostgreSQL 進行基準化分析](https://aws.amazon.com/blogs/database/benchmark-amazon-rds-for-postgresql-with-dedicated-log-volumes/)
+ Percona 文件中的[使用專用日誌磁碟區最大化 AWS RDS for MySQL 的效能](https://www.percona.com/blog/maximizing-performance-of-aws-rds-for-mysql-with-dedicated-log-volumes/)

如需每個資料庫引擎可用的已配置儲存體、佈建 IOPS、儲存體輸送量的範圍相關資訊，請參閱 [佈建 IOPS SSD 儲存體](CHAP_Storage.md#USER_PIOPS)。

**Topics**
+ [啟用和停用 DLV 時的考量](#USER_PIOPS.dlv.considerations)
+ [在建立資料庫執行個體時啟用 DLV](#USER_PIOPS.create-dlv)
+ [在現有的資料庫執行個體上啟用 DLV](#USER_PIOPS.modify-dlv)
+ [監控 DLV 儲存體](#USER_PIOPS.dlv.monitoring)

## 啟用和停用 DLV 時的考量
<a name="USER_PIOPS.dlv.considerations"></a>

啟用和停用 DLV 可能會耗時，並導致停機。此程序涉及在啟用時將所有交易日誌或重做和二進位日誌 (取決於資料庫引擎) 複製到新磁碟區，或在停用時重新複製到原始儲存體。此操作的持續時間受到若干因素影響：
+ 交易日誌數目：
  + 資料庫越大、含有越多交易，就會產生越多日誌，而拉長複製所需的時間。
  + 如果複寫插槽處於非作用中狀態，或複寫有所延遲，交易日誌可能會累積在主要資料庫執行個體上，而拉長複製所需的時間。請確定複寫是現行的，並移除任何不必要的插槽。
+ 儲存組態：
  + 資料庫執行個體 EBS 頻寬 – 頻寬越高，資料傳輸速度越快。
  + 佈建 IOPS 的數目 – 每秒輸入/輸出操作數 (IOPS) 越高，複製程序就越快速。
+ 資料庫活動 – 設定期間的高層級資料庫活動可能會拖慢程序。

為了將停機時間降至最低，建議您在活動量低或維護時段期間規劃和排程。

## 在建立資料庫執行個體時啟用 DLV
<a name="USER_PIOPS.create-dlv"></a>

您可以使用 AWS 管理主控台 AWS CLI或 RDS API 來建立已啟用 DLV 的資料庫執行個體。

### 主控台
<a name="USER_PIOPS.create-dlv.CON"></a>

**在新的資料庫執行個體上啟用 DLV**

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

1. 選擇**建立資料庫**。

1. 在**建立資料庫執行個體**頁面上，選擇支援 DLV 的資料庫引擎。

1. 針對**儲存**：

   1. 選擇 **Provisioned IOPS SSD (io1)** 或 **Provisioned IOPS SSD (io2)**。

   1. 輸入您想要的**配置儲存**和**佈建 IOPS**。

   1. 展開**專用日誌磁碟區**，然後選取**開啟專用日誌磁碟區**。  
![\[在新的資料庫執行個體上啟用 DLV。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/enable-dlv.png)

1. 視需要選擇其他設定。

1. 選擇**建立資料庫**。

資料庫建立後，專用日誌磁碟區的值會出現在資料庫詳細資訊頁面的**組態**索引標籤上。

### CLI
<a name="USER_PIOPS.create-dlv.CLI"></a>

若要在使用佈建 IOPS 儲存體建立資料庫執行個體時啟用 DLV，請使用 AWS CLI 命令 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)。設定下列參數：
+ `--dedicated-log-volume` – 啟用專用日誌磁碟區。
+ `--storage-type` – 針對佈建 IOPS 設定為 `io1` 或 `io2`。
+ `--allocated-storage` – 要配置給資料庫執行個體的儲存量 (以 GiB 為單位)。
+ `--iops` – 資料庫執行個體的佈建 IOPS 數量，以每秒 I/O 操作數表示。

### RDS API
<a name="USER_PIOPS.create-dlv.API"></a>

若要在使用佈建 IOPS 儲存體建立資料庫執行個體時啟用 DLV，請使用 Amazon RDS API 操作 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CretaeDBInstance.html)。設定下列參數：
+ `DedicatedLogVolume` - 設定為 `true` 以啟用專用日誌磁碟區。
+ `StorageType` – 針對佈建 IOPS 設定為 `io1` 或 `io2`。
+ `AllocatedStorage` – 要配置給資料庫執行個體的儲存量 (以 GiB 為單位)。
+ `Iops` - 資料庫執行個體的 IOPS 速率，以每秒 I/O 操作數表示。

## 在現有的資料庫執行個體上啟用 DLV
<a name="USER_PIOPS.modify-dlv"></a>

您可以使用 AWS 管理主控台 AWS CLI或 RDS API 來修改資料庫執行個體以啟用 DLV。

修改資料庫執行個體的 DLV 設定後，必須將資料庫執行個體重新開機。

### 主控台
<a name="USER_PIOPS.modify-dlv.CON"></a>

**在現有的資料庫執行個體上啟用 DLV**

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

1. 在導覽窗格中，選擇 **Databases (資料庫)**。

   若要篩選資料庫執行個體清單，請在 **Filter databases (篩選資料庫)** 中輸入文字字串，供 Amazon RDS 用來篩選結果。只有名稱中包含此字串的資料庫執行個體會顯示出來。

1. 選擇您想要修改、具有佈建 IOPS 儲存體的資料庫執行個體。

1. 選擇 **Modify** (修改)。

1. 在**修改資料庫執行個體**頁面上：

   1. 針對**儲存**，展開**專用日誌磁碟區**，然後選取**開啟專用日誌磁碟區**。

1. 選擇**繼續**。

1. 選擇**立即套用**，以立即套用資料庫執行個體的變更。或選擇 **Apply during the next scheduled maintenance window (在下一個排定的維護時段套用)** 在下個維護時段套用變更。

1. 檢閱要變更的參數，並選擇 **Modify DB instance (修改資料庫執行個體)** 以完成修改。

專用日誌磁碟區的新值會出現在資料庫詳細資訊頁面的**組態**索引標籤上。

### CLI
<a name="USER_PIOPS.modify-dlv.CLI"></a>

若要使用佈建 IOPS 儲存體在現有資料庫執行個體上啟用或停用 DLV，請使用 AWS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)。設定下列參數：
+ `--dedicated-log-volume` – 啟用專用日誌磁碟區。

  使用 `--no-dedicated-log-volume` (預設值) 停用專用日誌磁碟區。
+ `--apply-immediately` – 使用 `--apply-immediately` 立即套用變更。

  使用 `--no-apply-immediately` (預設值) 在下個維護時段套用變更。

### RDS API
<a name="USER_PIOPS.modify-dlv.API"></a>

若要使用佈建 IOPS 儲存體，在現有資料庫執行個體上啟用或停用 DLV，請使用 Amazon RDS API 操作 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html)。設定下列參數：
+ `DedicatedLogVolume` – 將此選項設定為 `true` 以啟用專用日誌磁碟區。

  將此選項設定為 `false` 以停用專用日誌磁碟區。這是預設值。
+ `ApplyImmediately` – 將此選項設為 `True` 立即套用變更。

  將此選項設為 `False` (預設值) 在下個維護時段套用變更。

## 監控 DLV 儲存體
<a name="USER_PIOPS.dlv.monitoring"></a>

您可以使用 CloudWatch 中的 `FreeStorageSpaceLogVolume` 指標來監控 DLV 儲存體用量。

您可以使用 RDS for PostgreSQL 的下列查詢，確認交易日誌佔用的大小：

```
SELECT pg_size_pretty(COALESCE(sum(size), 0)) AS total_wal_generated_size
FROM pg_catalog.pg_ls_waldir();
```

如果 DLV 儲存空間不足，資料庫執行個體會進入 `storage-full` 狀態，而導致停機。