本文介绍如何通过一键上云将MyBase PostgreSQL迁移至RDS PostgreSQL。
准备工作
创建RDS PostgreSQL实例并满足以下条件:
版本、系列与MyBase PostgreSQL实例保持一致。
磁盘空间大于MyBase PostgreSQL实例数据库的占用空间。
规格族为独享型。
如何创建,请参见快速创建RDS 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。
在左侧导航栏单击一键上云/容灾搭建,单击可行性评估页签。
在配置向导的选择场景与源端类型步骤,选择场景为迁移上云,并选择源端为阿里云RDS实例,然后单击下一步。
在目标实例配置步骤,单击下一步。
在源实例配置步骤,选中所有已完成的配置准备项,单击下一步。
在发起可行性评估步骤,配置源库信息。
参数
取值说明
迁移任务名
系统自动生成,无需修改。
源端 VPC 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实例的连接地址,修改您应用服务中的数据库连接地址。