概览
Database Migration Service 支持从源数据库到 Cloud SQL 目标数据库的持续迁移。
支持的 Cloud SQL for PostgreSQL 目标数据库包括如下版本:
- Cloud SQL for PostgreSQL 12、13、14、15。
配置 Cloud SQL for PostgreSQL 目标数据库
您必须先通过以下方式配置数据库,然后才能使用 Database Migration Service 将数据迁移到目标数据库:
- 创建实例。我们建议使用至少具有双核 CPU 的机器类型。例如,如果您的机器名称为
db-custom
,且其具有 2 个 CPU 和 3840 MB RAM,那么机器类型名称的格式为db-custom-2-3840
。 - 如果您使用公共 IP 地址连接到目标实例,那么 Database Migration Service 会使用 Cloud SQL Auth 代理连接到该实例。这需要满足以下条件:
- 实例必须具有公共 IPv4 地址。
- 该公共 IP 地址无需可供任何外部地址访问(无需添加为已获授权的网络地址)。
- 如果您使用专用 IP 地址连接到目标实例,Database Migration Service 会使用 Private Service Connect 连接到此实例。如需了解详情,请参阅为目标实例配置 Private Service Connect。
在实例中创建同名的用户账号和数据库。例如,如果您使用 Database Migration Service 将数据迁移到
myapp
数据库,则用户账号的名称也应为myapp
。- 为数据库用户设置以下权限:
CREATE SCHEMA
CREATE TABLE
CREATE DATABASE
SELECT
INSERT
UPDATE
DELETE
TRUNCATE
(适用于所有表)
- (对于包含外键或触发器的数据库)
使用迁移用户账号通过
REPLICATION
选项跳过外键和触发器。 运行以下命令: 如需详细了解如何迁移外键和触发器,请参阅 外键和触发器注意事项。ALTER USER MIGRATION_USER_NAME WITH replication;
外键和触发器注意事项
源数据库中存在的外键和触发器可能会导致数据完整性问题,甚至导致迁移作业失败。如果您为迁移用户使用 REPLICATION
选项跳过外键和触发器,则可以防止出现这些问题。或者,您也可以在目标数据库中删除所有外键和触发器,并在迁移完成后重新创建它们。
- 触发器
- Database Migration Service 复制的数据已包含触发器对源数据库所做的所有更改。如果在目标位置启用了触发器,它们可能会再次触发并可能操纵数据,从而导致数据完整性或重复问题。
- 外键
- Database Migration Service 不会以事务方式复制数据,因此表可能会无序迁移。如果存在外键,并且使用外键的子表在其父表之前迁移,则可能会遇到复制错误。