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 MySQL 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 beginEnsure that you're running a Cloud SQL Enterprise edition instance on MySQL version 8.0.31 or later.
If your instance is on an earlier version of MySQL, then you must upgrade your instance to MySQL 8.0.31 or later. For more information, see Upgrade the database major version in-place and Upgrade the database minor version.
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 binary logs used for PITR on disk, then the upgrade process to Cloud SQL Enterprise Plus edition switches the storage location of the binary 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 binary 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 editionUse the procedure in this section to upgrade a Cloud SQL Enterprise edition instance to Cloud SQL Enterprise Plus edition.
Note: Cloud SQL enables data cache for your instance by default during the upgrade process. ConsoleIn the Google Cloud console, go to the Cloud SQL Instances page.
Alternatively, you can also upgrade an instance by clicking Upgrade in the Configuration section of the instance Overview page.
gcloudThe 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_IDNote: Cloud SQL enables data cache for your instance by default during the upgrade process. You can disable it by adding the
--no-enable-data-cache
flag.
Replace the following:
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:
dataCacheEnabled
parameter as false
.
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:
curl (Linux, macOS, or Cloud Shell) Note: The following command assumes that you have logged in to thegcloud
CLI with your user account by running gcloud init
or gcloud auth login
, or by using Cloud Shell, which automatically logs you into the gcloud
CLI . You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
curl -X PATCH \PowerShell (Windows) Note: The following command assumes that you have logged in to the
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID"
gcloud
CLI with your user account by running gcloud init
or gcloud auth login
. You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content
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:
dataCacheEnabled
parameter as false
.
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:
curl (Linux, macOS, or Cloud Shell) Note: The following command assumes that you have logged in to thegcloud
CLI with your user account by running gcloud init
or gcloud auth login
, or by using Cloud Shell, which automatically logs you into the gcloud
CLI . You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
curl -X PATCH \PowerShell (Windows) Note: The following command assumes that you have logged in to the
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID"
gcloud
CLI with your user account by running gcloud init
or gcloud auth login
. You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content
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:
transactionLogRetentionDays
PITR configuration setting to complete the switch to Cloud Storage.expire_logs_days
or binlog_expire_logs_seconds
flag on your instance, then those values are preserved.expire_logs_days
or binlog_expire_logs_seconds
flags on your instance.transactionLogRetentionDays
PITR configuration setting. Even if you do increase transactionLogRetentionDays
, binary logs won't be retained on disk any longer than the default of 7 days for an Cloud SQL Enterprise edition instance.transactionLogRetentionDays
PITR configuration setting from before the switch, 7 days by defaultexpire_logs_days
or binlog_expire_logs_seconds
flags manually set on your instanceexpire_logs_days
or binlog_expire_logs_seconds
flags on your instance. If you have set these flags, then Cloud SQL retains binary logs on disk based on the minimum value of the transactionLogRetentionDays
configuration setting or the value of the flags.After the switch to Cloud Storage completes for an instance, Cloud SQL still retains copies of binary logs on disk for replication purposes. Storing binary logs on disk can be useful if you want to browse binary logs with the
mysqlbinlog
utility.
If you configured the expire_logs_days
and binlog_expire_logs_seconds
flags on your instance before the upgrade, then the configured values remain intact.
After the switch, since the binary logs that are used to perform PITR are now stored in Cloud Storage, ensure that the values of the flags reflect the retention of transaction logs on disk that you expect. Cloud SQL only retains logs on disk for the minimum value of one of the following:
transactionLogRetentionDays
PITR configuration setting before switch, 7 days by defaultexpire_logs_days
or binlog_expire_logs_seconds
flags manually set on your instanceIf you want to save disk space, then after the upgrade has completed, configure the value of the expire_logs_days
or binlog_expire_logs_seconds
flag to the equivalent of 1 day so you can reduce your allocated disk size and disk storage costs. For more information about transaction log storage and PITR, see Log storage for PITR.
expire_logs_days
or binlog_expire_logs_seconds
flag slowly. For example, reduce the value by the equivalent of 1 day each day over several days to avoid purging the binary logs all at once, to prevent any performance impacts.
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 Note: Cloud SQL disables the data cache automatically when you change an instance from Cloud SQL Enterprise Plus edition to Cloud SQL Enterprise edition. ConsoleIn the Google Cloud console, go to the Cloud SQL Instances page.
Alternatively, you can also change to Cloud SQL Enterprise edition by clicking Switch to Enterprise in Configuration section of the instance Overview page.
gcloudThe 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_IDReplace the following:
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:
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:
curl (Linux, macOS, or Cloud Shell) Note: The following command assumes that you have logged in to thegcloud
CLI with your user account by running gcloud init
or gcloud auth login
, or by using Cloud Shell, which automatically logs you into the gcloud
CLI . You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
curl -X PATCH \PowerShell (Windows) Note: The following command assumes that you have logged in to the
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID"
gcloud
CLI with your user account by running gcloud init
or gcloud auth login
. You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content
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:
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:
curl (Linux, macOS, or Cloud Shell) Note: The following command assumes that you have logged in to thegcloud
CLI with your user account by running gcloud init
or gcloud auth login
, or by using Cloud Shell, which automatically logs you into the gcloud
CLI . You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
curl -X PATCH \PowerShell (Windows) Note: The following command assumes that you have logged in to the
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID"
gcloud
CLI with your user account by running gcloud init
or gcloud auth login
. You can check the currently active account by running gcloud auth list
.
Save the request body in a file named request.json
, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content
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.
Generate the write endpoint automaticallyA write endpoint is a global domain name service (DNS) name that resolves to the IP address of the current primary Cloud SQL instance automatically. This endpoint redirects incoming connections to the new primary instance automatically in case of a replica failover operation. You can use the write endpoint in a SQL connection string instead of an IP address. By using a write endpoint, you can avoid having to make application connection changes when a region outage occurs.
If you upgrade your instance that has a private IP address on the new network architecture to Cloud SQL Enterprise Plus edition, and you enable the DNS API for your Google Cloud project, then Cloud SQL generates the write endpoint automatically for you. However, the server certificate that's associated with the instance won't have the write endpoint (global DNS name) added to it. Therefore, if you want to verify the DNS name, then you must rotate the certificate. After the rotation of this certificate is complete, Cloud SQL adds the DNS name to the certificate. You can use the DNS name for server identity verification.
What's nextRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4