Upgrade an instance to Cloud SQL Enterprise Plus edition by using in-place upgrade


This page shows you how to use the in-place upgrade method to upgrade a Cloud SQL Enterprise edition instance to Cloud SQL Enterprise Plus edition. Additionally, it also describes the procedure to switch a Cloud SQL Enterprise Plus edition instance to Cloud SQL Enterprise edition.

Upgrading to Cloud SQL Enterprise Plus edition provides you with several benefits and performance enhancements. For more information, see Introduction to Cloud SQL for PostgreSQL editions.

To enable these enhancements for your existing Cloud SQL Enterprise edition instances, you must upgrade them to Cloud SQL Enterprise Plus edition. The upgrade process takes a few minutes to complete and has near-zero downtime. Switching to Cloud SQL Enterprise edition can take up to 60 seconds of downtime.

Additionally, this upgrade process doesn't require you to change the endpoints that your applications connect to.

Before you begin

  • Ensure that you're running a Cloud SQL Enterprise edition instance on PostgreSQL 12 or later.

    If your instance is on an earlier version of PostgreSQL, then you must upgrade your instance to PostgreSQL 12 or later. For more information, see Upgrade the database major version in-place.

Check the storage location of the transaction logs used for PITR

All Cloud SQL Enterprise Plus edition instances are automatically enabled with point-in-time recovery (PITR). If the Cloud SQL Enterprise edition instance that you want to upgrade stores the write-ahead logs used for PITR on disk, then the upgrade process to Cloud SQL Enterprise Plus edition switches the storage location of the write-ahead logs from disk to Cloud Storage.

Before you upgrade to Cloud SQL Enterprise Plus edition, check whether your Cloud SQL Enterprise edition instance will undergo the storage location switch for the write-ahead logs used for PITR. For more information and instructions on how to check your instance, see Check the storage location of transaction logs used for PITR.

For more information about switching the transaction log storage location in the upgrade process, see Storage location of transaction logs used for PITR.

Upgrade an instance to Cloud SQL Enterprise Plus edition

Use the procedure in this section to upgrade a Cloud SQL Enterprise edition instance to Cloud SQL Enterprise Plus edition.

Console

  1. In the Google Cloud console, go to the Cloud SQL Instances page.

    Go to Cloud SQL Instances

  2. To open the Overview page of an instance, click the instance name.
  3. Click Edit.
  4. In the Choose a Cloud SQL edition section, click Upgrade.
  5. In the Upgrade to Enterprise Plus panel, enter your instance ID and then click Upgrade edition.

Alternatively, you can also upgrade an instance by clicking Upgrade in the Configuration section of the instance Overview page.

gcloud

The following code sample shows how to upgrade your instance to Cloud SQL Enterprise Plus edition:


gcloud sql instances patch INSTANCE_ID \
  --edition=enterprise-plus \
  --tier=MACHINE_TYPE \
  --project=PROJECT_ID

Optional: you can also enable data cache for your instance by adding the --enable-data-cache flag.

Replace the following:

  • PROJECT_ID: the project ID of the instance that you want to upgrade.
  • INSTANCE_ID: name of the instance that you want to upgrade.
  • MACHINE_TYPE: the machine type of the instance that you want to upgrade to. For more information about machine types for Cloud SQL Enterprise Plus edition, see Machine types for Cloud SQL Enterprise Plus edition instances.

REST

The following command upgrades your instance to Cloud SQL Enterprise edition and triggers a restart operation.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID of the instance that you want to upgrade.
  • INSTANCE_ID: the instance ID of the instance that you want to upgrade.
  • MACHINE_TYPE: the machine type of the instance that you want to upgrade to. For more information about machine types for Cloud SQL Enterprise Plus edition, see Machine types for Cloud SQL Enterprise Plus edition instances.

Optional: you can enable data cache by setting the dataCacheEnabled parameter as true.

HTTP method and URL:

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

Request JSON body:

{
  "settings": {
      "tier": "MACHINE_TYPE",
      "edition": "ENTERPRISE_PLUS",
      "dataCacheConfig": {
        "dataCacheEnabled": true
      },
  }
}

To send your request, expand one of these options:

You should receive a JSON response similar to the following:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

The following command upgrades your instance to Cloud SQL Enterprise edition and triggers a restart operation.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID of the instance that you want to upgrade.
  • INSTANCE_ID: the instance ID of the instance that you want to upgrade.
  • MACHINE_TYPE: the machine type of the instance that you want to upgrade to. For more information about machine types for Cloud SQL Enterprise Plus edition, see Machine types for Cloud SQL Enterprise Plus edition instances.

Optional: you can enable data cache by setting the dataCacheEnabled parameter as true.

