Amazon DocumentDB 就地主要版本升級 - Amazon DocumentDB

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

Amazon DocumentDB 就地主要版本升級

Amazon DocumentDB 只有在經過廣泛測試之後,才能使用新版本的資料庫引擎。您可以選擇將 Amazon DocumentDB 叢集升級到新版本的方式和時機。

目前,Amazon DocumentDB 支持三個主要版本:Amazon DocumentDB 3.6,4.0 和 5.0。您可以執行資料庫的就地主要版本升級 (MVU),同時保留叢集的相同端點、儲存區和標籤,並且可以繼續使用您的應用程式而無需進行任何修改。此功能在提供 Amazon DocumentDB 5.0 的所有區域均可免費使用。

重要

在就地主要版本升級期間,您的 Amazon DocumentDB 叢集將無法使用,而且您的叢集將會遇到多次重新啟動。升級停機時間可能因叢集、索引、資料庫和執行個體的數目而異。我們建議您在維護時段或使用率低時段執行升級。叢集升級後,您無法將叢集降級為舊版,但您可以選擇將升級前快照還原為新叢集。

MVU先決條件和限制

以下是您在執行升級之前可能需要瞭解並採取行動的就地主要版本升級的先決條件和限制:

  • 執行個體類型 — Amazon DocumentDB 4.0/5.0 不支援 r4.* 執行個體。若要繼續就地主要版本升級,請將 r4.* 執行個體修改為 r5.* 執行個體。如需更多資訊,請參閱修改 Amazon DocumentDB 實例。如需以 Amazon DocumentDB 引擎版本各區域的支援執行個體類別為基礎的支援執行個體,請參閱。

  • 執行個體作業系統修補程式 — 就地主要版本升級需要最新的作業系統 (OS) 修補程式才能繼續。在繼續就地升級之前,請對執行個體套用任何擱置中的作業系統維護動作。如需詳細資訊,請參閱Amazon DocumentDB 操作系統更新

    注意

    在某些情況下,如果您有擱置中的叢集層級引擎修補程式,則看不到執行個體 OS 修補程式。您可能需要先套用叢集層級引擎修補程式,才能繼續套用執行個體作業系統修補程式,然後再進行就地主要版本升級。請參閱 對叢集的引擎版本執行修補程式更新

  • 在提供 Amazon DocumentDB 5.0 的所有區域均提供就地主要版本升級。

  • 使用 Amazon DocumentDB 4.0 做為目標版本時,不支援就地主要版本升級。

  • 從 Amazon DocumentDB 4.0 開始,不支持用戶名中的「.」。如果您正在從 Amazon DocumentDB 3.6 升級到 5.0,並有一個用戶名包含」 。 「,請重新創建您的用戶名沒有」 。 「,在就地繼續之前MVU。

  • Amazon DocumentDB 全域叢集和彈性叢集目前不支援就地主要版本升級。

    注意

    若要升級全域叢集,請從全域叢集中刪除次要叢集、將主要叢集轉換為地區叢集、在地區 (主要) 叢集上執行就地主要版本升級,然後使用相同名稱新增次要叢集來重新建立全域叢集,以保留與先前相同的端點。請注意,當您升級的主要叢集將資料複寫到新增的次要叢集時,會產生 IO 費用。如需如何在刪除之前從全域叢集移除次要叢集的詳細步驟,請參閱從 Amazon DocumentDB 全域叢集中移除叢集

  • 如果您有大量索引 (>3,000) 在高載效能執行個體 (例如 t3.medium 或 t4g.medium) 中運作,您必須將主要執行個體擴展至較大的執行個體 (例如,至少 r5.large),才能執行就地主要版本升級。您可以選擇在就地主要版本升級完成後縮小例證大小。如需針對就地主要版本升級的 db.t3 和 db.t4g 執行個體類型所支援的索引數目上限,請參閱下表:

    執行個體 就地支援的最大索引 MVU

    db.t4g.medium

    3 公里

    db.t3.medium

    10K

就地主要版本升級的最佳作法

使用複製的叢集就地測試主要版本升級

  1. 若要測試就地主要版本升級,建議您使用快速複製功能來建立目標叢集的複製。除非您修改叢集上的任何資料,否則在複製的磁碟區上測試就地主要版本升級時,不會產生任何儲存體費用。如需磁碟區複製的詳細資訊,請參閱複製 Amazon DocumentDB 叢集的磁碟區

  2. 若要更實際地估計完成就地主要版本升級所花費的時間,請將複製叢集的執行個體計數與目標叢集相符。

  3. 我們建議您完全測試新升級的 Amazon DocumentDB 5.0 叢集是否有任何功能差異,以確保一切正常運作。

