本文介绍如何通过一键上云将MyBase PostgreSQL迁移至RDS PostgreSQL。
准备工作
- 创建RDS PostgreSQL实例并满足以下条件:
- 版本、系列与MyBase PostgreSQL实例保持一致。
- 磁盘空间大于MyBase PostgreSQL实例数据库的占用空间。
- 规格族为独享型。
说明- 通过内网迁移,确保RDS PostgreSQL实例的地域、VPC与MyBase PostgreSQL实例保持一致。
- 通过外网迁移,确保已申请RDS PostgreSQL、MyBase PostgreSQL实例的外网地址。如何申请,请参见申请RDS PostgreSQL实例外网地址和申请MyBase PostgreSQL实例外网地址。
- 设置白名单,确保RDS PostgreSQL和MyBase PostgreSQL实例可以互相访问。如何设置,请参见设置RDS PostgreSQL实例白名单和设置MyBase PostgreSQL实例白名单。您可以登录RDS或MyBase控制台,在数据库连接页面,查看RDS PostgreSQL或MyBase PostgreSQL实例的网段。
- 创建MyBase PostgreSQL实例高权限账号。如何创建,请参见创建数据库账号。
注意事项
- 迁移上云任务期间可以对MyBase PostgreSQL数据库进行读写,但请勿执行迁移、重启、变配等操作。
- 设置MyBase PostgreSQL实例只读,业务仅能读取,不能写入。
- 新通用型规格实例暂不支持外网迁移。
步骤一:上云评估
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
- 在左侧导航栏单击一键上云,单击上云评估页签。
- 在配置向导的选择迁移来源步骤,选择阿里云ECS自建PostgreSQL或阿里云RDS PostgreSQL迁移来源,然后单击下一步。
- 在目标库配置步骤,单击下一步。
- 在源库配置步骤,选中所有已完成的配置准备项,单击下一步。
- 在发起迁移评估步骤,配置源库信息。
参数 取值说明 迁移任务名 系统自动生成,无需修改。 源端 VPC IP/DNS或源端 公网IP/DNS MyBase PostgreSQL实例的链接地址。查看实例的内外网地址,请参见查看或修改内外网地址和端口。 源端Port MyBase PostgreSQL实例的端口号,查看实例的端口号,请参见查看或修改内外网地址和端口。 用户名 MyBase PostgreSQL实例高权限账号。查看实例账号,请参见查看数据库账号。 密码 MyBase PostgreSQL实例高权限账号的密码。 - 单击创建迁移评估任务。说明 迁移评估任务期间,实例状态将变更为维护实例中。
步骤二:迁移上云
说明 只有上云评估状态为成功时,才能执行本步骤。
- 在迁移上云页签,单击创建迁移上云任务。
- 在弹出的对话框,从关联评估任务列表中选择步骤一:上云评估中已成功的上云评估任务。说明 选择关联评估任务后,源库类型、源端 IP/DNS、源端Port和用户名参数将会自动获取,无需配置。
- 单击发起迁移上云,系统将自动启动上云任务。重要 上云任务期间,实例状态将变更为迁入数据中。您可以对MyBase PostgreSQL数据库进行读写,但请勿执行迁移、重启、变配等操作。
- 上云切换。
- 在迁移上云任务中,单击上云阶段列的链接,查看当前上云任务进度。
- 当上云阶段为增量同步时,可单击操作列的上云切换,将RDS PostgreSQL提升为主库,正式提供服务。
- 在切换上云对话框,根据上云须知提示,设置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;
- 若存在超级用户,您需要联系阿里云工程师修改。
- 若不存在超级用户时,请参见如下步骤修改:
- 登录云数据库专属集群控制台。
- 通过参数设置功能,修改参数rds_force_trans_ro_non_sup取值为on。
- 修改完成后,登录MyBase PostgreSQL数据库,执行以下命令,中断所有现有会话。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
- 选中所有复选框,单击立即切换,等待迁移完成。
步骤四:连接应用
方案一:交换连接地址(推荐)
查看并修改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)
文档反馈