データベースのマイナー バージョンをアップグレードする

このページでは、インスタンスのデータベースのマイナー バージョンを設定する方法について説明します。

データベース プロバイダは、新しいマイナー バージョンごとに新機能、セキュリティ パッチ、バグ修正、パフォーマンス改善をリリースしています。また、Cloud SQL は、メンテナンス中にマイナー バージョンを定期的に更新しています。

ただし、MySQL 8.0 ではダウングレードがサポートされていません。そのため、マイナー バージョンのアップグレードは定期メンテナンスに自動的に含まれません。インスタンスの作成時またはアップグレード プロセスの実施中に、Cloud SQL for MySQL 8.0 のマイナー バージョンを指定できます。このページでは、その詳細を説明します。

MySQL 8.0 の新しいマイナー バージョンにアップグレードする前に、変更点を確認してください。MySQL 8.0 リリースノートをご覧ください。Cloud SQL for MySQL 5.6 または 5.7 の場合、Cloud SQL がインスタンスのマイナー バージョンを自動的に管理します。新しいインスタンスをプロビジョニングすると、Cloud SQL は、使用可能な最新のデータベース バージョンでインスタンスを自動的に構成します。Cloud SQL は、定期メンテナンス中にインスタンスをサポート対象の最新バージョンに自動的にアップグレードします。

MySQL 8.0 インスタンスのデータベースのマイナー バージョンをアップグレードするには、目的のマイナー バージョンでインスタンスを更新する必要があります。このバージョンは、現在インストールされているマイナー バージョンよりも大きくする必要があります。インスタンスのプロビジョニング後に、未指定のマイナー バージョンに戻すことはできません。

アップグレードする前に

MySQL 8.0 はダウングレードできません。したがって、プライマリ インスタンスをアップグレードする前に、次の手順でデータの安全性を確保してください。

  1. ステージング環境でアップグレードをテストします。

    1. ステージング インスタンスとして機能する本番環境インスタンスのクローンを作成します。これで、同じメジャー バージョンとマイナー バージョンで同じデータベース インスタンスが作成されます。

    2. ステージング インスタンスでマイナー バージョンのアップグレードを実行します。

    3. ワークロード テストを実行して、アップグレードが正常に完了し、アプリケーションが期待どおりに実行されることを確認します。テストが成功したら、リードレプリカ インスタンスのアップグレードに進みます。

  2. リードレプリカ インスタンスをアップグレードします。

    1. データベース内のすべてのリードレプリカを目的のマイナー バージョンにアップグレードします。

    2. アプリケーションが想定どおりに動作することを確認します。

  3. プライマリ インスタンスをバックアップします。

    重要なデータベースの更新と同様に、プライマリ インスタンスのバックアップを作成します。

マイナー バージョンをアップグレードする

既存のインスタンスのデータベース マイナー バージョンを指定するには、gcloud または REST API を使用します。マイナー バージョン アップグレードは、データベースが使用されていないときに実行します。オペレーションの途中でインスタンスが再起動されるため、ダウンタイムが発生します。現在インストールされているバージョンがリクエストされたバージョンよりも高い場合、リクエストは拒否されます。

gcloud

--database-version フラグを指定して、gcloud sql instances patch コマンドを実行します。

コマンドを実行する前に、次の変数を置き換えます。

  • INSTANCE_ID: インスタンス ID。
  • DATABASE_VERSION: インスタンスのデータベース バージョン。このフラグを指定しない場合は、デフォルトのメジャー バージョンが使用されます。
gcloud sql instances patch INSTANCE_NAME \
--database-version=DATABASE_VERSION

REST v1

instances:path メソッドと databaseVersion フラグを指定して PATCH リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT-ID: プロジェクト ID
  • INSTANCE-ID: インスタンス ID
  • DATABASE_VERSION: アップグレード先のデータベース バージョン。

HTTP メソッドと URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID

JSON 本文のリクエスト:

{
  "databaseVersion": "DATABASE_VERSION"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#operation",
  "targetLink": "https://content-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://content-sqladmin.googleapis.com/v1/projects/PROJECT-ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT-ID"
}

REST v1beta4

instances:path メソッドと databaseVersion フラグを指定して PATCH リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT-ID: プロジェクト ID
  • INSTANCE-ID: インスタンス ID
  • DATABASE_VERSION: アップグレード先のデータベース バージョン。

HTTP メソッドと URL:

 https://sqladmin.googleapis.com/v1beta4/projects/PROJECT-ID/instances/INSTANCE-ID

JSON 本文のリクエスト:

{
  "databaseVersion": "DATABASE_VERSION"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "kind": "sql#operation",
  "targetLink": "https://content-sqladmin.googleapis.com/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://content-sqladmin.googleapis.com/v1beta4/projects/PROJECT-ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT-ID"
}

データベースのマイナー インストール バージョンを確認する

インスタンスの概要情報を表示すると、データベースのマイナー インストール バージョンが [構成] セクションに表示されます。

アップグレードをロールバックする

アップグレードのテスト中に問題が発生した場合は、データベースをロールバックして、以前のマイナー バージョンを実行するデータベース インスタンスを復旧することをおすすめします。

アップグレード前のバックアップを復元するには、次の手順を行います。

  1. 以前のマイナー バージョンでリカバリ データベース インスタンスをプロビジョニングします。
  2. 復元データベース インスタンスをアップグレード前の状態に構成します。
  3. アップグレード前に作成したバックアップをリカバリ インスタンスに復元します。

その場合は、バックアップを復元する代わりに、ポイントインタイム リカバリを実行して、新しいインスタンスを作成してください。