

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

# 維護 Amazon DocumentDB
<a name="db-instance-maintain"></a>

Amazon DocumentDB 會定期對 Amazon DocumentDB 資源執行維護。維護作業通常大多是更新資料庫引擎 (叢集維護) 或執行個體基礎作業系統 (OS) (執行個體維護)。資料庫引擎更新是必要的修補程式，包括資料庫引擎的安全性修正、錯誤修正和增強功能。雖然大多數作業系統修補程式都是選用的，但如果您有一段時間未套用，則可能需要修補程式並自動套用，以維護您的安全狀態。因此，我們建議您在 Amazon DocumentDB 執行個體可用時立即套用作業系統更新。

資料庫引擎修補程式需要您讓 Amazon DocumentDB 叢集短暫離線。一旦可用，這些修補程式會自動排程在 Amazon DocumentDB 叢集的近期排程維護時段套用。

叢集和執行個體維護都有自己個別的維護時段。您選擇不立即套用的叢集和執行個體修改也會在維護時段期間套用。根據預設，當您建立叢集時，Amazon DocumentDB 會為叢集和每個個別執行個體指派維護時段。您可以在建立叢集或執行個體時選擇維護時段。您也可以隨時修改維護時段，使符合您的業務排程或實務。我們通常會建議您選擇對應用程式影響最低的維護時段 (例如，在晚上或週末)。

