This page shows you how to use the public IP allowlist network connectivity method of Database Migration Service to upgrade a Cloud SQL Enterprise edition instance to Cloud SQL Enterprise Plus edition. Database Migration Service creates a new Cloud SQL instance and migrates data to that instance.
Overview
Cloud SQL Enterprise Plus edition is ideal for applications that require maximum write performance. For more information about these improvements, see Performance enhancements.
To enable these enhancements for your existing Cloud SQL Enterprise edition instances, you must upgrade them to Cloud SQL Enterprise Plus edition using Database Migration Service.
Before you begin
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Enable the Database Migration Service API.
- Make sure that you have the Database Migration Admin role assigned to your user account.
Requirements
Database Migration Service offers various source database options and network connectivity methods. Different sources work better with some connectivity methods than with others. On this page, we assume that you're using a Cloud SQL Enterprise edition instance in an environment where you can configure your network to add an inbound firewall rule. Because we can't know the specifics of your environment, we can't provide detailed steps when it comes to your networking configuration.
Configure your source instance
To configure your source Cloud SQL Enterprise edition instance, complete the following steps:
- If you don't have the
postgres
database for your source instance, then create one. For more information, see Create a database on the Cloud SQL instance. - Install the
pglogical
package on the databases of your source instance. Make sure that the package is included in theshared_preload_libraries
variable. For more information, see Configure your source databases. - Enable logical replication and decoding for the databases of your source instance. For more information, see Enable logical replication and decoding for your source databases.
Configure your source databases
Aside from the template0
and template1
databases, Database Migration Service migrates every other database under your source Cloud SQL Enterprise edition instance.
On each database in your source instance that isn't mentioned above, complete the following steps:
To install the
pglogical
extension into the database, run theCREATE EXTENSION IF NOT EXISTS pglogical
command.For any tables that don't have primary keys, migrate the
UPDATE
andDELETE
statements manually.To set these privileges on each of the migrated databases, create a user or set the privileges of an existing user. You use this user to connect to the source instance, and you configure this user as the user in the Connection profiles page. This user must have certain privileges on each of the migrated databases, as well as the default
postgres
database.To set these privileges, connect to the instance and run the following commands:
GRANT USAGE on SCHEMA SCHEMA to USER
on all schemas (aside from the information schema and schemas starting withpg_
) on each database that you want to migrate.GRANT USAGE on SCHEMA pglogical to PUBLIC;
on each database that you want to migrate.GRANT SELECT on ALL TABLES in SCHEMA pglogical to USER
on all databases to get replication information from source databases.GRANT SELECT on ALL TABLES in SCHEMA SCHEMA to USER
on all schemas (aside from the information schema and schemas starting withpg_
) on each database that you want to migrate.GRANT SELECT on ALL SEQUENCES in SCHEMA SCHEMA to USER
on all schemas (aside from the information schema and schemas starting withpg_
) on each database that you want to migrate.ALTER USER USER with REPLICATION role
Enable logical replication and decoding for your source databases
Enable logical replication and decoding for the databases of your source Cloud SQL Enterprise edition instance by
setting the cloudsql.logical_decoding
and
cloudsql.enable_pglogical
flags to On
. For more information about these flags, see Configure database flags.
To enable both of these flags, complete the following steps:
-
In the Google Cloud console, go to the Cloud SQL Instances page.
- Click your source instance.
- Click Edit.
- In the Customize your instance section, if the Show configuration options menu appears, then click it.
Expand the Flags section.
To set the
cloudsql.logical_decoding
andcloudsql.enable_pglogical
flags, complete the following steps:- Click Add a database flag.
- From the drop-down menu, choose the
cloudsql.logical_decoding
flag. - Set the value for this flag to
On
. - Click Done.
- Repeat these steps for the
cloudsql.enable_pglogical
flag.
Click Save.
In the Changes require restart dialog, click Save and restart. Cloud SQL restarts your source instance so that the configuration changes that you made to the flags can take effect.
- In the Configuration pane, confirm your changes in the Database flags section.
Create a connection profile
A connection profile contains information about the source Cloud SQL Enterprise edition database. Database Migration Service uses the information in the connection profile to migrate data from your source database to the destination Cloud SQL Enterprise Plus edition instance.
To create a connection profile, complete the following steps:
In the Google Cloud console, go to the Connection profiles page in Database Migration Service.
Click Create profile.
From the Database engine drop-down list, select Cloud SQL for PostgreSQL.
In the Connection profile name field, enter a name for the connection profile for your source database, such as
My Connection Profile
.Select the region where you want to save the connection profile.
From the Cloud SQL instance drop-down list, select the name of your Cloud SQL Enterprise edition instance.
To authenticate to your source instance, enter a username and password. Then, click Continue.
If you want to encrypt your data, then enable SSL/TLS encryption for the connection between the source and destination databases. Otherwise keep the default value of None.
Click Continue.
From the Connectivity test drop-down menu, select Public IP.
Verify that the source has been configured correctly and that Database Migration Service can communicate with the source:
Click Run test.
Verify that you see the
Your connection profile test was successful!
status.
If the test fails, then you can address the problem in the appropriate part of the flow, and return to re-test.
Click Create.
Create a migration job
Database Migration Service uses migration jobs to migrate data from your source Cloud SQL Enterprise edition database instance to the destination Cloud SQL Enterprise Plus edition instance.
Creating a migration job includes the following steps:
- Defining settings for the job.
- Selecting the connection profile that you created for your source Cloud SQL Enterprise edition database. This is your source connection profile.
- Defining settings for the destination Cloud SQL Enterprise Plus edition instance.
- Setting up connectivity between the source and destination database instances.
- Testing the migration job to ensure that the connection information that you provided for the job is valid.
Define settings for the migration job
In the Google Cloud console, go to the Migration jobs page in Database Migration Service.
Click Create migration job.
In the Migration job name field, enter a name for the migration job, such as
My Migration Job
.From the Source database engine drop-down list, select Cloud SQL for PostgreSQL.
From the Destination database engine drop-down list, select Cloud SQL for PostgreSQL.
Select the destination region where the Cloud SQL Enterprise Plus edition instance is created.
From the Migration job type drop-down list, select Continuous because you want ongoing changes in your source Cloud SQL Enterprise edition database to be migrated to the destination Cloud SQL Enterprise Plus edition instance.
Review the required prerequisites that are generated automatically to reflect how the environment must be prepared for a migration job. These prerequisites can include how to configure the source Cloud SQL Enterprise edition database and how to connect it to the destination Cloud SQL Enterprise Plus edition instance.
It's recommended to complete these prerequisites at this step, but you can complete them at any time before you test or start your migration job.
Click Save & continue.
Specify information about the source connection profile
From the Select source connection profile drop-down list, select the connection profile that you created.
Click Save & continue.
Define settings for the destination Cloud SQL Enterprise Plus edition instance
In the Password field, enter an alphanumeric password for the destination Cloud SQL Enterprise Plus edition instance. This is the password for the
postgres
administrator account in the instance.From the Database version drop-down list, select the destination instance from the list of supported Cloud SQL versions for the specified database engine.
Select Enterprise Plus.
From the Choose region and zone section, select the desired Google Cloud zone for the new Cloud SQL Enterprise Plus edition instance (or leave as Any).
Select the Public IP checkbox.
Select the machine shape for the Cloud SQL Enterprise Plus edition instance. The disk size must be equal to or greater than the source database size.
Define the storage type and storage capacity for the Cloud SQL instance.
To create the new instance, click Create & Continue.
In the dialog that appears, click Create destination & continue. Creating the instance may take several minutes to complete.
Set up connectivity
- From the Connectivity method drop-down list, select IP allowlist.
To use your destination Cloud SQL Enterprise Plus edition instance's outgoing IP addresses to establish a connection to the source Cloud SQL Enterprise edition instance, complete the following steps:
- In the Destination outgoing IP addresses region, click Copy all.
- Open a separate tab in your browser.
-
In the Google Cloud console, go to the Cloud SQL Instances page.
- Click your source instance.
- Click Edit.
- In the Customize your instance section, if the Show configuration options menu appears, then click it.
- Click the Connections section.
- Click Add a network.
- In the Name field, provide a name for the network that represents the first IP address that you copied, such as
My First Network
. This network is used to establish a connection between the source Cloud SQL Enterprise edition and destination Cloud SQL Enterprise Plus edition database instances. - In the Network field, enter the first IP address that you copied, followed by
/32
. This limits the network to accept connections only from this IP address. - Click Done.
- Repeat these steps for each IP address that you copied.
- Click Save. Cloud SQL restarts your source Cloud SQL Enterprise edition instance so that the configuration changes that you made can take effect.
- On the tab that contains the migration job, click Save & continue.
Test, create, and start the migration job
Review the settings that you chose for the migration job.
Verify that the source has been configured correctly, that the source Cloud SQL Enterprise edition and destination Cloud SQL Enterprise Plus edition instances are able to communicate with each other, and that the migration job is valid:
Click Test job.
Verify that you see the
Your migration job test was successful!
status.
If the test fails, then you can address the problem in the appropriate part of the flow, and return to re-test.
To create the migration job and start it immediately, click Create & start job.
In the dialog that appears, click Create & start.
In the Migration jobs page, verify that your migration job has a status of
Starting
.After a few minutes, confirm that the status changes to
Running
.
Verify the migration job
To confirm that Database Migration Service used the migration job to migrate data from your source Cloud SQL Enterprise edition database instance to the destination Cloud SQL Enterprise Plus edition database instance, complete the following steps:
In the Google Cloud console, go to the SQL Instances page.
Click the read replica entry of your migration job.
- Click the Activate Cloud Shell icon that appears next to the Search field.
At the prompt, to connect to the destination Cloud SQL Enterprise Plus edition database instance, use the
gcloud sql connect
command.gcloud sql connect DESTINATION_INSTANCE_NAME --user=postgres
Replace DESTINATION_INSTANCE_NAME with the name of the destination Cloud SQL Enterprise Plus edition instance.
- Optional: If an Authorize Cloud Shell dialog appears, then click Authorize.
- At the Enter password prompt, enter the password that you provided in Define settings for the destination Cloud SQL Enterprise Plus edition instance.
- At the postgres prompt, to list the databases and verify that you see your source Cloud SQL Enterprise edition database instance, enter
\list
. - At the postgres prompt, to see the tables that are associated with this database instance, enter
\connect SOURCE_DB_NAME
. The name of the prompt changes frompostgres
to SOURCE_DB_NAME. - At the SOURCE_DB_NAME prompt, to see the tables of this instance, enter
\dt
. - At the SOURCE_DB_NAME prompt, to give this user permission to access the data in the tables of this instance, enter
GRANT cloudsqlexternalsync to USER;
.Replace USER with the name of the user that you used to connect to the destination Cloud SQL Enterprise Plus edition database instance.
- At the SOURCE_DB_NAME prompt, to see the information that's replicated from a table in your source Cloud SQL Enterprise edition database instance, enter
SELECT * from TABLE_NAME;
. - Verify that you see the correct information in the table.
Promote the migration job
Promoting the migration job replaces the source Cloud SQL Enterprise edition database instance with the destination Cloud SQL Enterprise Plus edition database instance as the primary database.
To promote the migration job, complete the following steps:
Return to the Migration jobs page.
Click the migration job that you want to promote. The Migration job details page appears.
Stop all writes to the source Cloud SQL Enterprise edition database.
Verify that the replication delay is minimal.
Click the migration job that you want to promote. This job has a status of
Running
.To promote the migration job, click Promote.
In the dialog that appears, click Promote.
Verify that the migration job has a status of
Promote in progress
. After a few minutes, confirm that the status changes toCompleted
.
Your new Cloud SQL Enterprise Plus edition database instance is ready to use.
Clean up
To avoid incurring charges to your Google Cloud account for the resources used on this page, use the Google Cloud console to delete your migration job, connection profile, source Cloud SQL Enterprise edition instance, and project if you don't need them.
What's next
- Read more about the key features of Cloud SQL Enterprise Plus edition.
- Read more about performance enhancements for Cloud SQL Enterprise Plus edition.
- Read more about region support for Cloud SQL Enterprise Plus edition.
- Read more about pricing for Cloud SQL Enterprise Plus edition.