

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

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

Amazon DocumentDB 會定期執行兩種維護：
+ **叢集維護**會更新資料庫引擎。引擎更新包含安全性修正、錯誤修正、新功能和其他引擎增強功能。
+ **執行個體維護**會更新執行個體上的作業系統 (OS)。

引擎修補程式和作業系統更新使用相同的三個生命週期類別 - *選用*、*必要*和*強制* - 具有相同的通知，並為每個類別套用行為。引擎版本也有第四個類別：*次要版本*，您可以手動升級至 。類別包括：
+ **選用** - 包含非關鍵改進。沒有自動套用日期，也沒有 AHD 通知；在適合您時套用。（對於作業系統更新，您可以訂閱 `RDS-EVENT-0230`，以便在有可用時收到通知。)
+ **必要** - 包含安全性和其他重要修正。您透過 Health 儀板表 (AHD) 和電子郵件收到通知。必要的動作會在叢集或執行個體維護時段後自動套用`AutoAppliedAfterDate`。您可以在該日期之前變更維護時段來延遲。
+ **強制** - 罕見、高度關鍵的修正。在維護時段之後自動套用到維護時段之外`ForcedApplyDate`。Amazon DocumentDB 只會指定在沒有其他選項可用時強制執行的動作。
+ **次要版本** （僅限引擎版本） — 主要版本上的編號引擎版本 （例如 `5.0.1`)。使用者驅動：您可以透過修改叢集的引擎版本進行升級。永不自動套用；無 AHD 通知。次要版本不會針對 5.0 之前的主要版本發佈。

