升級至新主要版本

IBM Cloud® Databases for Elasticsearch 提供兩種不同的升級路徑:

  • 就地升級至新的主要版本(支援 Elasticsearch 企業計劃和 Elasticsearch 白金計劃)。
  • 從備份還原 ( Elasticsearch 企業計劃和 Elasticsearch 白金計劃支援)。

就地主要版本升級

就地主要版本升級可讓您將系統部署升級至下一個新的 主要版本,而無 需將備份還原 至新的部署。 此方法可維持相同的連線字串,無需重新設定部署。 但是,如果新的主要版本需要調整應用程式,則必須處理這些調整。

在原地主要版本升級視窗 (包括備份) 期間,部署會設定為 READ-ONLY 模式,僅允許對部署進行讀取作業,但不允許寫入作業,以確保安全升級。 您的資料庫短暫不可用是此管理服務原地升級的正常現象。 一旦部署的主要版本升級完成,READ-ONLY 模式即會移除。

執行原地主要版本升級時,有兩個選項:

  • 有備份的就地主要版本升級:此路徑在執行實際升級前建立備份,提供額外的安全層級 ( Elasticsearch Platinum Plan 的唯一選項)。

  • 無備份就地升級主要版本:此選項繼續進行升級,而不事先建立備份。 如果就地升級不成功,您需要從最新的備份還原部署到新的部署中。

    不建議在沒有備份的情況下就地升級。 如果升級在任何階段失敗,可能會導致資料遺失,因為沒有即時的備份可以還原。

開始之前

開始升級程序前,請考慮下列各方面。

  • 升級前,您的部署必須處於健康狀態。
  • 您的部署必須至少有 2 GB 可用磁碟空間。
  • 您只能升級到下一個主要版本,而不是指定您所選擇的版本。
  • 每個主要版本都包含一些可能無法與先前版本向後相容的功能。 查看資料庫供應商的 發行說明,以瞭解可能影響您的應用程式的任何變更。
  • 不支援將部署降級為先前的版本。
  • 原地主要版本升級一旦開始就無法取消。
  • 對於 Elasticsearch Platinum Edition,升級前必須至少有一個備份可用,以確保升級後可以進行備份。

在使用者介面中升級

  1. 建立新的 Databases for Elasticsearch 來測試升級程序。
    從版本相同的現有部署 還原備份,建立部署。

  2. 將暫存應用程式指向測試部署。
    更新您的暫存應用程式,以指向測試部署。 確認您的測試應用程式可以成功連線至暫存部署,且應用程式的運作符合預期。 對暫存環境執行任何所需的效能與作業測試。

  3. 按一下「總覽」頁面上的「升級主要版本」按鈕,升級測試部署的主要版本。
    這將使您的資料庫在升級過程完成時進入「僅讀」模式。 請注意升級完成所需的時間,以便您可以使用升級到期設定,將升級包含在維護視窗內。

  4. 確認您的暫存應用程式可以使用新的資料庫版本。
    如果您的應用程式正常運作,此步驟將確認您可以安全地升級生產資料庫。

  5. 將生產資料庫部署升級至新版本。
    當您確認應用程式使用新版本的資料庫後,就可以返回管理主控台,開始升級生產部署的程序。 在總覽頁面的部署詳細資訊部分,按一下升級主要版本按鈕,然後按步驟進行。

    就地升級程序一旦啟動,就無法停止或回退。 因此,萬一發生錯誤時,您的資料庫部署可能會變得無法復原。 因此,請建立一個備份,然後用於還原到新的部署。 如果選擇「使用備份就地升級主要版本」,建立的備份可用於在新部署中還原。

expiration for starting upgrade 允許您設定「超時」期限,升級工作必須在此期限內啟動,否則會自動取消。 此外,請先在暫存階段測試升級,以確保升級能在您所需的時間視窗內完成。 例如,如果您希望在 1 小時內完成升級,而您測試升級後知道升級需要 30 分鐘,那麼您的升級工作必須在您確認要升級後的 30 分鐘內開始。 因此,請將到期時間設定為 30 分鐘,如此一來,如果在這段時間內沒有啟動,就不會超過您的視窗。

