RDS PostgreSQL实例支持通过一键上云功能,实现RDS PostgreSQL实例间的数据迁移。

前提条件

已创建目标实例并满足以下条:
  • 目标实例与源实例大版本相同,当前支持PostgreSQL 10或以上版本。
  • 目标实例为主实例,只读实例不支持一键上云。
  • 目标实例的存储类型为云盘。
  • 目标实例为空,无数据,可用存储空间大于等于源实例中数据大小的总和。

操作步骤

说明 本文以华东1(杭州)不同VPC下的两个RDS PostgreSQL实例间迁移为例,介绍如何将位于VPC1下的源实例迁移至VPC2下的目标实例。
  1. 源实例配置。
    1. 添加白名单。
      添加白名单的具体操作,请参见设置白名单组内白名单请填写目标实例的公网IP地址
      目标实例的公网IP地址查看方法:
      1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
      2. 在左侧导航栏单击一键上云,单击上云评估页签。
      3. 在配置向导的选择迁移来源步骤,选择迁移来源为具有公网地址的PostgreSQL迁移(含其他厂商的PostgreSQL迁移场景)后,单击下一步
      4. 目标库配置步骤,单击分配EIP。分配EIP
      5. 刷新后查看RDS PostgreSQL实例的公网IP地址公网IP地址
    2. 创建高权限账号。
      创建账号的具体操作,请参见创建账号账号类型请选择高权限账号。
      说明 高权限账号用于迁移上云,需要具备CREATE ROLE、REPLICATION和pg_monitor权限。如果您已有高权限的账号,则无需重复创建。
  2. 目标实例配置。
    1. 上云评估。
      1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
      2. 在左侧导航栏单击一键上云,单击上云评估页签。
      3. 在配置向导的选择迁移来源步骤,选择迁移来源为具有公网地址的PostgreSQL迁移(含其他厂商的PostgreSQL迁移场景)后,单击下一步
      4. 目标库配置步骤,单击下一步
      5. 源库配置步骤,选中所有配置准备项,单击下一步
      6. 发起迁移评估步骤,配置源库信息。
        参数 取值说明
        迁移任务名 系统自动生成,无需修改。
        源端 公网IP/DNS 填写源实例的外网地址。具体请参见查看外网地址
        源端Port 填写源实例的端口,具体请参见查看端口
        用户名 源实例中创建的高权限数据库账号。
        密码 源实例中创建的高权限数据库账号的密码。
      7. 单击创建迁移评估任务
        说明 迁移评估任务期间,实例状态将变更为维护实例中
        迁移评估完成后,您可以在上云评估页面查看迁移评估任务的状态。
        • 只有状态成功,您才能进行迁移上云步骤。
        • 如果状态失败,请单击操作列的查看报告,根据报错进行处理,常见报错请参见解读上云评估报告
        上云评估状态
    2. 迁移上云。
      1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
      2. 在左侧导航栏单击一键上云,切换至迁移上云页签,单击创建迁移上云任务。
      3. 创建迁移上云任务窗口中,从关联评估任务列表中选择已成功的上云评估任务。
        说明 选择关联评估任务后,源库类型源端 IP/DNS源端Port用户名参数将会自动获取,无需配置。
      4. 单击发起迁移上云,系统将自动启动上云任务。
        重要 上云任务期间,实例状态将变更为迁入数据中。您可以对源实例进行读写,但请勿执行迁移、重启、变配等操作。
      创建成功后,结果示例如下:迁移上云
    3. 将目标RDS PostgreSQL提升为主库。
      1. 在迁移上云任务中,单击上云阶段列的链接,查看当前上云任务进度。上云进度
      2. 当上云阶段为增量同步时,可单击操作列的上云切换,将目标RDS PostgreSQL提升为主库,正式提供服务。
      3. 切换上云窗口,根据上云须知提示,设置源实例只读或应用停止写入。
        说明 参考如下步骤,设置源实例只读:
        1. 通过设置实例参数功能,修改源实例参数rds_force_trans_ro_non_sup取值为on
        2. 使用如下语句,中断所有现有会话。
          SELECT pg_terminate_backend(pid) FROM pg_stat_activity 
          WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
      4. 选中所有复选框,单击立即切换,等待迁移完成。
        切换完成后,结果示例如下:迁移完成

后续配置

为了确保RDS PostgreSQL实例迁移后,应用侧在不修改业务代码的情况下依然正常连接,还需要在目标实例做如下配置。

  1. 修改目标实例白名单设置,与源实例白名单保持一致。更多信息,请参见设置白名单
  2. 修改目标实例的连接地址,与源实例连接地址相同。修改方法请参见修改内外网连接地址
    以源实例连接地址为pgm-aaa.pg.rds.aliyuncs.com,目标实例连接地址为pgm-bbb.pg.rds.aliyuncs.com为例,修改方法如下。
    1. 将源实例连接地址pgm-aaa.pg.rds.aliyuncs.com修改为pgm-ccc.pg.rds.aliyuncs.com
    2. 将目标实例连接地址pgm-bbb.pg.rds.aliyuncs.com修改为pgm-aaa.pg.rds.aliyuncs.com