**Topics**
+ [

## Amazon DocumentDB 引擎修補程式的通知
](#patch-notifications)
+ [

## 檢視待定的 Amazon DocumentDB 維護動作
](#view-pending-maintenance)
+ [

## Amazon DocumentDB 引擎更新
](#db-instance-updates-apply)
+ [

## 使用者啟動的更新
](#user-initiated-updates)
+ [

## 管理您的 Amazon DocumentDB 維護時段
](#maintenance-window)
+ [

## Amazon DocumentDB 作業系統更新
](#os-system-updates)

## Amazon DocumentDB 引擎修補程式的通知
<a name="patch-notifications"></a>

您將會透過 AWS 主控台中 Health 儀板表 (AHD) 的運作狀態事件，以及透過電子郵件收到必要資料庫引擎修補程式的維護通知。當特定 AWS 區域可使用 Amazon DocumentDB 引擎維護修補程式時，區域中所有受影響的 Amazon DocumentDB 使用者帳戶都會收到每個受修補程式影響的 Amazon DocumentDB 版本的 AHD 和電子郵件通知。您可以在 AWS 主控台 AHD 的**排程變更**區段下檢視這些通知。通知將提供有關修補程式可用性時間、自動套用排程、受影響叢集清單和版本備註的詳細資訊。此通知也會透過電子郵件傳送至 AWS 帳戶的根使用者電子郵件地址。

![\[Amazon DocumentDB 主控台會顯示引擎修補程式升級的排程變更索引標籤。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/scheduled-changes.png)


收到此通知後，您可以選擇在排定的自動套用日期之前，將這些引擎修補程式自動套用到您的 Amazon DocumentDB 叢集。或者，您可以等待引擎修補程式在即將到來的維護時段自動套用 （預設選項）。

**注意**  
AHD 中通知**的狀態**會設為「進行中」，直到發行具有新引擎修補程式版本的新 Amazon DocumentDB 引擎修補程式為止。  
將引擎修補程式套用至 Amazon DocumentDB 叢集後，叢集的引擎修補程式版本將會更新，以反映通知中的版本。您可以執行 `db.runCommand({getEngineVersion: 1})`命令來驗證此更新。

AWS Health 也與 Amazon EventBridge 整合，其使用事件來建置可擴展的事件驅動型應用程式，並與超過 20 個目標整合 AWS Lambda，包括 Amazon Simple Queue Service (SQS) 等。您可以在引擎修補程式可供使用之前，使用`AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_SCHEDULED`事件代碼來設定 Amazon EventBridge。您可以設定 EventBridge 來回應事件和自動執行動作，例如擷取事件資訊、啟動其他事件、透過其他管道傳送通知，例如推送通知到 AWS Console Mobile Application，以及在 Amazon DocumentDB 引擎修補程式在您的區域可用時採取修正或其他動作。

在 Amazon DocumentDB 取消引擎修補程式的罕見情況下，您將收到 AHD 通知以及一封電子郵件，通知您有關取消的資訊。因此，您可以使用`AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_CANCELLED`事件代碼來設定 Amazon EventBridge 來回應此事件。檢視 *Amazon EventBridge 使用者指南*，進一步了解如何使用 [Amazon EventBridge 規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)。

## 檢視待定的 Amazon DocumentDB 維護動作
<a name="view-pending-maintenance"></a>

您可以使用 AWS 管理主控台 或 來檢視叢集是否可使用維護更新 AWS CLI。

如有更新可用，您可執行下列操作之一：
+ 延遲目前排程用於下一個維護時段的維護動作 （僅適用於作業系統修補程式）。
+ 立即套用維護動作。
+ 排程在下次的維護時段啟動維護動作。

**注意**  
如果您不採取任何動作，引擎修補程式等必要的維護動作將會自動套用到即將到來的排程維護時段。

維護時段會判斷待定的操作何時開始，但不限制這些操作的總執行時間。

------
#### [ Using the AWS 管理主控台 ]

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

1. 在導覽窗格中，選擇**叢集**。

1. 如果有可用的更新，則會以 Amazon DocumentDB 主控台上叢集的**維護**欄中的**可用**、**必要**或**下一個視窗**一詞表示，如下所示：  
![\[Amazon DocumentDB 主控台顯示叢集的維護資料欄。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-maintenance-updates-status.png)

1. 若要採取動作，請選擇叢集以顯示其詳細資訊，然後選擇**維護和備份**。**待定維護**項目隨即出現。  
![\[Amazon DocumentDB 主控台顯示叢集維護時段。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cluster-maint-3.png)

------
#### [ Using the AWS CLI ]

使用下列 AWS CLI 操作來判斷待定的維護動作。此處的輸出顯示無待定的維護動作。

```
aws docdb describe-pending-maintenance-actions
```

此操作的輸出將會如下所示 (JSON 格式)。

```
{
    "PendingMaintenanceActions": []
}
```

------

## Amazon DocumentDB 引擎更新
<a name="db-instance-updates-apply"></a>

使用 Amazon DocumentDB，您可以選擇何時套用維護操作。您可以使用 AWS 管理主控台 或 來決定 Amazon DocumentDB 何時套用更新 AWS CLI。

使用本主題中的程序，立即升級或排程叢集的升級。

------
#### [ Using the AWS 管理主控台 ]

您可以使用 主控台來管理 Amazon DocumentDB 叢集的更新。

**管理叢集的更新**

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

1. 在導覽窗格中，選擇**叢集**。

1. 在叢集清單中，選擇您要套用維護操作之叢集名稱旁的按鈕。

1. 在 **Actions (動作)** 選單上，選擇下列其中一項：
   + **Upgrade now (立即升級)**，立即執行待處理的維護任務。
   + **Upgrade at next window (在下一個時段升級)**，在叢集的下一個維護時段執行待處理的維護任務。

   或者，您可以在叢集維護**和備份**索引標籤的待定維護區段中，按一下**立即套用**或在**下一個維護時段套用** （請參閱上一節中的**使用 AWS 管理主控台** )。
**注意**  
如果沒有待定的維護任務，上述所有選項都會處於非作用中狀態。

------
#### [ Using the AWS CLI ]

若要將待定更新套用至叢集，請使用 `apply-pending-maintenance-action` AWS CLI 操作。

**Parameters**
+ **--resource-identifier**- 套用待定維護動作之資源的 Amazon DocumentDB Amazon Resource Name (ARN)。
+ **--apply-action**- 要套用至此資源的待定維護動作。

  有效值：`system-update` 和 `db-upgrade`。
+ **--opt-in-type**- 指定選擇加入請求類型的值，或復原選擇加入請求。無法復原 `immediate` 類型的選擇使用請求。

  有效值：
  + `immediate`- 立即套用維護動作。
  + `next-maintenance`- 在資源的下一個維護時段套用維護動作。
  + `undo-opt-in`- 取消任何現有的`next-maintenance`選擇加入請求。

**Example**  
針對 Linux、macOS 或 Unix：  

```
aws docdb apply-pending-maintenance-action \
    --resource-identifier arn:aws:rds:us-east-1:123456789012:db:docdb \
    --apply-action system-update \
    --opt-in-type immediate
```
針對 Windows：  

```
aws docdb apply-pending-maintenance-action ^
    --resource-identifier arn:aws:rds:us-east-1:123456789012:db:docdb ^
    --apply-action system-update ^
    --opt-in-type immediate
```

若要傳回至少有一個待處理更新的資源清單，請使用 `describe-pending-maintenance-actions` AWS CLI 命令。

**Example**  
針對 Linux、macOS 或 Unix：  

```
aws docdb describe-pending-maintenance-actions \
    --resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb
```
針對 Windows：  

```
aws docdb describe-pending-maintenance-actions ^
    --resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb
```
此操作的輸出將會如下所示 (JSON 格式)。  

```
{
    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:001234567890:cluster:sample-cluster",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "system-update",
                    "CurrentApplyDate": "2019-01-11T03:01:00Z",
                    "Description": "db-version-upgrade",
                    "ForcedApplyDate": "2019-01-18T03:01:00Z",
                    "AutoAppliedAfterDate": "2019-01-11T03:01:00Z"
                }
            ]
        }
    ]
}
```

您也可以指定 `describe-pending-maintenance-actions` AWS CLI 操作的 `--filters` 參數，傳回叢集的資源清單。`--filters` 操作的格式為 `Name=filter-name,Values=resource-id,...`。

`db-cluster-id` 是篩選條件的 `Name` 參數可接受的值。此值接受叢集識別符或 ARNs的清單。在系統所傳回的叢集待處理維護動作清單中，只會包含以這些識別碼或 ARN 識別的項目。

下方範例將傳回 `sample-cluster1` 與 `sample-cluster2` 叢集的待處理維護動作。

**Example**  
針對 Linux、macOS 或 Unix：  

```
aws docdb describe-pending-maintenance-actions \
   --filters Name=db-cluster-id,Values=sample-cluster1,sample-cluster2
```
針對 Windows：  

```
aws docdb describe-pending-maintenance-actions ^
   --filters Name=db-cluster-id,Values=sample-cluster1,sample-cluster2
```

------

### 套用日期
<a name="db-instance-updates-apply-date"></a>

每個維護動作都有各自的套用日期，您可以在描述待定維護動作時找到。當您從 讀取待定維護動作的輸出時 AWS CLI，會列出三個日期。這些日期值是在維護為選用`null`時。這些值會在排程或套用對應的維護動作時填入。
+ **CurrentApplyDate**- 將立即或在下一個維護時段套用維護動作的日期。
+ **ForcedApplyDate**- 自動套用維護的日期，與您的維護時段無關。
+ **AutoAppliedAfterDate**- 在叢集的維護時段期間套用維護的日期。

## 使用者啟動的更新
<a name="user-initiated-updates"></a>

身為 Amazon DocumentDB 使用者，您可以啟動叢集或執行個體的更新。例如，您可以將執行個體的類別修改為具有更多或更少記憶體的類別，也可以變更叢集的參數群組。Amazon DocumentDB 檢視這些變更的方式與 Amazon DocumentDB 啟動的更新不同。如需修改叢集或執行個體的詳細資訊，請參閱下列內容：
+ [修改 Amazon DocumentDB 叢集](db-cluster-modify.md)
+ [修改 Amazon DocumentDB 執行個體](db-instance-modify.md)

若要查看待定的使用者啟動修改內容清單，請執行下列命令。

**Example**  
**查看執行個體的待定使用者啟動變更**  
針對 Linux、macOS 或 Unix：  

```
aws docdb describe-db-instances \
    --query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'
```
針對 Windows：  

```
aws docdb describe-db-instances ^
    --query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'
```
此操作的輸出將會如下所示 (JSON 格式)。  
在本案例中，`sample-cluster-instance` 有 `db.r5.xlarge` 執行個體類別的待定變更，而 `sample-cluster-instance-2` 沒有待定變更。  

```
[
    [
        "sample-cluster",
        "sample-cluster-instance",
        {
            "DBInstanceClass": "db.r5.xlarge"
        }
    ],
    [
        "sample-cluster",
        "sample-cluster-instance-2",
        {}
    ]
]
```

## 管理您的 Amazon DocumentDB 維護時段
<a name="maintenance-window"></a>

每個執行個體和叢集​的維護時段為每週一次，在此期間會套用任何待定的變更。維護時段可以在請求或要求事件中，控制修改及軟體修補作業的時機。若在特定某週排定維護事件，系統將在您指定的 30 分鐘維護時段內啟動該事件。此外，多數維護事件也能在 30 分鐘的維護時段內完成，但較大型的維護事件可能需要 30 分鐘以上才能完成。

30 分鐘的維護時段是從每個區域之 8 小時時段內隨機選取的。如果您在建立執行個體或叢集時未指定偏好的維護時段，Amazon DocumentDB 會在一週中隨機選取一天指派 30 分鐘的維護時段。

下表列出每個區域的時段，預設維護時段會從此時段中指派。


| 區域名稱 | 區域 | UTC 時間區塊 | 
| --- | --- | --- | 
| 美國東部 (俄亥俄) | us-east-2 | 03:00-11:00 | 
| 美國東部 (維吉尼亞北部) | us-east-1 | 03:00-11:00 | 
| 美國西部 (奧勒岡) | us-west-2 | 06:00-14:00 | 
| Africa (Cape Town) | af-south-1 | 03：00–11：00 | 
| 亞太地區 (香港) | ap-east-1 | 06:00-14:00 | 
| 亞太地區 (海德拉巴) | ap-south-2 | 06：30–14：30 | 
| 亞太地區 (馬來西亞) | ap-southeast-5 | 13:00-21:00 | 
| 亞太區域 (孟買) | ap-south-1 | 06:00-14:00 | 
| 亞太地區 (大阪) | ap-northeast-3 | 12：00-20：00 | 
| 亞太區域 (首爾) | ap-northeast-2 | 13:00-21:00 | 
| 亞太區域 (新加坡) | ap-southeast-1 | 14：00-22：00 | 
| 亞太地區 (悉尼) | ap-southeast-2 | 12：00-20：00 | 
| 亞太地區 (雅加達) | ap-southeast-3 | 08：00-16：00 | 
| 亞太地區 (墨爾本) | ap-southeast-4 | 11：00-19：00 | 
| 亞太區域 (泰國) | ap-southeast-7 | 15：00-23：00 | 
| 亞太區域 (東京) | ap-northeast-1 | 13:00-21:00 | 
| 加拿大 (中部) | ca-central-1 | 03:00-11:00 | 
| 中國 (北京) | cn-north-1 | 06:00-14:00 | 
| 中國 (寧夏) | cn-northwest-1 | 06:00-14:00 | 
| 歐洲 (法蘭克福) | eu-central-1 | 21：00-05：00 | 
| 歐洲 (蘇黎世) | eu-central-2 | 02：00-10：00 | 
| 歐洲 (愛爾蘭) | eu-west-1 | 22:00-06:00 | 
| 歐洲 (倫敦) | eu-west-2 | 22:00-06:00 | 
| 歐洲 (米蘭) | eu-south-1 | 02：00-10：00 | 
| Europe (Paris) | eu-west-3 | 23：59-07：29 | 
| 歐洲 (西班牙) | eu-south-2 | 02：00–10：00 | 
| Europe (Stockholm) | eu-north-1 | 04：00–12：00 | 
| 墨西哥 (中部) | mx-central-1 | 03:00-11:00 | 
| 中東 (阿拉伯聯合大公國) | me-central-1 | 05：00–13：00 | 
| 南美洲 (聖保羅) | sa-east-1 | 00：00-08：00 | 
| 以色列 (特拉維夫) | il-central-1 | 04：00-12：00 | 
| AWS GovCloud （美國東部） | us-gov-east-1 | 17：00-01：00 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | 06:00-14:00 | 

### 變更 Amazon DocumentDB 維護時段
<a name="maintenance-windows"></a>

維護時段應落在使用量最低的時段，因此可能需要不時進行變更。除非系統套用變更 (例如擴展儲存操作或執行個體類別變更) 及要求停機，否則這段時間無法使用您的叢集或執行個體。而且無法使用的時間，僅為執行必要變更所需的最短時間。

對於資料庫引擎的升級，Amazon DocumentDB 會使用叢集偏好的維護時段，而不是個別執行個體的維護時段。

**變更維護時段**
+ 針對叢集：請參閱[修改 Amazon DocumentDB 叢集](db-cluster-modify.md)。
+ 針對執行個體：請參閱[修改 Amazon DocumentDB 執行個體](db-instance-modify.md)。

## Amazon DocumentDB 作業系統更新
<a name="os-system-updates"></a>

Amazon DocumentDB 叢集中的執行個體偶爾需要作業系統更新。Amazon DocumentDB 會將作業系統升級至較新的版本，以改善資料庫效能和客戶的整體安全狀態。作業系統更新不會變更 Amazon DocumentDB 執行個體的叢集引擎版本或執行個體類別。

建議您先更新叢集中的讀取器執行個體，然後更新寫入器執行個體，以最大化叢集的可用性。我們不建議同時更新讀取器和寫入器執行個體，因為發生容錯移轉時，可能會產生更長的停機時間。

Amazon DocumentDB 的大多數作業系統更新都是選用的，而且沒有要套用它們的設定日期。不過，如果您有一段時間沒有套用這些更新，它們最終可能會變成必要，並在執行個體的維護時段內自動套用。這是為了協助維護資料庫的安全狀態。為了避免任何非預期的停機時間，我們建議您在作業系統更新可用時立即套用到 Amazon DocumentDB 執行個體，並根據您的業務需求在方便的時間設定執行個體維護時段。

若要在新的選用更新可用時收到通知，您可以訂閱安全修補事件類別中的 RDS-EVENT-0230。如需訂閱 Amazon DocumentDB 事件的資訊，請參閱[訂閱 Amazon DocumentDB 事件訂閱](https://docs.aws.amazon.com/documentdb/latest/developerguide/event-subscriptions.subscribe.html)。

在叢集或執行個體上執行維護時，如果執行個體為主執行個體，可預期將會容錯移轉。為了提高可用性，我們建議您為 Amazon DocumentDB 叢集使用多個執行個體。如需詳細資訊，請參閱[Amazon DocumentDB 容錯移轉](failover.md)。

**注意**  
對於某些管理功能，Amazon DocumentDB 使用與 Amazon Relational Database Service (Amazon RDS) 共享的操作技術。

**重要**  
您的 Amazon DocumentDB 執行個體將在作業系統升級期間離線。您可以擁有多執行個體叢集，將叢集停機時間降至最低。如果您沒有多執行個體叢集，您可以選擇暫時建立叢集 （新增次要執行個體） 來執行此維護，然後在維護完成後刪除額外的讀取器執行個體 （次要執行個體的一般費用）。

**注意**  
為了履行各種合規義務，可能需要將所有選用與強制更新保持為最新的狀態。建議您在維護時段期間定期套用 Amazon DocumentDB 提供的所有更新。

您可以使用 AWS 管理主控台 或 AWS CLI 來判斷是否有可用的更新。

------
#### [ Using the AWS 管理主控台 ]

若要使用 判斷是否有可用的更新 AWS 管理主控台：

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

1. 在導覽窗格中，選擇**叢集**，然後選取執行個體。

1. 選擇**維護**。

1. 在**待定維護**區段中，尋找作業系統更新。

![\[Amazon DocumentDB 主控台顯示叢集的維護資料欄。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/maintenance-available-1.png)


您可以在**待定維護**區段中選取作業系統更新，然後按一下**立即套用**或在下一個維護時段套用。 ****如果維護值是**下一個視窗**，請選擇**延遲升級來延遲**維護項目。如果維護動作已經啟動，則無法延遲維護動作。

或者，您也可以按一下導覽窗格中的**叢集**，然後從**動作**功能表中選取**立即套用**或在**下一個維護時段套用**，從叢集清單中選擇執行個體。

------
#### [ Using the AWS CLI ]

若要使用 判斷是否有可用的更新 AWS CLI，請呼叫 `describe-pending-maintenance-actions`命令：

```
aws docdb describe-pending-maintenance-actions
```

```
{
  "ResourceIdentifier": "arn:aws:docdb:us-east-1:123456789012:db:mydb2",
  "PendingMaintenanceActionDetails": [
    {
      "Action": "system-update",
      "Description": "New Operating System update is available"
    }
  ]
}
```

------

作業系統更新專屬於 Amazon DocumentDB 引擎版本和執行個體類別。因此，Amazon DocumentDB 執行個體在不同時間接收或要求更新。當作業系統更新根據其引擎版本和執行個體類別可供執行個體使用時，更新會顯示在主控台中。它也可以透過執行 AWS CLI `describe-pending-maintenance-actions`命令或呼叫 `DescribePendingMaintenanceActions` API 操作來檢視。

如果您未執行 Amazon DocumentDB 引擎的最新叢集修補程式版本，則可能不會看到作業系統更新列為可用維護。若要檢視和管理作業系統更新，您應該先升級到最新的引擎修補程式版本。