HTTP method and URL:

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

Request JSON body:

{
  "settings": {
      "tier": "MACHINE_TYPE",
      "edition": "ENTERPRISE_PLUS",
      "dataCacheConfig": {
        "dataCacheEnabled": true
      },
  }
}

To send your request, expand one of these options:

You should receive a JSON response similar to the following:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Storage location of transaction logs used for PITR

If your Cloud SQL Enterprise edition instance stores transaction logs for PITR on disk, then starting the upgrade process to Cloud SQL Enterprise Plus edition switches the storage location of these logs to Cloud Storage.

The following conditions apply to the location switch process:

  • The process takes approximately the duration of the transactionLogRetentionDays PITR configuration setting to complete the switch to Cloud Storage.
  • During the switch to Cloud Storage, we recommend that you don't modify the transactionLogRetentionDays PITR configuration setting. Even if you do increase transactionLogRetentionDays, write-ahead logs won't be retained on disk any longer than the default of 7 days for an Cloud SQL Enterprise edition instance.

Cloud SQL Enterprise Plus edition backup and log storage defaults

After the upgrade to Cloud SQL Enterprise Plus edition completes, the default transaction log retention period for all upgraded instances is increased to 14 days. For this increase, and any other increase that you configure for the transaction log retention period, it takes up to the new and increased value to reach the full retention window of PITR. For example, if the old value for transaction log retention days is 7 and the new value is increased to 14, then the window for PITR for the first 7 days after the upgrade is only 7 days. On the 8th day, the window for PITR becomes 8 days, on the 9th day it becomes 9 days, until the retention window is finally increased to 14 days on the 14th day.

In addition, the default number of automated backups is increased from 8 to 15.

If you upgrade to Cloud SQL Enterprise Plus edition after doing a major version upgrade, then you won't be able to perform PITR to a point-in-time that occurs prior to the major version upgrade. This limitation applies even if your retention period covers that time period. You can restore your instance to a point-in-time after you started the major version upgrade.

Change to Cloud SQL Enterprise edition

Console

  1. In the Google Cloud console, go to the Cloud SQL Instances page.

    Go to Cloud SQL Instances

  2. To open the Overview page of an instance, click the instance name.
  3. Click Edit.
  4. In the Choose a Cloud SQL edition section, click Switch to Enterprise.
  5. In the Switch to Enterprise panel, enter your instance ID and then click Switch edition.

Alternatively, you can also change to Cloud SQL Enterprise edition by clicking Switch to Enterprise in Configuration section of the instance Overview page.

gcloud

The following code sample shows how to change your instance to Cloud SQL Enterprise edition:

gcloud sql instances patch INSTANCE_ID \
  --edition=enterprise \
  --tier=MACHINE_TYPE \
  --project=PROJECT_ID

Replace the following:
  • PROJECT_ID: the project ID of the instance.
  • INSTANCE_ID: name of the instance.
  • MACHINE_TYPE: the machine type of the instance that you want to switch to. For more information about machine types for Cloud SQL Enterprise edition, see Machine types for Cloud SQL Enterprise edition instances.

REST

The following command changes your instance to Cloud SQL Enterprise edition and triggers a restart operation.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID of the instance.
  • INSTANCE_ID: the instance ID of the instance.
  • MACHINE_TYPE: the machine type of the instance that you want to switch to. For more information about machine types for Cloud SQL Enterprise edition, see Machine types for Cloud SQL Enterprise edition instances.

HTTP method and URL:

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

Request JSON body:

{
  "settings": {
      "tier": "MACHINE_TYPE",
      "edition": "ENTERPRISE"
  }
}

To send your request, expand one of these options:

You should receive a JSON response similar to the following:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

The following command changes your instance to Cloud SQL Enterprise edition and triggers a restart operation.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID of the instance.
  • INSTANCE_ID: the instance ID of the instance.
  • MACHINE_TYPE: the machine type of the instance that you want to switch to. For more information about machine types for Cloud SQL Enterprise edition, see Machine types for Cloud SQL Enterprise edition instances.

HTTP method and URL:

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

Request JSON body:

{
  "settings": {
      "tier": "MACHINE_TYPE",
      "edition": "ENTERPRISE"
  }
}

To send your request, expand one of these options:

You should receive a JSON response similar to the following:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cloud SQL Enterprise edition backup and log storage defaults

Changing to Cloud SQL Enterprise edition doesn't switch the storage location of the transaction logs used for PITR. If your Cloud SQL Enterprise Plus edition instance stores its transaction logs for PITR in Cloud Storage, then the logs remain in Cloud Storage. However, instead of storing 14 days of transaction logs for PITR by default, the default is changed to 7 days. Backup configuration is not changed.

What's next