RDS PostgreSQL的一键上云功能不仅支持阿里云ECS或IDC自建PostgreSQL的一键上云,还支持RDS PostgreSQL实例缩容存储空间,本文介绍RDS PostgreSQL实例缩容的具体操作。
背景信息
RDS PostgreSQL实例的变更配置,不支持缩小存储空间,而一键上云功能可以实现实例间的迁移,您可以根据实际需要,将实例迁移至存储空间小于当前实例的新实例上,从而达到缩容的目的。
一键上云功能具有以下优势:
- 采用物理流复制方式,速度快、操作简单、稳定性好。
- 使用内网迁移,免费,安全。
- 限制条件少,目标实例为云盘主实例,大版本与源实例一致即可。
- 性能与源实例保持一致,统计信息等与源实例保持一致。
操作步骤
说明 本文以华东1(杭州)同一VPC下的两个RDS PostgreSQL实例间迁移为例,源实例存储空间为500 GB,实际使用200 GB,迁移至存储空间为250 GB的目标实例。
- 源实例配置。
- 添加白名单。
添加白名单的具体操作,请参见
设置白名单,
组内白名单请填写目标实例的VPC网段。
查看方法:
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
- 在左侧导航栏单击数据库连接,在网络类型中查看VPC网段。

- 创建高权限账号。
创建账号的具体操作,请参见
创建账号。
账号类型请选择高权限账号。
说明 高权限账号用于迁移上云,需要具备CREATE ROLE、REPLICATION和pg_monitor权限。如果您已有高权限的账号,则无需重复创建。
- 目标实例配置。
- 上云评估。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
- 在左侧导航栏单击一键上云,单击上云评估页签。
- 在配置向导的选择迁移来源步骤,选择迁移来源为阿里云ECS自建PostgreSQL或阿里云RDS PostgreSQL后,单击下一步。
- 在目标库配置步骤,单击下一步。
- 在源库配置步骤,选中所有配置准备项,单击下一步。
- 在发起迁移评估步骤,配置源库信息。
参数 | 取值说明 |
---|
迁移任务名 | 系统自动生成,无需修改。 |
源端 VPC IP/DNS | 填写源实例的内网连接地址。具体请参见查看内网地址。 |
源端Port | 填写源实例的端口,具体请参见查看端口。 |
用户名 | 源实例中创建的高权限数据库账号。 |
密码 | 源实例中创建的高权限数据库账号的密码。 |
- 单击创建迁移评估任务。
说明 迁移评估任务期间,实例状态将变更为维护实例中。
迁移评估完成后,您可以在
上云评估页面查看迁移评估任务的状态。
- 只有状态为成功,您才能进行迁移上云步骤。
- 如果状态为失败,请单击操作列的查看报告,根据报错进行处理,常见报错请参见解读上云评估报告。
- 迁移上云。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
- 在左侧导航栏单击一键上云,切换至迁移上云页签,单击创建迁移上云任务。
- 在创建迁移上云任务窗口中,从关联评估任务列表中选择已成功的上云评估任务。
说明 选择关联评估任务后,源库类型、源端 IP/DNS、源端Port和用户名参数将会自动获取,无需配置。
- 单击发起迁移上云,系统将自动启动上云任务。
重要 上云任务期间,实例状态将变更为迁入数据中。您可以对源实例进行读写,但请勿执行迁移、重启、变配等操作。
- 将目标RDS PostgreSQL提升为主库。
- 在迁移上云任务中,单击上云阶段列的链接,查看当前上云任务进度。
- 当上云阶段为增量同步时,可单击操作列的上云切换,将目标RDS PostgreSQL提升为主库,正式提供服务。
- 在切换上云窗口,根据上云须知提示,设置源实例只读或应用停止写入。
说明 参考如下步骤,设置源实例只读:
- 通过设置实例参数功能,修改源实例参数rds_force_trans_ro_non_sup取值为on。
- 使用如下语句,中断所有现有会话。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
- 选中所有复选框,单击立即切换,等待迁移完成。
后续配置
为了确保RDS PostgreSQL实例缩容后,应用侧在不修改业务代码的情况下依然正常连接,还需要在目标实例做如下配置。
- 修改目标实例白名单设置,与源实例白名单保持一致。更多信息,请参见设置白名单。
- 修改目标实例的连接地址,与源实例连接地址相同。修改方法请参见修改内外网连接地址。
以源实例连接地址为
pgm-aaa.pg.rds.aliyuncs.com
,目标实例连接地址为
pgm-bbb.pg.rds.aliyuncs.com
为例,修改方法如下。
- 将源实例连接地址
pgm-aaa.pg.rds.aliyuncs.com
修改为pgm-ccc.pg.rds.aliyuncs.com
。 - 将目标实例连接地址
pgm-bbb.pg.rds.aliyuncs.com
修改为pgm-aaa.pg.rds.aliyuncs.com
。