在就地主要版本升級之前

  1. 準備好與版本相容的叢集參數群組。

    針對新引擎版本使用 Amazon DocumentDB 預設叢集參數群組,或為新引擎版本建立自己的自訂叢集參數群組。

    如果您將 Amazon DocumentDB 叢集參數群組關聯為升級請求的一部分,就地主要版本升級將自動重新開機叢集以套用新的參數群組。

  2. 請確定您已符合 [必要條件和限制] 區段中所述的就地主要版本升級的先決條件。

  3. 建立手動快照。

    升級程序會在升級期間建立資料庫叢集的快照集。強烈建議您在升級程序之前建立自己的手動快照。請參閱 建立手動叢集快照

    注意

    升級程序建立的自動快照將不會在就地主要版本升級完成後自動刪除。只要在保留期內,此快照就不會產生任何費用。在確認成功升級叢集之後,您可以選擇刪除此快照。

    快照命名為preupgrade-<name>-<version>-<timestamp>

    影像:顯示先前建立之快照表格的快照導覽方塊。
  4. 檢查您是否已排程叢集的就地主要版本升級。

    如果您已修改叢集,並選取在下一個維護時段中套用叢集,就地主要版本升級排程將不會顯示在主控台上,但您可以在中檢視它CLI。您可以執行下列命令來檢查是否已排程就地主要版本升級:

    aws docdb describe-db-cluster \ --region $REGION \ --db-cluster-identifier $CLUSTER_NAME "PendingModifiedValues": { "EngineVersion": "5.0.0" },
  5. 在較低環境中使用磁碟區複製來執行多次乾式執行,以便在任何執行計畫和功能差異上就地主要版本升級後測試叢集。我們建議使用相同數量和大小的執行個體進行複製,以便更好地估計就地主要版本升級執行時間。如需詳細資訊,請參閱複製 Amazon DocumentDB 叢集的磁碟區

  6. 如果上一個步驟成功,請繼續在生產叢集上就地進行主要版本升級。

在就地主要版本升級期間

您可以透過訂閱叢集維護事件來監視就地主要版本升級的進度。升級完成後,您會收到「資料庫叢集主要版本已升級」事件。升級期間發生的這個事件和其他事件會出現在 Amazon DocumentDB 主控台中叢集詳細資料頁面的「事件和標籤」區段中。然後,叢集狀態會從「升級」變更為「可用」。

從中CLI,您可以執行aws docdb create-event-subscription以建立事件並監視aws docdb describe-events進度。您也可以將上述事件的事件通知設定 Amazon SNS 透過電子郵件、推送訊息和其他方法通知的目標。如需詳細資訊,請參閱訂閱 Amazon DocumentDB 事件

就地主要版本升級會在升級期間產生下列事件:

  • <cluster-name><timestamp>升級進行中:建立升級前快照 [升級前--]

  • 升級進行中:複製磁碟區。

  • 升級進行中:升級寫入器。

  • 升級進行中:升級讀者。

  • 資料庫叢集主要版本已升級。

事件也會顯示在主控台的「事件」(E vents) 頁面下方:

影像:顯示升級事件表格的「事件」導覽方塊。

在中 AWS CLI,您可以使用下列指令來追蹤進度:

aws docdb describe-events --source-identifier $CLUSTER_NAME --source-type db-cluster { "Events": [ { "SourceIdentifier": "mycluster", "SourceType": "db-cluster", "Message": "Database cluster engine version upgrade started.", "EventCategories": [ "maintenance" ], "Date": "2023-07-11T23:20:32.444000+00:00", "SourceArn": "arn:aws:rds:us-east-1:xxxx:cluster:mycluster" } ] }

在就地主要版本升級之後

對於 Amazon DocumentDB 3.6,請在叢集中新增一個標籤,以區分叢集已從 Amazon DocumentDB 3.6 升級到 Amazon DocumentDB 5.0,而不是新建立的 Amazon DocumentDB 5.0 叢集。請參閱有關已升級的 Amazon DocumentDB 5.0 叢集和新的 Amazon DocumentDB 5.0 叢集之間的差異章節。

如果您需要還原至升級後狀態,請在就地主要版本升級完成後建立手動快照。一旦就地主要版本升級完成,自動快照集程序將會繼續執行。只要手動快照在保留期間內,就不會產生任何費用。

若要使用與 Amazon DocumentDB 5.0 相關聯的新功能 (例如用戶端欄位層級加密),建議您將驅動程式版本升級至 MongoDB 5.0 版本。API如需詳細資訊,請參Amazon DocumentDB 5.0 中的新功能閱以取得 Amazon DocumentDB 5.0 功能的清單。

重要

在就地執行主要版本升級 (MVU) 之後,Amazon DocumentDB 5.0 叢集會立即重新填入索引中繼資料,並根據資料庫引擎優化查詢執行計劃的方式來重新填入索引中繼資料。完成索引中繼資料重新計算程序後,Amazon DocumentDB 叢集上的預期查詢效能將恢復。此程序通常會在幾分鐘內完成,但最多可持續兩小時,視叢集上的索引數目而定。

此外,在就地後立即重新啟動、容錯移轉或擴展/縮減寫入器執行個體MVU,可能會中斷叢集上的索引中繼資料計算程序。就地MVU完成之後,建議您在 Amazon DocumentDB 5.0 叢集上觀察到預期的查詢效能後進行這類變更。

