本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
維護 Amazon DocumentDB
Amazon DocumentDB 會定期執行兩種維護:
-
叢集維護會更新資料庫引擎。引擎更新包含安全性修正、錯誤修正、新功能和其他引擎增強功能。
-
執行個體維護會更新執行個體上的作業系統 (OS)。
引擎修補程式和作業系統更新使用相同的三個生命週期類別 - 選用、必要和強制 - 具有相同的通知,並為每個類別套用行為。引擎版本也有第四個類別:次要版本,您可以手動升級至 。類別為:
-
選用 - 包含非關鍵改進。沒有自動套用日期,也沒有 AHD 通知;在適合您時套用。(對於作業系統更新,您可以訂閱
RDS-EVENT-0230,以便在有可用時收到通知。) -
必要 - 包含安全性和其他重要修正。您透過 Health 儀板表 (AHD) 和電子郵件收到通知。必要的動作會在叢集或執行個體維護時段後自動套用
AutoAppliedAfterDate。您可以在該日期之前變更維護時段,以延遲。 -
強制 - 罕見、高度關鍵的修正。在維護時段之後自動套用到維護時段之外
ForcedApplyDate。Amazon DocumentDB 只會指定在沒有其他選項可用時強制執行的動作。 -
次要版本 (僅限引擎版本) — 主要版本上的編號引擎版本 (例如
5.0.1)。使用者驅動:您可以透過修改叢集的引擎版本進行升級。永不自動套用;無 AHD 通知。次要版本不會針對 5.0 之前的主要版本發佈。
引擎修補程式會發佈至單一類別 (選用、必要或強制),並保留在其中。作業系統更新進度:大多數會以選用方式開始,如果未套用,則轉換為必要且最終強制。確切的計時取決於修補程式,並發佈在 AHD 通知中,以及 傳回的日期欄位 describe-pending-maintenance-actions(請參閱 套用日期)。Amazon DocumentDB 版本備註會在宣布引擎變更時使用這些類別名稱。
套用任何引擎修補程式會使叢集短暫離線。本主題的其餘部分會逐步解說維護時段的運作方式、如何尋找待定工作、如何套用引擎修補程式和次要版本、作業系統更新的運作方式,以及全域叢集的特殊處理方式。
主題
引擎版本編號
Amazon DocumentDB 使用兩個不同的版本識別符:
-
引擎版本 - 格式的三部分編號
(例如,major.major.minor5.0.0或5.0.1)。前兩個部分 (5.0) 是 MongoDB 相容性版本;第三個部分是次要版本,當 Amazon DocumentDB 發佈包含錯誤修正和非重大改進的次要版本時遞增。這是您在建立或升級叢集時指定的版本。 -
引擎修補程式版本 - 格式的個別三部分編號
(例如major.0.patch3.0.17983),用於識別套用至叢集的修補程式層級。中間位數一律為0。修補程式版本包含重要的安全性和穩定性修正。
您可以從引擎修補程式版本的字首判斷引擎版本,如下表所示。
| 引擎修補程式版本字首 | Amazon DocumentDB 引擎版本 |
|---|---|
1.0. |
3.6 |
2.0. |
4.0 |
3.0. |
5.0 |
4.0. |
8.0 |
若要檢查叢集正在執行的修補程式版本,請連接並執行 db.runCommand({getEngineVersion: 1})。
如需發行的引擎修補程式版本清單以及每個版本包含的內容,請參閱 版本備註。
管理您的 Amazon DocumentDB 維護時段
每個叢集和每個執行個體都有自己的每週 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 維護時段
選擇您可以的最低流量時段,並在流量模式轉移時隨著時間進行調整。只有在系統變更 - 例如擴展儲存操作或執行個體類別變更 - 需要中斷,且只要該變更實際需要,叢集或執行個體才會在時段內無法使用。
變更維護時段
-
針對叢集:請參閱修改 Amazon DocumentDB 叢集。
-
針對執行個體:請參閱修改 Amazon DocumentDB 執行個體。
Amazon DocumentDB 引擎修補程式的通知
當 AWS 區域中可用的必要引擎修補程式時,在該區域中具有受影響 Amazon DocumentDB 叢集的每個 AWS 帳戶都會透過電子郵件 Health 儀板表 (AHD) 和 (傳送至 AWS 帳戶的根使用者地址) 收到通知。每個受影響的 Amazon DocumentDB 引擎版本都會傳送一個通知。您可以在 AHD 中的排程變更下找到它們。每個通知都會列出修補程式可用性時間、自動套用排程、受影響的叢集,以及版本備註。
通知會在自動套用視窗開啟前大約兩天發出。例如,週一 00:00 UTC 發行的必要修補程式,在週三 00:00 UTC 符合自動套用的資格。如果您叢集的維護時段是星期三 12:00 UTC,則修補程式會在自動套用時段開啟後約 12 小時,於星期三自動套用。如果您的維護時段是星期二 12:00 UTC,則修補程式會等待整週再自動套用。
收到通知後,您有兩個選項:在自動套用日期之前自行套用修補程式,或在即將到來的維護時段 (預設值) 等待它自動套用。若要自行套用,請開啟叢集的維護與備份索引標籤,並尋找類型 的項目system-update。
注意
AHD 中的通知狀態會保持進行中,直到 Amazon DocumentDB 發行另一個具有新修補程式版本的引擎修補程式為止。
套用修補程式後,叢集的引擎修補程式版本會更新以符合通知中的版本。執行 驗證新版本db.runCommand({getEngineVersion: 1})。
選用修補程式和新的次要版本不會產生 AHD 或電子郵件通知。若要追蹤它們,請觀看 Amazon DocumentDB 版本備註。
強制修補程式 (最罕見的類別,預留給最關鍵的安全性修正) 也會透過 AHD 和電子郵件宣布。與必要的修補程式不同,它們會在維護時段之外套用,因此上述自動套用計時範例不適用。
以程式設計方式回應修補程式通知
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 使用者指南》。
檢視待定的 Amazon DocumentDB 維護動作
使用 AWS 管理主控台 或 AWS CLI 來檢查叢集或執行個體的待定維護。
待定更新會以動作類型 顯示system-update,其中涵蓋引擎修補程式和作業系統更新。
當更新處於待定狀態時,您可以:
-
立即套用。
-
排程下一個維護時段。
-
透過在 之前變更維護時段來推遲它 (僅限引擎修補程式和作業系統更新)
AutoAppliedAfterDate。在該日期過後,動作會在下一個維護時段自動套用。一旦ForcedApplyDate通過,就無法再延遲。
注意
如果您不採取任何動作,則需要執行必要的維護動作,例如在即將到來的維護時段自動套用所需的引擎修補程式。選用的修補程式和次要版本永遠不會自動套用。
維護時段控制待定操作開始的時間,而不是完成所需的時間。
套用日期
每個待定維護動作最多會套用三個套用日期。它們會出現在 的 AWS CLI 輸出中describe-pending-maintenance-actions,並指出動作何時執行。欄位null用於選用維護。
-
CurrentApplyDate- 動作排定執行時,現在或下一個維護時段。填入必要和強制動作。 -
AutoAppliedAfterDate- 在叢集或執行個體維護時段期間自動套用開始的日期。填入必要動作。 -
ForcedApplyDate- 硬性截止日期。在此日期之後,無論維護時段為何,動作都會自動執行。填入強制動作。
若要延遲待定動作,請將您的維護時段移至 之前的隔天AutoAppliedAfterDate。一旦AutoAppliedAfterDate通過,動作會在下一個維護時段自動套用。一旦ForcedApplyDate通過,就無法再延遲。每個修補程式的確切延遲時段各不相同;日期會發佈在 AHD 通知和 AWS CLI 輸出中。
Amazon DocumentDB 引擎更新
當您識別待定引擎修補程式時,請使用下列其中一個程序來套用或排程它。您可以從 AWS 管理主控台 或 執行這些程序 AWS CLI。
修補期間的讀取可用性
當叢集有多個執行個體時,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 就地主要版本升級。
修補程式停機時間長度
引擎修補停機時間會有所不同。最大的因素是修補時執行個體上的 CPU 使用率和記憶體壓力,因此正確調整執行個體的大小很重要。若要將停機時間降至最低,請執行最新的 Amazon DocumentDB 主要引擎版本,並將執行個體分散到多個可用區域。
修補程式更新和替換
Amazon DocumentDB 會在發行後監控修補程式。在極少數情況下,Amazon DocumentDB 會在準備更新版本時暫停推展。發生這種情況時,尚未收到修補程式的叢集不會再將其視為可用的維護動作,並且 Health 儀板表 會撤銷 中對應的排程變更通知。已執行受影響版本的叢集會繼續正常運作,不需要您採取任何動作。
稍後會更新修補程式。當您的 區域可用時,您會透過 Health 儀板表 和電子郵件收到新的通知,如中所述Amazon DocumentDB 引擎修補程式的通知。
次要版本升級
Amazon DocumentDB 會在主要版本 5.0 和更新版本 (例如 5.0.1) 上發佈次要版本。次要版本不會針對 5.0 之前的主要版本發佈。次要版本的行為與必要和選用的引擎修補程式不同:
-
它們不會顯示為待定的維護動作,也不會自動套用。
-
它們不會產生 AHD 或電子郵件通知。Amazon DocumentDB 版本備註中會宣布新的次要版本。
-
若要升級,您可以修改叢集的引擎版本 (立即或在下一個維護時段期間)。次要版本升級需要短暫的停機時間,且為單向 - 您無法降級至較早的次要版本。對於全域叢集,請在主要叢集之前升級次要叢集。
閱讀更多:Amazon DocumentDB 次要版本升級。
Amazon DocumentDB 作業系統更新
執行個體偶爾需要作業系統更新。Amazon DocumentDB 會更新作業系統,以改善效能並加強安全性。作業系統更新會讓叢集引擎版本和執行個體類別保持不變。與引擎修補程式一樣,作業系統更新使用本主題頂端所述的選用 / 必要 / 強制生命週期;與引擎修補程式不同,如果您延遲更新,作業系統更新可以隨著時間轉換這些類別。在作業系統更新可用時立即套用,並將執行個體維護時段設定為適合您業務的時間。
若要在新的選用更新送達時取得事件,請在安全修補事件類別RDS-EVENT-0230中訂閱 。如需詳細資訊,請參閱訂閱 Amazon DocumentDB 事件訂閱。收到通知後,您可以自行將作業系統修補程式套用至每個執行個體。
修補叢集時,請先更新讀取器執行個體,最後更新寫入器。避免同時修補讀取器和寫入器 - 修補期間的容錯移轉可能會延長停機時間。主要執行個體上的維護會觸發容錯移轉,因此每個叢集執行多個執行個體以保持可用。如需詳細資訊,請參閱Amazon DocumentDB 容錯移轉。
重要
您的 Amazon DocumentDB 執行個體會離線以進行作業系統升級。多執行個體叢集可將影響降至最低。如果您執行單一執行個體叢集,您可以暫時為升級新增次要叢集,並在之後將其移除。次要 會在存在時產生一般費用。
注意
為了合規,可能需要隨時掌握選用和必要的更新。在維護時段期間定期套用可用的更新。
作業系統更新與特定引擎版本和執行個體類別相關,因此不同的執行個體在不同時間符合資格。當執行個體符合資格時,更新會顯示在主控台中;您也可以透過 AWS CLI describe-pending-maintenance-actions命令或 DescribePendingMaintenanceActions API 來查看更新。
注意
如果您的叢集不在其 Amazon DocumentDB 引擎的最新修補程式版本上,作業系統更新可能不會顯示為可用。首先套用最新的引擎修補程式,然後再次檢查。
使用 AWS 管理主控台 或 AWS CLI 來檢查是否有可用的更新。
使用者啟動的更新
您自行開始的一些變更,例如,將執行個體類別換成具有更多或更少記憶體的執行個體類別,或變更叢集的參數群組。Amazon DocumentDB 的處理方式與其啟動的更新不同。如需詳細資訊,請參閱:
若要列出仍在等待中的使用者起始變更:
範例
列出執行個體的待處理使用者起始變更
針對 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",
{}
]
]全域叢集修補
在全域叢集中,每個成員叢集的主要和次要叢集都會在自己的維護時段升級。當每個區域都提供必要的引擎修補程式時,您會收到 AHD 和電子郵件通知。選用修補程式和新的次要版本不會產生通知;請查看 Amazon DocumentDB 版本備註。
如果您自行套用,一律先修補次要項目,最後修補主要項目。此順序可讓容錯移轉和切換在整個推出期間保持可用。
重要
如果您錯誤地先修補主要版本,請盡快將所有次要版本設為相同版本。容錯移轉和切換會保持停用狀態,直到每個叢集都位於相同版本。
如果您不採取任何動作,修補程式會在每個叢集的下一個維護時段自動套用:先執行次要作業,然後在次要作業完成後於其時段套用主要作業。
將主要和次要資料庫叢集保留在相同版本上。受管跨區域容錯移轉只有在每個叢集共用相同的引擎版本和修補程式層級時,才適用於全球資料庫。如果您新增使用較主要版本較新引擎版本的新次要 - 在主要版本上建立新的次要 ,再將其加入全域資料庫,則同樣適用。
修補程式通知之後,請盡早將主要和次要 升級至最新版本,以保持容錯移轉和切換運作。如果容錯移轉或切換請求遭到拒絕,請比較跨叢集的引擎修補程式版本;如果不相符,請在延遲叢集上套用可用的修補程式。