引擎修補程式會發佈至單一類別 （選用、必要或強制），並保留在其中。作業系統更新進度：大多數會以選用的開始，如果未套用，則轉換為必要和最終強制。確切的計時取決於修補程式，並發佈在 AHD 通知中，以及 傳回的日期欄位 `describe-pending-maintenance-actions`（請參閱 [套用日期](#db-instance-updates-apply-date))。Amazon DocumentDB [版本備註](https://docs.aws.amazon.com/documentdb/latest/devguide/release-notes.html)會在宣布引擎變更時使用這些類別名稱。

套用任何引擎修補程式會使叢集短暫離線。本主題的其餘部分會逐步解說維護時段的運作方式、如何尋找待定工作、如何套用引擎修補程式和次要版本、作業系統更新的運作方式，以及全域叢集的特殊處理方式。

**Topics**
+ [Amazon DocumentDB 的維護動作](#maintenance-actions)
+ [引擎版本編號](#engine-version-numbering)
+ [管理您的 Amazon DocumentDB 維護時段](#maintenance-window)
+ [Amazon DocumentDB 引擎修補程式的通知](#patch-notifications)
+ [檢視待定的 Amazon DocumentDB 維護動作](#view-pending-maintenance)
+ [Amazon DocumentDB 引擎更新](#db-instance-updates-apply)
+ [次要版本升級](#minor-version-upgrades)
+ [Amazon DocumentDB 作業系統更新](#os-system-updates)
+ [使用者啟動的更新](#user-initiated-updates)
+ [全域叢集修補](#global-clusters-patching)

## Amazon DocumentDB 的維護動作
<a name="maintenance-actions"></a>

下列維護動作適用於 Amazon DocumentDB 叢集：
+  `system-update` — 升級 Amazon DocumentDB 叢集的引擎修補程式。如需詳細資訊，請參閱[Amazon DocumentDB 引擎更新](#db-instance-updates-apply)。
+  `os-upgrade` — 使用滾動升級更新 Amazon DocumentDB 叢集中所有資料庫執行個體的作業系統。如需詳細資訊，請參閱[Amazon DocumentDB 作業系統更新](#os-system-updates)。

下列維護動作適用於 Amazon DocumentDB 執行個體：
+  `system-update` — 升級 Amazon DocumentDB 執行個體的作業系統。我們建議您改用叢集層級`os-upgrade`維護動作。如需詳細資訊，請參閱[Amazon DocumentDB 作業系統更新](#os-system-updates)。

## 引擎版本編號
<a name="engine-version-numbering"></a>

Amazon DocumentDB 使用兩個不同的版本識別符：
+ **引擎版本** - 格式的三部分編號 `{{major}}.{{major}}.{{minor}}`（例如， `5.0.0`或 `5.0.1`)。前兩個部分 (`5.0`) 是 MongoDB 相容性版本；第三個部分是次要版本，當 Amazon DocumentDB 發佈包含錯誤修正和非中斷改進的次要版本時遞增。這是您在建立或升級叢集時指定的版本。
+ **引擎修補程式版本** - 格式的個別三部分編號 `{{major}}.0.{{patch}}`（例如 `3.0.17983`)，用於識別套用至叢集的修補程式層級。中間位數一律為 `0`。修補程式版本包含重要的安全性和穩定性修正。

您可以從引擎修補程式版本的字首判斷引擎版本，如下表所示。


| 引擎修補程式版本字首 | Amazon DocumentDB 引擎版本 | 
| --- | --- | 
| 1.0.{{x}} | 3.6 | 
| 2.0.{{x}} | 4.0 | 
| 3.0.{{x}} | 5.0 | 
| 4.0.{{x}} | 8.0 | 

若要檢查叢集正在執行的修補程式版本，請連接並執行 `db.runCommand({getEngineVersion: 1})`。

如需發行的引擎修補程式版本清單以及每個版本包含的內容，請參閱 [版本備註](release-notes.md)。

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

每個叢集和每個執行個體都有自己的每週 30 分鐘維護時段，也就是排程修改和軟體修補執行的期間。大多數事件會在 30 分鐘內完成；較大的事件可能會執行更長的時間。

如果您在建立資源時未選擇時段，Amazon DocumentDB 會在隨機選取日期的 8 小時每日區塊內隨機指派一個時段。選擇將對應用程式的影響降至最低的時段，例如晚上或週末。

對於資料庫引擎升級，Amazon DocumentDB 會使用叢集的視窗，而不是個別執行個體的視窗。

下表顯示每個區域的預設時段。


| 區域名稱 | 區域 | 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 | 
| 加拿大西部 (卡加利) | ca-west-1 | 18：00-02：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 叢集](db-cluster-modify.md)。
+ 針對執行個體：請參閱[修改 Amazon DocumentDB 執行個體](db-instance-modify.md)。

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

當 AWS 區域中可用的*必要*引擎修補程式時，在該區域中具有受影響 Amazon DocumentDB 叢集的每個 AWS 帳戶都會透過電子郵件 Health 儀板表 (AHD) 和 （傳送至 AWS 帳戶的根使用者地址） 收到通知。每個受影響的 Amazon DocumentDB 引擎版本都會傳送一個通知。您可以在 AHD 中的**排程變更**下找到它們。每個通知都會列出修補程式可用性時間、自動套用排程、受影響的叢集，以及版本備註。

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


所需的引擎修補程式會遵循大約 30 天的單一前置時間。當您的 區域有可用的修補程式時，Amazon DocumentDB 會傳送上述通知。此時，修補程式的 `AutoAppliedAfterDate` 會在大約 30 天後設定為 。在該日期之前，修補程式會保持待定狀態：您可以隨時套用，或將叢集的維護時段移至稍後日期來延遲。在 或之後`AutoAppliedAfterDate`，修補程式會在叢集的下一個維護時段自動套用。

例如，在 2026 年 6 月 1 日可用的必要修補程式，其 `AutoAppliedAfterDate`大約是 2026 年 7 月 1 日。您會在 2026 年 6 月 1 日收到通知，而且如果您不採取任何動作，修補程式會在 2026 年 7 月 1 日當天或之後叢集的第一個維護時段內自動套用。

收到通知後，您有兩個選項：在自動套用日期之前自行套用修補程式，或在即將到來的維護時段 （預設值） 等待它自動套用。若要自行套用，請開啟叢集的**維護與備份**索引標籤，並尋找類型 的項目`system-update`。

**注意**  
AHD 中的通知**狀態**會持續**進行**，直到 Amazon DocumentDB 發行另一個具有新修補程式版本的引擎修補程式為止。  
套用修補程式後，叢集的引擎修補程式版本會更新以符合通知中的版本。執行 驗證新版本`db.runCommand({getEngineVersion: 1})`。

選用修補程式和新的次要版本不會產生 AHD 或電子郵件通知。若要追蹤它們，請觀看 Amazon DocumentDB [版本備註](https://docs.aws.amazon.com/documentdb/latest/devguide/release-notes.html)。

強制修補程式 （最罕見的類別，預留給最關鍵的安全性修正） 也會透過 AHD 和電子郵件宣布。與必要的修補程式不同，它們會在維護時段之外套用，因此上述自動套用計時範例不適用。

### 以程式設計方式回應修補程式通知
<a name="patch-notifications-eventbridge"></a>

AWS Health 與 Amazon EventBridge 整合，可讓您跨超過 20 個目標建置事件驅動型應用程式，包括 AWS Lambda 和 Amazon Simple Queue Service (SQS)。若要以程式設計方式對引擎修補程式可用性做出反應，請針對`AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_SCHEDULED`事件設定 EventBridge。您可以從那裡擷取事件資料、引發其他事件、透過 傳送推播通知 AWS Console Mobile Application，或採取您所需的任何其他動作。

如果 Amazon DocumentDB 取消修補程式 （罕見），您會收到 AHD 通知和有關取消的電子郵件。使用`AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_CANCELLED`事件碼搭配 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 來檢查叢集或執行個體的維護待定。

待定更新會以動作類型 顯示`system-update`，其中涵蓋引擎修補程式和作業系統更新。

當更新處於待定狀態時，您可以：
+ 立即套用。
+ 排程下一個維護時段。
+ 透過在 之前變更維護時段來推遲它 （僅限引擎修補程式和作業系統更新）`AutoAppliedAfterDate`。在該日期過後，動作會在下一個維護時段自動套用。一旦`ForcedApplyDate`通過，就無法再延遲。

**注意**  
如果您不採取任何動作，則需要執行必要的維護動作，例如在即將到來的維護時段自動套用所需的引擎修補程式。選用的修補程式和次要版本永遠不會自動套用。

維護時段控制待定操作*開始*的時間，而不是完成所需的時間。

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

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

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

1. 當更新待定時，叢集的**維護**欄會顯示**可用**、**必要**或**下一個時段**。  
![Amazon DocumentDB 主控台顯示叢集的維護資料欄。](https://docs.aws.amazon.com/zh_tw/documentdb/latest/devguide/images/db-cluster-maintenance-updates-status.png)

1. 開啟叢集，然後選擇**維護和備份**，以查看**待定的維護**項目並對其採取行動。  
![Amazon DocumentDB 主控台顯示叢集維護時段。](https://docs.aws.amazon.com/zh_tw/documentdb/latest/devguide/images/cluster-maint-3.png)

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

執行 `describe-pending-maintenance-actions`以查看待定項目。下列範例顯示沒有待處理動作的帳戶。

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

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

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

具有待定動作的帳戶會傳回如下所示的輸出：

```
{
    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "system-update",
                    "Description": "db-version-upgrade",
                    "CurrentApplyDate": "2026-05-15T03:01:00Z",
                    "AutoAppliedAfterDate": "2026-05-15T03:01:00Z"
                }
            ]
        }
    ]
}
```

您可以將清單範圍限定為具有 的特定叢集`--filters`，格式為 `Name={{filter-name}},Values={{resource-id}},...`。接受的篩選條件`Name`是 `db-cluster-id`，會取得叢集識別符或 ARNs的清單。

**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 輸出中`describe-pending-maintenance-actions`，並指出動作何時執行。欄位`null`用於選用維護。
+ **CurrentApplyDate**- 動作排定執行時，現在或下一個維護時段。填入必要和強制動作。
+ **AutoAppliedAfterDate**- 在叢集或執行個體維護時段期間自動套用開始的日期。填入必要動作。
+ **ForcedApplyDate**- 硬性截止日期。在此日期之後，無論維護時段為何，動作都會自動執行。填入強制動作。

若要延遲待定動作，請將您的維護時段移至 之前的隔天`AutoAppliedAfterDate`。一旦`AutoAppliedAfterDate`通過，動作會在下一個維護時段自動套用。一旦`ForcedApplyDate`通過，就無法再延遲。每個修補程式的確切延遲時段各不相同；日期會發佈在 AHD 通知和 AWS CLI 輸出中。

## Amazon DocumentDB 引擎更新
<a name="db-instance-updates-apply"></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. 選取您要更新的叢集。

1. 從**動作**功能表中，選擇：
   + **立即升級** - 立即執行待定維護。
   + **在下一個時段升級** - 在叢集的下一個維護時段執行。

   您也可以從叢集維護和備份索引標籤的**待定維護**區段，使用**立即套用**或在**下一個維護時段套用** （請參閱 [檢視待定的 Amazon DocumentDB 維護動作](#view-pending-maintenance))。 ****
**注意**  
如果沒有待處理項目，則所有這些選項都會處於非作用中狀態。

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

使用 套用待定更新`apply-pending-maintenance-action`。

**Parameters**
+ **--resource-identifier**- 待定動作目標之資源的 Amazon DocumentDB Amazon Resource Name (ARN)。
+ **--apply-action**- 要套用的待定維護動作。使用 `system-update` 套用引擎修補程式。
+ **--opt-in-type**- 選擇加入請求的類型，或是否要復原。有效值：
  + `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:{{sample-cluster-instance-1}} \
    --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:{{sample-cluster-instance-1}} ^
    --apply-action system-update ^
    --opt-in-type immediate
```

------

### 修補期間的讀取可用性
<a name="read-availability-during-patching"></a>

當叢集有多個執行個體時，Amazon DocumentDB 引擎 5.0 和 8.0 會在修補期間保留讀取可用性。Amazon DocumentDB 會以滾動方式在三個群組中修補讀取器執行個體，因此剩餘的讀取器會繼續為流量提供服務。寫入器在修補時短暫無法使用。若要實現零讀取停機時間，請設定您的讀取偏好設定，讓讀取可能會落回寫入器： `secondaryPreferred` 或 `primaryPreferred` 工作；`primary`或`secondary`單獨使用可能會導致讀取停機時間。


| 讀取偏好設定模式 | 在寫入器升級期間 | 在讀取器升級期間 | 零讀取停機時間所需的讀取器數目下限 | 
| --- | --- | --- | --- | 
| primary | 讀取/寫入停機時間 | 沒有影響 | N/A | 
| primaryPreferred | 寫入停機時間 | 沒有影響 | 1 | 
| secondary | 寫入停機時間 | 讀取停機時間 （如果只有一個讀取器） | 2 | 
| secondaryPreferred | 寫入停機時間 | 沒有影響 | 1 | 
| nearest | 寫入停機時間 | 沒有影響 | 1 | 

當讀取器進行修補時，整體叢集讀取輸送量會暫時下降。若要保持輸送量穩定，請在升級之前佈建其他讀取器，並在完成之後將其移除。

在引擎 3.6 和 4.0 上，這些讀取可用性功能不適用：引擎修補程式會導致更長的停機時間，這會影響讀取和寫入。若要升級至主要版本，請參閱 [Amazon DocumentDB 就地主要版本升級](docdb-mvu.md)。

### 修補程式停機時間長度
<a name="patch-downtime-length"></a>

引擎修補停機時間會有所不同。最大的因素是修補時執行個體上的 CPU 使用率和記憶體壓力，因此正確調整執行個體的大小至關重要。若要將停機時間降至最低，請執行最新的 Amazon DocumentDB 主要引擎版本，並將執行個體分散到多個可用區域。

### 修補程式更新和替換
<a name="disappearing-engine-patches"></a>

Amazon DocumentDB 會在發行後監控修補程式。在極少數情況下，Amazon DocumentDB 會在準備更新版本時暫停推展。發生這種情況時，尚未收到修補程式的叢集不會再將其視為可用的維護動作，並且 Health 儀板表 會撤銷 中對應的排程變更通知。已執行受影響版本的叢集會繼續正常運作，不需要您採取任何動作。

更新後的修補程式很快就會出現。當您的 區域可用時，您會透過 Health 儀板表 和電子郵件收到新的通知，如中所述[Amazon DocumentDB 引擎修補程式的通知](#patch-notifications)。

## 次要版本升級
<a name="minor-version-upgrades"></a>

Amazon DocumentDB 會在主要版本 5.0 和更新版本 （例如 `5.0.1`) 上發佈次要版本。次要版本不會針對 5.0 之前的主要版本發佈。次要版本的行為與必要和選用的引擎修補程式不同：
+ 它們不會顯示為待定的維護動作，也不會自動套用。
+ 它們不會產生 AHD 或電子郵件通知。Amazon DocumentDB [版本備註](https://docs.aws.amazon.com/documentdb/latest/devguide/release-notes.html)中會宣布新的次要版本。
+ 若要升級，請修改叢集的引擎版本 （立即或在下一個維護時段期間）。次要版本升級需要短暫的停機時間，且為單向 - 您無法降級至較早的次要版本。對於全域叢集，請在主要叢集之前升級次要叢集。

閱讀更多：[Amazon DocumentDB 次要版本升級](docdb-minor-version-upgrade.md)。

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

執行個體偶爾需要作業系統更新。Amazon DocumentDB 會更新作業系統，以改善效能並加強安全性。作業系統更新會讓叢集引擎版本和執行個體類別保持不變。與引擎修補程式一樣，作業系統更新使用本主題頂端所述的選用 / 必要 / 強制生命週期；與引擎修補程式不同，如果您延遲更新，作業系統更新可以隨著時間轉換這些類別。在作業系統更新可用時立即套用，並將叢集和執行個體維護時段設定為符合您業務需求的時間。

使用叢集層級`os-upgrade`維護動作，將作業系統更新套用至叢集中的所有執行個體。Amazon DocumentDB 會以滾動方式更新執行個體，一次更新幾個執行個體，最後更新主要執行個體，將容錯移轉降至最低。更新會在您設定的叢集維護時段執行，而非個別執行個體維護時段。

執行個體收到作業系統更新後，其緩衝區快取會開始空白。在從儲存磁碟區重新填入工作集之前，該執行個體上的查詢可能會遇到較高的延遲和較低的 `BufferCacheHitRatio`。

當 Amazon DocumentDB 更新主要執行個體時，容錯移轉會將複本提升為新的主要執行個體。使用叢集端點，讓您的應用程式以透明的方式處理。若要在執行個體更新時維持讀取可用性，請將您的讀取偏好設定設為 `secondaryPreferred`或 ，`primaryPreferred`讓讀取可以回到可用的執行個體。將潛在的容錯移轉目標 （具有最高優先順序層的複本） 保留在與主要執行個體相同的執行個體類別。這可避免提升後的寫入效能降低。如需詳細資訊，請參閱[Amazon DocumentDB 容錯移轉](failover.md)。

叢集層級`os-upgrade`和執行個體層級`system-update`動作可能會在 中同時顯示`describe-pending-maintenance-actions`為可用動作。不過，您無法同時排程兩者。如果在任何執行個體上主動排程執行個體層級`system-update`動作，您必須在排程叢集層級`os-upgrade`動作之前取消或完成這些動作，反之亦然。

**重要**  
您的 Amazon DocumentDB 執行個體會離線以進行作業系統更新。多執行個體叢集可將影響降至最低。如果您執行單一執行個體叢集，您可以暫時為更新新增次要叢集，並在之後將其移除。次要 會在存在時產生一般費用。

**注意**  
執行個體層級`system-update`動作仍可用於回溯相容性。如果您必須使用它，請先更新複本，最後更新主要複本，避免同時修補複本，因為在修補期間進行容錯移轉可能會延長停機時間。

若要在新的選用作業系統更新送達時取得事件，請在安全修補事件類別`RDS-EVENT-0230`中訂閱 。如需詳細資訊，請參閱[訂閱 Amazon DocumentDB 事件](event-subscriptions.subscribe.md)。

**注意**  
可能需要保持最新選用和必要的更新，才能合規。在維護時段期間定期套用`os-upgrade`動作。

作業系統更新與特定執行個體類別相關聯，因此不同的執行個體在不同時間符合資格。如果您的叢集不在最新的引擎修補程式上，作業系統更新可能不會出現，請先套用最新的引擎修補程式 （請參閱 [Amazon DocumentDB 引擎更新](#db-instance-updates-apply))。

使用 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. 選擇**維護與備份**索引標籤。

1. 在**待維護**下，如果作業系統更新可用，則會顯示 `os-upgrade`動作。  
![Amazon DocumentDB 維護和備份索引標籤顯示 os-upgrade 維護動作。](https://docs.aws.amazon.com/zh_tw/documentdb/latest/devguide/images/maintenance-available-1.png)

1. 選取`os-upgrade`動作，然後選擇**立即套用**或在**下一個維護時段套用**。如果值是**下一個視窗**，只要動作尚未啟動，您就可以延遲**延遲升級**。

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

檢查是否有待定的作業系統更新：

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

```
{
    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:aa-example-1:111122223333:cluster:sample-cluster",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "os-upgrade",
                    "Description": "New Operating System update is available"
                }
            ]
        },
        {
            "ResourceIdentifier": "arn:aws:rds:aa-example-1:111122223333:db:sample-cluster-instance-1",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "system-update",
                    "Description": "New Operating System update is available"
                }
            ]
        },
        {
            "ResourceIdentifier": "arn:aws:rds:aa-example-1:111122223333:db:sample-cluster-instance-2",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "system-update",
                    "Description": "New Operating System update is available"
                }
            ]
        }
    ]
}
```

作業系統更新在叢集層級顯示為 `os-upgrade`，在執行個體層級顯示為 `system-update`。使用叢集層級`os-upgrade`動作。

**Example**  
下列範例會立即套用作業系統更新。  
針對 Linux、macOS 或 Unix：  

```
aws docdb apply-pending-maintenance-action \
    --resource-identifier arn:aws:rds:{{aa-example-1}}:{{111122223333}}:cluster:{{sample-cluster}} \
    --apply-action os-upgrade \
    --opt-in-type immediate
```
針對 Windows：  

```
aws docdb apply-pending-maintenance-action ^
    --resource-identifier arn:aws:rds:{{aa-example-1}}:{{111122223333}}:cluster:{{sample-cluster}} ^
    --apply-action os-upgrade ^
    --opt-in-type immediate
```

------

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

您自行開始的一些變更，例如，將執行個體類別換成具有更多或更少記憶體的執行個體類別，或變更叢集的參數群組。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",
        {}
    ]
]
```

## 全域叢集修補
<a name="global-clusters-patching"></a>

在全域叢集中，每個成員叢集的主要和次要叢集都會在自己的維護時段升級。當每個區域都提供必要的引擎修補程式時，您會收到 AHD 和電子郵件通知。選用修補程式和新的次要版本不會產生通知；請查看 Amazon DocumentDB [版本備註](https://docs.aws.amazon.com/documentdb/latest/devguide/release-notes.html)。

如果您自行套用，一律先修補次要項目，最後修補主要項目。此順序可讓容錯移轉和切換在整個推出期間保持可用。

**重要**  
如果您錯誤地先修補主要版本，請盡快將所有次要版本更新為相同的版本。容錯移轉和切換會保持停用狀態，直到每個叢集都位於相同版本為止。

如果您不採取任何動作，修補程式會在每個叢集的下一個維護時段自動套用：先進行次要作業，然後在次要作業完成後於其時段套用主要作業。

將主要和次要資料庫叢集保留在相同版本上。受管跨區域容錯移轉只有在每個叢集共用相同的引擎版本和修補程式層級時，才適用於全球資料庫。如果您新增使用較主要版本較新引擎版本的新次要 - 在主要版本上建立新的次要 ，再將其加入全域資料庫，則同樣適用。

修補程式通知之後，請盡早將主要和次要 升級至最新版本，以保持容錯移轉和切換運作。如果容錯移轉或切換請求遭拒，請比較跨叢集的引擎修補程式版本；如果不相符，請在延遲叢集上套用可用的修補程式。