升級至新主要版本
IBM Cloud® Databases for Elasticsearch 提供兩種不同的升級路徑:
- 就地升級至新的主要版本(支援 Elasticsearch 企業計劃和 Elasticsearch 白金計劃)。
- 從備份還原 ( Elasticsearch 企業計劃和 Elasticsearch 白金計劃支援)。
就地主要版本升級
就地主要版本升級可讓您將系統部署升級至下一個新的 主要版本,而無 需將備份還原 至新的部署。 此方法可維持相同的連線字串,無需重新設定部署。 但是,如果新的主要版本需要調整應用程式,則必須處理這些調整。
在原地主要版本升級視窗 (包括備份) 期間,部署會設定為 READ-ONLY 模式,僅允許對部署進行讀取作業,但不允許寫入作業,以確保安全升級。 您的資料庫短暫不可用是此管理服務原地升級的正常現象。 一旦部署的主要版本升級完成,READ-ONLY 模式即會移除。
執行原地主要版本升級時,有兩個選項:
-
有備份的就地主要版本升級:此路徑在執行實際升級前建立備份,提供額外的安全層級 ( Elasticsearch Platinum Plan 的唯一選項)。
-
無備份就地升級主要版本:此選項繼續進行升級,而不事先建立備份。 如果就地升級不成功,您需要從最新的備份還原部署到新的部署中。
不建議在沒有備份的情況下就地升級。 如果升級在任何階段失敗,可能會導致資料遺失,因為沒有即時的備份可以還原。
開始之前
開始升級程序前,請考慮下列各方面。
- 升級前,您的部署必須處於健康狀態。
- 您的部署必須至少有 2 GB 可用磁碟空間。
- 您只能升級到下一個主要版本,而不是指定您所選擇的版本。
- 每個主要版本都包含一些可能無法與先前版本向後相容的功能。 查看資料庫供應商的 發行說明,以瞭解可能影響您的應用程式的任何變更。
- 不支援將部署降級為先前的版本。
- 原地主要版本升級一旦開始就無法取消。
- 對於 Elasticsearch Platinum Edition,升級前必須至少有一個備份可用,以確保升級後可以進行備份。
在使用者介面中升級
-
建立新的 Databases for Elasticsearch 來測試升級程序。
從版本相同的現有部署 還原備份,建立部署。 -
將暫存應用程式指向測試部署。
更新您的暫存應用程式,以指向測試部署。 確認您的測試應用程式可以成功連線至暫存部署,且應用程式的運作符合預期。 對暫存環境執行任何所需的效能與作業測試。 -
按一下「總覽」頁面上的「升級主要版本」按鈕,升級測試部署的主要版本。
這將使您的資料庫在升級過程完成時進入「僅讀」模式。 請注意升級完成所需的時間,以便您可以使用升級到期設定,將升級包含在維護視窗內。 -
確認您的暫存應用程式可以使用新的資料庫版本。
如果您的應用程式正常運作,此步驟將確認您可以安全地升級生產資料庫。 -
將生產資料庫部署升級至新版本。
當您確認應用程式使用新版本的資料庫後,就可以返回管理主控台,開始升級生產部署的程序。 在總覽頁面的部署詳細資訊部分,按一下升級主要版本按鈕,然後按步驟進行。就地升級程序一旦啟動,就無法停止或回退。 因此,萬一發生錯誤時,您的資料庫部署可能會變得無法復原。 因此,請建立一個備份,然後用於還原到新的部署。 如果選擇「使用備份就地升級主要版本」,建立的備份可用於在新部署中還原。
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 |
在使用者介面中升級
對於新的託管模式 (獨立運算和共用運算),可透過 CLI 和 API 升級至新的主要版本。
您可以從 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 將備份從舊版本還原到新版本。
程式碼如下:
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) 從備份實體建立新的資料庫實體。 如需詳細資訊,請參閱 從備份還原範例。