透過 API 升級

使用下列指令就地升級:

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "8.0"}'

expiration for starting upgrade 允許您設定「超時」期限,升級工作必須在此期限內啟動,否則會自動取消。 此外,請先在暫存階段測試升級,以確保升級能在您所需的時間視窗內完成。 例如,如果您希望在 1 小時內完成升級,而您測試升級後知道升級需要 30 分鐘,那麼您的升級工作必須在您確認要升級後的 30 分鐘內開始。 因此,請將到期時間設定為 30 分鐘後的時間戳,如此一來,如果它沒有在這段時間內開始,就不會超過您的視窗。 到期時間必須在 5 分鐘(預設)到 24 小時之間。 如需詳細資訊,請參閱 Cloud Databases API

透過 CLI 升級

可用於 CDB 外掛程式版本 >= 0.20.0

若要檢視部署允許的升級和還原轉換清單,請參閱「升級和還原轉換」:

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

要使用所需參數升級指令:

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

若要檢視指令參數的完整詳細資訊:

ibmcloud cdb deployment-version-upgrade --help

expiration for starting upgrade 允許您設定「超時」期限,升級工作必須在此期限內啟動,否則會自動取消。 此外,請先在暫存階段測試升級,以確保升級能在您所需的時間視窗內完成。 例如,如果您希望在 1 小時內完成升級,而您測試升級後知道升級需要 30 分鐘,那麼您的升級工作必須在您確認要升級後的 30 分鐘內開始。 因此,請將到期時間設定為 30 分鐘,如此一來,如果在這段時間內沒有啟動,就不會超過您的視窗。 到期時間必須在 5 分鐘(預設)到 24 小時之間。 有兩種方法可以使用 CLI --expire-in--expire-at 設定到期時間。 如需更多資訊,請參閱該指令的說明。

透過 Terraform 升級

適用於 Terraform 提供者版本 >= 1.79.2

若要升級,只需在您的組態中新增或變更 version 值即可。 還有一個可選的 bool 標誌,version_upgrade_skip_backup,可以設定為跳過備份。

不建議跳過備份。 在版本升級前跳過備份是危險的,可能會導致資料遺失。 如果升級在任何階段失敗,將無法立即從備份還原。

在升級過程中,資料庫將進入「唯讀」模式。 強烈建議在升級前先進行測試。

升級可能需要比預設超時更長的時間。 可以使用 timeouts 屬性設定較長的逾時值。

Terraform 有超時而非到期時間戳記。 因此,請增加您的逾時時間,因為您的逾時更新值會被用作過期。 例如,如果您設定逾時為 20 分鐘,過期時間就會設定為 20 分鐘,如果在該時間內沒有開始升級,過期時間就會過期,升級也不會開始。 請注意,最長的過期時間為 24 小時 - 因此即使您設定 36 小時的逾時時間,如果在前 24 小時內尚未開始升級,升級也會過期。

如果正在進行升級,請注意某些任務可能已排成佇列,在版本升級完成之前不會繼續進行。

疑難排解

健康檢查

如果服務實例的資源不足,任務就會失敗,因為在這種情況下無法保證安全升級。 使用 監控整合 可評估資源消耗。 如果不是所有資料庫元件都可以升級,升級工作會失敗。

在開始 Elasticsearch 升級之前,驗證群集是否有足夠的資源以及是否處於健康狀態是非常重要的。 確保叢集的健康狀態為 GREEN。 確認磁碟使用率低於 85%,以避免因空間不足而導致升級失敗。 執行次要預先檢查,以偵測群集中的貶值。 如果發現貶值,升級程序會停止,必須在所有問題都解決後才能重新嘗試。

