本文介绍如何通过RDS PostgreSQL的一键上云功能将ECS或IDC自建PostgreSQL数据库迁移到RDS PostgreSQL。该功能采用物理流复制方式,具有速度快、操作简单、稳定性好、场景覆盖全等特点,能够有效提高迁移效率。
前提条件
-
RDS PostgreSQL实例需满足以下条件。
-
实例大版本与自建PostgreSQL相同,当前支持PostgreSQL 10及以上版本。
说明
如需跨大版本迁移,例如从PostgreSQL 10迁移至RDS PostgreSQL 13,需要先参考本文档完成一键上云,再通过升级数据库大版本将RDS PostgreSQL 10升级至RDS PostgreSQL 13。
-
实例需要为主实例,只读实例不支持一键上云。
-
实例的存储类型为云盘。
-
实例为空,无数据,可用存储空间大于等于自建PostgreSQL中数据大小的总和。
-
-
自建PostgreSQL需要满足以下条件。
-
网络
迁移来源
网络配置要求
阿里云ECS自建PostgreSQL或阿里云RDS PostgreSQL
ECS实例或源RDS PostgreSQL实例需要与目标RDS PostgreSQL实例处于相同VPC。如果VPC不同,则需要使用云企业网打通,更多信息,请参见云企业网。
线下IDC自建PostgreSQL(IDC与VPC打通)
需要打通IDC与RDS PostgreSQL实例之间的内网连接。配置方法请参见VPC连接本地IDC。
-
如果从ECS自建PostgreSQL迁移至RDS PostgreSQL实例,需先完成(可选)ECS配置安全组。
-
已完成配置:配置postgresql.conf文件。
-
已完成配置:创建迁移账号。
-
已完成配置:更新pg_hba.conf文件。
-
已完成配置:配置服务器防火墙。
-
注意事项
迁移上云任务期间可以对自建PostgreSQL数据库进行读写,但请勿执行迁移、重启、变配等操作。
步骤一:上云评估
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
-
在左侧导航栏单击一键上云,单击上云评估页签。
-
在配置向导的选择迁移来源步骤,选择迁移来源后,单击下一步。
-
在目标库配置步骤,单击下一步。
-
在源库配置步骤,选中所有已完成的配置准备项,单击下一步。
说明
源库配置步骤的具体操作,请参见(可选)ECS配置安全组、创建迁移账号和更新pg_hba.conf文件。
-
在发起迁移评估步骤,配置源库信息。
参数
取值说明
迁移任务名
系统自动生成,无需修改。
源端 VPC IP/DNS
-
ECS自建PostgreSQL数据库一键上云场景,配置ECS实例的私网IP。获取方法请参见查看IP地址。
-
IDC自建PostgreSQL数据库一键上云场景,配置为IDC的内网IP。
源端Port
自建PostgreSQL数据库的端口,可通过
netstat -a | grep PGSQL
命令查看。用户名
migratetest
,创建迁移账号步骤创建的数据库账号。密码
123456
,创建迁移账号步骤创建的数据库账号的密码。 -
-
单击创建迁移评估任务。
说明
迁移评估任务期间,实例状态将变更为维护实例中。
迁移评估完成后,您可以在上云评估页面查看迁移评估任务的状态。
-
只有状态为成功,您才能进行迁移上云步骤,具体请参见步骤二:迁移上云。
-
如果状态为失败,请单击操作列的查看报告,根据报错进行处理,常见报错请参见解读上云评估报告。
处理报错后,您可以单击操作列的重新评估,重新开始评估任务。
-
步骤二:迁移上云
说明
只有上云评估状态为成功时,才能执行本步骤。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
-
在左侧导航栏单击一键上云,切换至迁移上云页签,单击创建迁移上云任务。
-
在创建迁移上云任务窗口中,从关联评估任务列表中选择步骤一:上云评估中已成功的上云评估任务。
说明
选择关联评估任务后,源库类型、源端 IP/DNS、源端Port和用户名参数将会自动获取,无需配置。
-
单击发起迁移上云,系统将自动启动上云任务。
警告
上云任务期间,实例状态将变更为迁入数据中。您可以对自建PostgreSQL数据库进行读写,但请勿执行迁移、重启、变配等操作,否则将导致上云任务失败。
-
上云切换。
-
在迁移上云任务中,单击上云阶段列的链接,查看当前上云任务进度。
-
当上云阶段为增量同步时,可单击操作列的上云切换,将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();
-
-
如果源实例为自建数据库,则参考如下步骤配置:
-- 设置数据库只读 ALTER SYSTEM SET default_transaction_read_only=on; -- 重新加载参数配置使修改生效 SELECT pg_reload_conf(); -- 中断所有现有会话 SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
-
-
选中所有复选框,单击立即切换,等待迁移完成。
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/155675.html