如果您在就地MVU後發現此暫時性能下降 AWS 持續超過兩個小時,請聯繫支持人員。

完整測試升級後的 Amazon DocumentDB 5.0 叢集,確保一切正常運作。

注意

在已啟用變更串流的 Amazon DocumentDB 叢集MVU上就地執行之後,先前的變更串流事件會被保留,並且可以使用resumeToken或繼續。startAtOperationTime與任何新建立的 Amazon DocumentDB 叢集一樣,如果記錄大小大於 51,200MB,則變更早於change_stream_log_retention_duration刪除的串流事件日誌。

執行就地主要版本升級

Using the AWS Management Console

若要使用下列項目執行就地主要版本升級 AWS Management Console:

  1. 登入AWS Management Console並開啟 Amazon DocumentDB 主控台。

  2. 在「集」表格中,選取來源叢集,按一下動作,然後按一下修改

    影像:「叢集」導覽方塊顯示現有叢集連結及其對應的執行處理連結清單。
  3. 在 [叢集規格] 區段的 [修改叢集] 對話方塊中,從 [引擎版本] 下拉式功能表中選擇目標資料庫版本 (5.0)。

    影像:「修改叢集」對話方塊的「叢集規格」區段,顯示叢集識別碼和引擎版本欄位。
  4. 在 [叢集選項] 區段中,選擇適當的叢集參數群組 (default.docdb5.0) 或自訂建立的參數群組。

    影像:顯示叢集參數群組欄位的「修改叢集」對話方塊的「叢集選項」段落。
  5. 完成後,向下捲動並選擇「繼續」。

  6. 在「排定修改」區段中,選擇您偏好的排程計劃:立即套用或在下一個維護時段套用。

    然後選擇 Modify cluster (修改叢集)

    影像:「修改叢集」對話方塊會顯示所選叢集的摘要和修改排程。
  7. 在叢集表格中,記下叢集升級時的狀態:

    影像:「叢集」導覽方塊反白顯示要升級之叢集的「狀態」資料欄。
Using the AWS CLI

使用所需modify-db-clusterAPI的引擎版本和allow-major-version-upgrade標誌集:

aws docdb modify-db-cluster \ ‐‐db-cluster-identifier $CLUSTER_NAME \ ‐‐allow-major-version-upgrade \ ‐‐engine-version 5.0 \ ‐‐apply-immediately \ ‐‐cluster-parameter-group $PARAMETER_GROUP \ ‐‐region $REGION

Amazon DocumentDB 3.6/4.0 到 5.0 升級的集群和新的 Amazon DocumentDB 5.0 集群之間的差異

  • 多個數字數據類型的子文檔比較:

    • 如果叢集是從 Amazon DocumentDB 3.6 遷移,它將繼承 Amazon DocumentDB 檔 3.6 子文檔比較行為。功能差異僅限於子文檔中的數字類型(例如長,雙精度,小數 128)。例如,{a: {b: {NumberLong(1)}}{a: {b: 1}}在 Amazon DocumentDB 3.6 相等,而它們被比較為在 Amazon DocumentDB 4.0 和之後相等。

    • 此子文件比較行為僅存在於 Amazon DocumentDB 3.6 和使用就地主要版本升級從 3.6 版升級的 Amazon DocumentDB 5.0 叢集中。這不適用於新建立的 Amazon DocumentDB 5.0 叢集。

  • 就地主要版本升級會在升級的叢集上保留原始索引。一般而言,我們建議您在就地MVU順利完成後卸除並重新建立索引。透過 Amazon DocumentDB 5.0,我們提升了垃圾收集程序的整體效率,特別是對於低基數索引而言。如果您過去在 Amazon DocumentDB 3.6 或 4.0 叢集上遇到記憶體回收問題,那麼這些叢集將受益於刪除後重新建立索引。MVU重新建立索引不是必要條件。不過,重新建立索引可能需要額外的 I/O 和時間。如需詳細資訊,請參閱管理 Amazon DocumentDB 索引

注意

有關 Amazon DocumentDB 3.6/4.0 和 Amazon DocumentDB 5.0 之間的功能差異列表,請參閱。Amazon DocumentDB 與 MongoDB 的兼容性

就地主要版本升級的疑難排解

  • 如果發生故障,就地主要版本升級將嘗試復原升級,以假設開始升級之前叢集的最後一個作業狀態。成功的復原將產生一個事件:「資料庫叢集處於無法升級的狀態:DocumentDB 叢集處於無法順利完成主要版本升級的狀態。」 此時,您應該聯繫 AWS 支持團隊進行故障排除並重新嘗試版本升級。您可以像以前一樣繼續使用工作負載。在任何其他罕見的情況下,升級所花費的時間超過預期,請聯絡 AWS 支援團隊尋求協助。

  • 在就地順利MVU完成之後,在索引中繼資料重新整理程序正在執行時,升級的叢集可能會在一小段時間內遇到暫時性能降低和高CPU使用率。如果您持續超過 2 小時的效能降低,請連絡 AWS 支援人員。