升級資料庫子版本

本頁說明如何升級 MySQL 執行個體的次要版本。如要瞭解支援的版本,請參閱「資料庫版本和版本政策」。

資料庫供應商會在每個次要版本中發布新功能、安全性修補程式、錯誤修正和效能提升。此外,Cloud SQL 會在維護期間定期更新次要版本。

不過,MySQL 8.0 不支援降級。因此,例行維護不會自動升級子版本。建立執行個體時,您可以指定 MySQL 8.0 適用的 Cloud SQL 子版本,也可以稍後透過升級程序指定,本頁面將說明這兩種做法。

升級至新的 MySQL 8.0 子版本前,請先瞭解相關異動。請參閱 MySQL 8.0 版本資訊。 如果您使用 MySQL 5.6 或 5.7 適用的 Cloud SQL,Cloud SQL 會自動管理執行個體的次要版本。您佈建新執行個體時,Cloud SQL 會自動為執行個體設定最新的可用資料庫版本。在例行維護期間,Cloud SQL 會自動將執行個體升級至最新支援版本。

如要升級 MySQL 8.0 執行個體的資料庫子版本,請使用偏好的子版本更新執行個體,該版本必須高於已安裝的子版本。執行個體佈建完成後,就無法還原至未指定的小版本。

如果您執行的是 Cloud SQL Enterprise Plus 版本執行個體,次要版本升級作業完成時幾乎不需要停機

升級前

Cloud SQL 支援 MySQL 8.0 執行個體的子版本升級。 MySQL 8.0 不允許降級。因此,請先按照下列步驟操作,確保資料安全無虞,再升級主要執行個體。

  1. 選擇資料庫的目標次要版本

    gcloud

    如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell」。

    如要查看哪些次要資料庫版本可進行就地升級,請按照下列步驟操作:

    1. 執行下列指令。
    2. gcloud sql instances describe INSTANCE_NAME
         

      INSTANCE_NAME 替換為執行個體名稱。

    3. 在指令輸出內容中,找出標示為 upgradableDatabaseVersions 的區段。
    4. 每個子區段都會傳回可升級的資料庫版本。在每個子區段中,查看下列欄位。
      • name:資料庫版本字串,包含資料庫主要和次要版本,可用於 MySQL 適用的 Cloud SQL 次要版本就地升級。

    REST v1

    如要檢查哪些資料庫次要版本可進行就地升級,請使用 Cloud SQL Admin API 的 instances.get 方法。

    使用任何要求資料之前,請先替換以下項目:

    • INSTANCE_NAME:執行個體名稱。

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    REST v1beta4

    如要檢查哪些資料庫次要版本可進行就地升級,請使用 Cloud SQL Admin API 的 instances.get 方法。

    使用任何要求資料之前,請先替換以下項目:

    • INSTANCE_NAME:執行個體名稱。

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    如需 Cloud SQL 支援的資料庫版本完整清單,請參閱資料庫版本和版本政策

  2. 在測試環境中測試升級。

    1. 複製正式環境執行個體,做為暫存執行個體。 這會建立新的資料庫執行個體,並沿用相同的主要和次要版本。

    2. 在測試執行個體上執行子版本升級。

    3. 執行工作負載測試,確認升級成功,且應用程式運作正常。測試成功後,請繼續升級唯讀副本執行個體。

  3. 升級唯讀備用資源執行個體。

    1. 升級資料庫中的所有讀取副本,使其達到目標子版本。

    2. 確認應用程式運作正常。

  4. 備份主要執行個體。

    與任何重大資料庫更新一樣,請備份主要執行個體。

升級子版本

您可以使用 gcloud 或 REST API,指定現有執行個體的資料庫次要版本。請在資料庫未使用時執行子版本升級。如果執行個體需要重新啟動,執行個體就會停機一段時間。Cloud SQL Enterprise Plus 版執行個體幾乎無須停機。如果已安裝的版本高於要求版本,系統就會拒絕要求。

gcloud

使用 gcloud sql instances patch 指令並加上 --database-version 旗標。

執行指令前,請先替換下列變數:

  • INSTANCE_NAME:執行個體的名稱。
  • DATABASE_VERSION:執行個體的資料庫版本。如未指定這個標記,系統會使用預設的主要版本。
gcloud sql instances patch INSTANCE_NAME \
   --database-version=DATABASE_VERSION

REST v1

使用 PATCH 要求、 instances:patch 方法和 databaseVersion 旗標。

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID
  • DATABASE_VERSION:要升級的資料庫版本。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "databaseVersion": "DATABASE_VERSION"
}

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

使用 PATCH 要求、 instances:patch 方法和 databaseVersion 旗標。

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID
  • DATABASE_VERSION:要升級的資料庫版本。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "databaseVersion": "DATABASE_VERSION"
}

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE-ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

檢查已安裝的資料庫子版本

查看執行個體摘要資訊時,「設定」部分會顯示已安裝的資料庫次要版本。

復原升級

測試升級時,如果發現問題,您可能需要將資料庫復原,以還原執行先前子版本的資料庫執行個體。

如要還原升級前的備份資料,請完成下列步驟:

  1. 在先前的子版本上佈建復原資料庫執行個體。
  2. 將復原資料庫執行個體的設定還原至升級前狀態。
  3. 將升級前建立的備份還原至復原執行個體。

除了還原備份,您也可以執行時間點復原並建立新執行個體。