RDS PostgreSQL实例间的迁移
本文主要介绍云数据库 RDS PostgreSQL 实例之间的数据迁移。
前提条件
- 已创建源端和目标端 RDS PostgreSQL 实例。创建方式,请参见 创建 PostgreSQL 实例。
- 目标端 RDS PostgreSQL 实例的存储空间须大于源端 RDS PostgreSQL 实例占用的存储空间。
限制说明
类型 | 说明 |
---|---|
源端限制 |
|
其他限制 |
|
特殊情况 | 当目标库为 RDS PostgreSQL 时:
|
支持的SQL操作
操作类型 | SQL操作语句 |
---|---|
DML | INSERT、UPDATE、DELETE |
数据库账号权限要求
数据库 | 结构迁移 | 全量迁移 | 增量迁移 |
---|---|---|---|
源端 | pg_catalog 的 usage 权限 | 迁移对象的 select 权限 | superuser |
目标端 | 迁移对象的 create、usage 权限 | schema 的 owner 权限 | schema 的 owner 权限 |
准备工作
PostgreSQL 的 pg_hba.conf 配置文件控制客户端身份验证。文件通常存储在数据库集群的数据目录中。
-
安装逻辑流复制插件
登录自建 PostgreSQL 所属的服务器,下载 wal2json 逻辑流复制插件,下载地址如下: https://github.com/eulerto/wal2json 按照官方指导安装 wal2json 插件。
-
修改 PostgreSQL postgresql.conf 配置文件中的如下参数:
- 将 max_replication_slots 设置为大于 1 的整数,max_replication_slots 的值应根据您需要同时运行的任务数进行设置。例如,要同时运行十二个任务,您需要设置至少十二个 slot。
示例:
max_replication_slots = 12
- 将 wal_level 设置为 logical,开启 wal 逻辑日志。
示例:
wal_level = logical
- 将 wal_sender_timeout 设置为 0,复制连接处于不活跃状态的时间超过 wal_sender_timeout 时,会被源端库终止。该参数的默认值为 60 秒,但我们建议您将该参数设置为零,这样会禁用超时机制。
示例:
wal_sender_timeout = 0
- 将 max_wal_senders 设置为大于 10 的整数,max_wal_senders 参数用于设置可以运行的并发任务数,建议和 max_replication_slots 设置的值一致。
示例:
max_wal_senders = 12
- 重启 PostgreSQL 数据库
-
将要迁移表的 replica identity 设置为 FULL
ALTER TABLE TABLENAME REPLICA IDENTITY FULL;
操作步骤
- 登录 DTS 控制台。
- 点击 创建数据传输任务 进入 DTS 创建任务页面,详情参见 购买流程。
- 创建任务成功后自动返回任务列表页面,选择新创建的任务,点击 更多操作—>配置任务。
-
在配置任务页面,配置源库及目标库信息,本文以 公网 接入方式为例介绍配置流程。
配置流程 类别 配置 说明 任务基本属性 任务名称 DTS 会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。 源端连接设置 实例 ID 选择源 RDS PostgreSQL 实例 ID。 数据库 选择默认连接的数据库。 目标端连接设置 实例 ID 选择目标 RDS PostgreSQL 实例 ID。 数据库 选择默认连接的数据库。 -
配置完成后,点击页面下方的 授权白名单进入下一步。
如果您主动为 RDS PostgreSQL 关联了自定义的 VPC 安全组规则,则需要您手动添加对应地区 DTS 服务的 IP 地址,以允许来自 DTS 服务器的访问,操作步骤请参见 为您的 VPC 安全组添加 DTS 网段的放行规则。
警告:
DTS 自动添加或您手动添加 DTS 服务的 IP 地址段可能会存在安全风险,一旦使用本产品代表您已理解和确认其中可能存在的安全风险,并且需要您做好基本的安全防护,包括但不限于加强账号密码强度防范、限制各网段开放的端口号、内部各 API 使用鉴权方式通信、定期检查并限制不需要的网段等等。
-
配置任务对象映射。
配置 说明 迁移类型 根据需求及各引擎对迁移类型的支持情况,选择迁移类型。 限制传输速度 根据实际情况,选择是否对全量迁移和增量同步任务进行更细粒度的限流策略设置(设置 每秒迁移的行数 和 每秒迁移的数据量),以缓解目标库压力。详情参见:迁移限速。 传输对象 手动选择:选择此选项时,在页面左侧选择需要迁移的库表,库表信息将会被自动添加到页面右侧。模式匹配:详情参见:模式匹配。 -
上述配置完成后,点击页面下方的 保存并预检查。
说明
- 在迁移任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动迁移任务。
- 如果预检查失败,请查看失败检查项的提示,并根据提示修复后重新进行预检查。
-
如果预检查产生警告:
- 对于不可以忽略的检查项,请查看失败检查项的提示,并根据提示修复后重新进行预检查。
- 对于可以忽略无需修复的检查项,您可以点击 强制通过,在弹出的窗口中勾选风险确认信息并点击 确定,跳过告警检查项重新进行预检查。如果选择屏蔽告警检查项,可能会导致数据不一致等问题,给业务带来风险。
- 前置校验提示校验成功后,点击 立即开启任务。
- 迁移任务正式开始,您可以在任务列表页面查看具体进度。
后续操作(可选)
业务切换
详情参见 业务切换流程。