将PostgreSQL数据同步到PostgreSQL
操作场景
云数据库RDS界面提供数据复制服务DRS的数据实时同步功能,支持在同一Region内RDS for PostgreSQL实例之间进行数据同步,并将所选数据库同步至目标实例。
注意事项
- 使用数据实时同步功能必须具备相关权限,详见权限管理。
- RDS界面的该功能基于数据复制服务DRS实现,如果当前region不存在DRS服务则无法使用。更多内容,请参见将PostgreSQL同步到PostgreSQL。
- 数据实时同步时会占用实例资源,请在业务低峰期使用此功能。
- 目标实例存储空间需要充足,若空间不足可能会导致同步失败。
- 请确保选择的同步数据库在目标实例中不存在。
- RDS控制台仅展示在RDS最近一次创建的DRS同步任务,再次下发不再展示历史任务,如需查看当前实例全部同步任务,请在DRS查看。
- 数据实时同步下发后,会进行DRS同步任务创建并启动,启动后用户需根据任务状态或者页面展示时延判断手动结束、删除同步任务。
- 数据实时同步功能依赖rds_hwdrs_ddl插件,数据同步中自动为每个数据库安装了rds_hwdrs_ddl插件,如需卸载请任务迁移完成后手动卸载插件,详见通过界面安装和卸载插件。
- 数据实时同步任务失败时,可通过DRS失败案例排查处理:PostgreSQL->PostgreSQL实时同步失败案例。
约束限制
- 仅支持在同一Region内RDS for PostgreSQL实例之间进行数据同步。
- 不支持RDS for PostgreSQL增强版实例。
- 容灾实例、只读实例不支持此功能。
- 同步任务进行中切勿修改密码、重启数据库等操作,可能影响同步功能。
- 源端、目标端实例需状态正常、下发时无其他冲突操作,若源端实例无冲突任务下发时报错“与当前操作冲突的另一个操作正在进行”,可检查目标端实例是否存在冲突操作。
- 目标实例数据库大版本需等于或高于源实例数据库大版本,例如:16.8版本的实例只能同步到16及以上版本的目标实例。
- 所选择同步数据库的数量上限取决于实例规格:取10和(CPU核数×2)中的较大值,且小于等于当前可用逻辑复制槽数量和可用walsender进程个数。
- 同步数据库数量 ≤ 当前可用逻辑复制槽数量(当前可用逻辑复制槽数量 = 当前可创建的最大复制槽个数 - 当前已使用的复制槽个数)
- 修改当前可创建的最大复制槽个数(max_replication_slots),重启实例使参数修改生效。
- 查询当前已使用的复制槽个数:SELECT count(*) FROM pg_replication_slots;
- 同步数据库数量 ≤ 可用walsender进程个数(可用walsender进程个数 = 同时运行的walsender进程最大数量 - 当前walsender进程个数)
- 修改同时运行的walsender进程最大数量(max_wal_senders),重启实例使参数修改生效。
- 查询当前walsender进程个数:SELECT COUNT(*) FROM pg_stat_replication;
- 同步数据库数量 ≤ 当前可用逻辑复制槽数量(当前可用逻辑复制槽数量 = 当前可创建的最大复制槽个数 - 当前已使用的复制槽个数)
计费说明
同步任务的配置费用为单个DRS同步任务的费用,每个源端同步库对应单个DRS同步任务,按照实际使用时长计费。
操作步骤
- 登录RDS管理控制台。
- 单击管理控制台左上角的
,选择区域。 - 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏,单击“数据实时同步”。
- 在“数据实时同步”页面,单击“新建同步任务”。
- 填写同步源端、目标端实例信息,选择企业项目、源端同步库、DRS规格类型,单击“确定”。 图1 创建数据同步任务
表1 参数说明 参数
说明
源端实例
当前RDS for PostgreSQL实例。
源端实例用户名
当前实例的用户名。
需要具有REPLICATION权限,若所选库存在无主键表,需要CREATEDB权限。
源端实例密码
当前实例用户名所对应的密码。
目标端实例
选择同Region下的其他RDS for PostgreSQL实例。
目标端实例用户名
目标端实例的用户名。
需要具有CREATEDB权限。
目标端实例密码
目标端实例用户名所对应的密码。
企业项目
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。请在下拉框中选择所在的企业项目,其中,default为默认项目。
更多关于企业项目的信息,请参见《企业管理用户指南》。
源端同步库
源实例下需要同步的具体库。
规格类型
不同规格类型对应不同性能的性能上限,详细可参考实时同步链路规格说明。
- 查看同步结果。
任务提交成功后,在“数据实时同步”页面,在同步任务列表的右上角,单击
刷新列表,查看DRS任务同步结果。图2 查看同步任务
- 同步任务列表的“描述”列,为所选择的源端同步库名称。
- 根据任务状态或者页面展示时延判断手动结束、删除同步任务。