For heterogeneous Oracle migrations to Cloud SQL, Database Migration Service requires that you first create and configure your Cloud SQL destination instance. Perform the following steps:
- Create your destination instance. Make sure you configure enough compute
and memory resources to cover your migration needs and follow the requirements
listed in
known limitations.
We recommend that you create your destination instance with settings specific to the destination networking method you want to use:
If you want to use... Then... Public IP destination connectivity, Create your destination instance with public IP enabled. See Create a Cloud SQL instance in the Cloud SQL for PostgreSQL documentation. Private IP destination connectivity, Determine if you can use a PSC-enabled Cloud SQL instance as your migration destination. Carefully consider functionality limitations for PSC-enabled instances. See Private Service Connect limitations in the Cloud SQL documentation.
- For scenarios where you can use a PSC-enabled Cloud SQL instance, create your destination instance with both private IP and Private Service Connect enabled. See Create a PSC-enabled Cloud SQL instance in the Cloud SQL for PostgreSQL documentation.
- For scenarios where you can't use a PSC-enabled Cloud SQL instance, create your destination instance with private IP enabled. See Create a Cloud SQL instance with private IP enabled in the Cloud SQL for PostgreSQL documentation.
- Create the following entities in your destination instance:
- A database to migrate your data.
- A
dedicated migration user account.
This user account must have the same name as your destination database. For example, if you use Database Migration Service to migrate your data into a database called
myapp
, then the name of the dedicated migration user should also bemyapp
.
- Grant the required permissions to the dedicated migration user account.
Do the following:
- Connect to your Cloud SQL instance with a SQL client. You can use the
following methods:
-
psql
client. You can use this method to connect to your instance private IP, but it might require that you create a Compute Engine virtual machine. -
gcloud sql connect
command. This command works only for Cloud SQL instances that have a public IP address enabled.
-
- Run the following command on your destination instance:
GRANT CREATE ON DATABASE DESTINATION_DB_NAME TO MIGRATION_USER_ACCOUNT_NAME; GRANT CREATE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER_ACCOUNT_NAME; GRANT SELECT, INSERT, UPDATE, DELETE, TRUNCATE ON ALL TABLES IN SCHEMA SCHEMA_NAME TO MIGRATION_USER_ACCOUNT_NAME;
-
Optional: Grant your migration user the
CREATEDB
permission for the purposes of testing converted schema.At a later point in the migration, after you convert the source schema, you can use Database Migration Service to test whether converted schema can be applied to a PostgreSQL database. To perform the test, Database Migration Service creates a temporary database to avoid impacting your destination database. If you want to test your converted schema, grant your migration user the
CREATEDB
permission. Use the following command:ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH CREATEDB;
- For source databases that contain foreign keys or triggers:
Skip replication for foreign keys and triggers by using the
REPLICATION
option with the dedicated migration user account. Run the following command:ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH REPLICATION;
For more information about how Database Migration Service migrates foreign keys and triggers, see Considerations for foreign keys and triggers.
- Connect to your Cloud SQL instance with a SQL client. You can use the
following methods:
What's next?
Learn about destination database network connectivity. See Destination database networking methods.
Learn about migration jobs. See Create a migration job
To get a complete, step-by-step migration walkthrough, see Oracle to Cloud SQL for PostgreSQL migration guide.