此問題可能因維護或資料庫使用而發生。 因健康檢查失敗而失敗的任務可以稍後再重試。 如果任務持續失敗,請開啟 IBM Cloud 支援 票單。

從備份還原

在資料庫的主要版本達到壽命終點 (EOL) 之前,從備份還原到新的資料庫實例,升級到下一個可用的主要版本。

準備在 EOL 日期前在最新版本上執行,然後遷移至最新版本。 如需詳細資訊,請參閱 版本政策

不支援回滾版本。

升級至 Elasticsearch 的最新版本,Databases for Elasticsearch。 從目錄頁面、Cloud Databases CLI 外掛程式指令、或 API 尋找最新版本。ibmcloud cdb deployables-show或 Cloud Databases API /deployables 端點。

升級是透過將資料的備份 還原 至新的部署來處理。 從備份還原有多種優點:

  • 原始資料庫會維持執行,正式作業工作則可以不間斷。
  • 您可以在正式作業之外測試新資料庫,並處理任何應用程式不相容。
  • 整個流程可在任何時候重新執行。
  • 進行一次全新的還原,可降低舊版資料庫中不必要的殘留資料被帶入新資料庫的機率。

升級路徑

主要版本升級路徑
現行版本 主要版本升級路徑
Elasticsearch 8.10 Elasticsearch 8.19
Elasticsearch 8.12 Elasticsearch 8.19
Elasticsearch 8.15 Elasticsearch 8.19
Elasticsearch 8.19 Elasticsearch 9.1

在使用者介面中升級

對於新的託管模式 (獨立運算和共用運算),可透過 CLIAPI 升級至新的主要版本。

您可以從 IBM Cloud 主控台上部署的 Backups and restore 頁面 還原備份,升級到新版本。 點擊備份上的 「恢復備份」 將在新分頁中開啟一個頁面,您可以在其中更改新部署的一些選項。 其中之一是資料庫版本,它會自動填入可供您升級的版本。 選擇版本,然後按一下還原備份,以啟動配置和還原程序。

透過 CLI 升級

當您透過 IBM Cloud CLI 從備份升級和還原時,請使用資源控制器上的佈建指令。

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>

參數 instance_name, service_id, service_plan_id,和 region 都是必需的。 您也可以在 JSON 物件中為 -p 提供版本和備份 ID 參數。 新部署的大小會自動與備份時的來源部署相同。

ibmcloud resource service-instance-create example-upgrade databases-for-elasticsearch enterprise us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":"8.0"
}'

透過 API 升級

與透過 API 進行佈建類似,您必須先完成 使用資源控制器 API 的必要步驟,才能使用它從備份升級。 然後向 API 傳送 POST 請求。 參數 name, target, resource_group,和 resource_plan_id 都是必需的。 同時提供版本和備份 ID。 新部署的記憶體和磁碟分配與備份時的來源部署相同。

curl -X POST   https://resource-controller.cloud.ibm.com/v2/resource_instances   -H 'Authorization: Bearer <>'   -H 'Content-Type: application/json'     -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-elasticsearch-enterprise",
    "backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":"8.0"
  }'

透過 Terraform 升級

使用 Terraform 將備份從舊版本還原到新版本。

  1. 設定您的 backup_id。 如需相關資訊,請參閱 backup_id
  2. 在版本屬性中設定您的 version。 如需相關資訊,請參閱 version

程式碼如下:

resource "ibm_database" "<your-instance>" {
  name                                 = "<your_database_name>"
  service                              = "databases-for-elasticsearch"
  plan                                 = "enterprise"
  location                             = "<region>"
  version                              = "<version>"
  backup_id                            = "<backup_id>"
}

如需詳細資訊,請參閱 Cloud Databases Terraform Registry。 另外,您也可以使用 Terraform IBM Modules(TIM) 從備份實體建立新的資料庫實體。 如需詳細資訊,請參閱 從備份還原範例