交换连接地址

RDS PostgreSQL支持一键交换两个RDS PostgreSQL实例的连接地址,以减少在新旧实例替换等场景下进行连接地址交换所消耗的时间。

前提条件

需要交换地址的两个RDS PostgreSQL实例需要满足以下条件:

  • 实例状态为运行中。

  • 必须在同一阿里云账户内。

  • 计费方式为按量付费、包年包月。

  • 连接地址具有相同的端口

  • 未开启连接池(PgBouncer)。

  • 未启用Babelfish,即小版本号后缀不带babelfish

注意事项

  • 只能在同类型连接地址之间进行交换。

    源实例地址类型

    可交换的目标端地址类型

    内网地址

    内网地址

    外网地址

    外网地址

  • 在交换连接地址的过程中,不会交换白名单。建议交换连接地址前,手动同步白名单

  • 在交换连接地址后,源实例将处于只读状态,以确保数据的一致性。建议将切换后不再承载业务的实例作为源实例,将切换后继续承载业务的实例作为目标实例。

    说明

    通过将源实例的rds_force_trans_ro_non_sup参数值修改为off,可以解除实例的只读状态。在解除源实例的只读状态之前,建议进行充分的验证。

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏中单击数据库连接

  3. 数据库连接页单击交换连接地址

    image

  4. 在弹出的对话框中,根据需要切换网络类型,并选择目标实例名以及是否保留vip后,单击确定

    系统会自动填入交换的本实例连接地址和对应类型的目标连接地址

    重要

    保留虚拟IP地址(VIP)会造成DNS缓存问题,从而延长切换时间。

相关API

通过ModifyDBInstanceConnectionString接口TargetDBInstanceIdRetainVip参数,可以实现交换实例的连接地址。