升級 MySQL 8.0 的資料庫子版本

MySQL 適用的 Cloud SQL 支援多個 MySQL 8.0 子版本,並在預設子版本 (比最新子版本早一個子版本) 上佈建 MySQL 8.0 執行個體。

資料庫供應商每次推出新的子版本,都會提供新功能、安全性修補程式、修正錯誤和效能改善項目。

MySQL 8.0 不支援降級。

自動升級

Cloud SQL 支援自動升級 MySQL 8.0 適用的 Cloud SQL 執行個體子版本,前提是執行個體搭載 MySQL 8.0.35 以上版本。

啟用自動升級子版本功能後,MySQL 8.0 適用的 Cloud SQL 執行個體會在定期排定的維護更新期間,自動升級至 MySQL 8.0 適用的 Cloud SQL 預設子版本。您不再需要手動升級子版本,即可讓 MySQL 適用的 Cloud SQL 執行個體保持最新狀態,並套用 MySQL 社群發布的最新安全性修補程式和錯誤修正。

子版本自動升級作業只會在定期排定的維護事件期間執行,不會在自助式維護期間執行。

為新執行個體啟用自動升級功能

建立新的 MySQL 8.0 適用的 Cloud SQL 執行個體時,請考量下列有關自動升級子版本的注意事項:

  • 如果您建立新的 MySQL 適用的 Cloud SQL 8.0 執行個體,但未選取子版本,則執行個體預設會啟用自動子版本升級功能。

  • 如果您建立 MySQL 8.0 適用的 Cloud SQL 執行個體,並選取 8.0.35 以上的子版本,則可在建立期間啟用子版本自動升級功能。

  • 如果您建立 MySQL 適用的 Cloud SQL 8.0 執行個體,並選取 8.0.34 以下的子版本,就無法啟用子版本自動升級功能。您必須手動升級執行個體的子版本。

為現有執行個體啟用自動升級功能

如果現有執行個體已安裝 MySQL 8.0.35 以上版本的 Cloud SQL,則可啟用執行個體的自動次要升級功能。

請按照下列步驟,為現有的 MySQL 8.0 執行個體啟用自動升級功能。這項程序不會升級執行個體。執行個體會在下次排定的維護作業期間,自動升級子版本。

控制台

如要為現有執行個體啟用 MySQL 8.0 自動升級功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 按一下 [編輯]。
  4. 在「Customize your instance」(自訂執行個體) 區段中,選取「Enable automatic minor version upgrades」(啟用子版本自動升級功能)。
  5. 按一下「儲存」。

gcloud

如要為現有執行個體啟用 MySQL 8.0 自動升級功能,請按照下列步驟操作:

  1. 執行下列指令:
  2. gcloud sql instances patch INSTANCE_NAME \
       --enable-auto-upgrade-minor-version
      

    將 INSTANCE_NAME 替換為執行個體名稱。

  3. 執行下列指令,檢查執行個體的中繼資料:
  4. gcloud sql instances describe INSTANCE_NAME
      

    將 INSTANCE_NAME 替換為執行個體名稱。

    在輸出內容中,找出 DatabaseType 欄位,並確認值已更新為 MYSQL_8_0。

檢查是否啟用自動次要升級

如要檢查執行個體是否已啟用子版本自動升級功能,請執行下列指令:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

將 INSTANCE_NAME 替換為執行個體名稱,並將 PROJECT_ID 替換為執行個體的專案 ID。在指令輸出內容中,找出下列欄位。

  • databaseVersion:值必須為 MYSQL_8_0
  • databaseInstalledVersion:值必須是等於或大於 MYSQL_8_0_35 的子版本

手動升級

本節說明如何手動升級 MySQL 8.0 適用的 Cloud SQL 執行個體子版本。如果您執行的是 MySQL 適用的 Cloud SQL 8.0.34 以下版本,則必須手動升級 MySQL 適用的 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"
}

查看資料庫安裝的子版本

查看執行個體摘要資訊時,您可以在「Configuration」(設定) 區段中看到資料庫次要安裝版本。

復原升級

測試升級時,如果發現問題,建議您復原資料庫,還原執行先前子版本的資料庫執行個體。

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

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

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