文档

MyBase PostgreSQL迁移至RDS PostgreSQL

更新时间:

本文介绍如何通过一键上云将MyBase PostgreSQL迁移至RDS PostgreSQL。

准备工作

  1. 创建RDS PostgreSQL实例并满足以下条件:
    • 版本系列与MyBase PostgreSQL实例保持一致。
    • 磁盘空间大于MyBase PostgreSQL实例数据库的占用空间。
    • 规格族为独享型
    如何创建,请参见快速创建RDS PostgreSQL实例
    说明
  2. 设置白名单,确保RDS PostgreSQL和MyBase PostgreSQL实例可以互相访问。如何设置,请参见设置RDS PostgreSQL实例白名单设置MyBase PostgreSQL实例白名单
    您可以登录RDS或MyBase控制台,在数据库连接页面,查看RDS PostgreSQL或MyBase PostgreSQL实例的网段。查看网段
  3. 创建MyBase PostgreSQL实例高权限账号。如何创建,请参见创建数据库账号

注意事项

  • 迁移上云任务期间可以对MyBase PostgreSQL数据库进行读写,但请勿执行迁移、重启、变配等操作。
  • 设置MyBase PostgreSQL实例只读,业务仅能读取,不能写入。
  • 新通用型规格实例暂不支持外网迁移。

步骤一:上云评估

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏单击一键上云,单击上云评估页签。
  3. 在配置向导的选择迁移来源步骤,选择阿里云ECS自建PostgreSQL或阿里云RDS PostgreSQL迁移来源,然后单击下一步上云评估
  4. 目标库配置步骤,单击下一步
  5. 源库配置步骤,选中所有已完成的配置准备项,单击下一步。
    源库配置
  6. 发起迁移评估步骤,配置源库信息。
    参数取值说明
    迁移任务名系统自动生成,无需修改。
    源端 VPC IP/DNS源端 公网IP/DNSMyBase PostgreSQL实例的链接地址。查看实例的内外网地址,请参见查看或修改内外网地址和端口
    源端PortMyBase PostgreSQL实例的端口号,查看实例的端口号,请参见查看或修改内外网地址和端口
    用户名MyBase PostgreSQL实例高权限账号。查看实例账号,请参见查看数据库账号
    密码MyBase PostgreSQL实例高权限账号的密码。
  7. 单击创建迁移评估任务
    说明 迁移评估任务期间,实例状态将变更为维护实例中
    迁移评估完成后,您可以在上云评估页面查看迁移评估任务的状态。

    处理报错后,您可以单击操作列的重新评估,重新开始评估任务。

    上云评估报告

步骤二:迁移上云

说明 只有上云评估状态为成功时,才能执行本步骤。
  1. 迁移上云页签,单击创建迁移上云任务
    创建迁移上云任务
  2. 在弹出的对话框,从关联评估任务列表中选择步骤一:上云评估中已成功的上云评估任务。
    迁移上云
    说明 选择关联评估任务后,源库类型源端 IP/DNS源端Port用户名参数将会自动获取,无需配置。
  3. 单击发起迁移上云,系统将自动启动上云任务。
    重要 上云任务期间,实例状态将变更为迁入数据中。您可以对MyBase PostgreSQL数据库进行读写,但请勿执行迁移、重启、变配等操作。
  4. 上云切换。
    1. 在迁移上云任务中,单击上云阶段列的链接,查看当前上云任务进度。
    2. 当上云阶段为增量同步时,可单击操作列的上云切换,将RDS PostgreSQL提升为主库,正式提供服务。
    3. 切换上云对话框,根据上云须知提示,设置MyBase PostgreSQL实例只读或应用停止写入。
      切换上云
      说明 设置MyBase PostgreSQL实例只读:
      登录MyBase PostgreSQL数据库,执行以下命令,确认是否存在超级用户。
      SELECT CASE WHEN(count(rolname)<= 3) THEN 'superuser check ok' ELSE 'exists superuser created by user' END AS result
        FROM pg_roles
       where rolsuper= 't'
         and rolname in ('aurora', 'replicator')
          or rolname like 'pg%'
       GROUP BY rolname
       limit 1;
      • 若存在超级用户,您需要联系阿里云工程师修改。
      • 若不存在超级用户时,请参见如下步骤修改:
        1. 登录云数据库专属集群控制台
        2. 通过参数设置功能,修改参数rds_force_trans_ro_non_sup取值为on修改参数
        3. 修改完成后,登录MyBase PostgreSQL数据库,执行以下命令,中断所有现有会话。
          SELECT pg_terminate_backend(pid) FROM pg_stat_activity
          WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
    4. 选中所有复选框,单击立即切换,等待迁移完成。

步骤四:连接应用

方案一:交换连接地址(推荐)

查看并修改MyBase PostgreSQL实例的连接地址,然后将RDS PostgreSQL实例的连接地址修改为MyBase PostgreSQL实例的原地址。

假如您的MyBase PostgreSQL实例的连接地址为pgm-aaa.pg.rds.aliyuncs.com,RDS PostgreSQL实例的连接地址为pgm-bbb.pg.rds.aliyuncs.com。您可以将MyBase PostgreSQL实例的连接地址修改为pgm-ccc.pg.rds.aliyuncs.com,再将RDS PostgreSQL实例的连接地址修改为pgm-aaa.pg.rds.aliyuncs.com即可。

方案二:切换应用连接地址

查看并获取RDS PostgreSQL实例的连接地址,修改您应用服务中的数据库连接地址。

  • 本页导读 (1)