升级步骤

更新时间:
复制为 MD 格式

在进行PolarDB PostgreSQL大版本升级过程中,将为您创建目标PolarDB集群并进行数据同步。升级后的PolarDB集群将包含源集群的账号信息、数据库、IP白名单以及必要的参数配置。

前置检查:检查是否已创建PolarDB服务关联角色

在使用逻辑迁移(DTS数据同步)方式进行大版本升级前,请先检查是否已创建PolarDB服务关联角色,以及是否已授予DTS访问云资源的权限

  • 检查是否已创建PolarDB服务关键角色

    1. 使用阿里云账号(主账号)前往RAM控制台身份管理>角色列表。

    2. 检查角色列表中,是否已存在名为AliyunServiceRoleForPolarDB的服务关联角色,如下:image

      • 若存在,请跳过当前检查步骤。

      • 若不存在,则继续执行以下步骤。

    3. 单击创建角色,在打开的创建角色页面中,单击右上角的创建服务关联角色image

    4. 在打开的创建服务关联角色页面中,选择信任的云服务AliyunServiceRoleForPolarDB,并单击创建服务关联角色以完成创建。image

  • 检查是否已授予DTS访问云资源的权限

    以下为您展示如何查看授权结果以及快速授权的方式。更多信息,请参见授予DTS访问云资源的权限

    查看授权结果

    1. 使用阿里云账号(主账号)前往RAM控制台身份管理>角色列表。

    2. 检查角色列表中,是否已存在名为AliyunDTSDefaultRole的角色,如下:image

      1. 若不存在,请前往快速授权

      2. 若存在,则继续执行以下步骤检查当前角色权限。

    3. 单击角色名称,查看AliyunDTSDefaultRole的详细信息。

      • 当角色AliyunDTSDefaultRole同时满足如下条件时,表示授权成功。

        • 权限管理中包含系统策略AliyunDTSRolePolicy

          image

        • 信任策略中包含dts.aliyuncs.com

          image

      • 当角色AliyunDTSDefaultRole不满足上述条件时,表示授权失败,需要重新授权。您可以删除角色AliyunDTSDefaultRole,重新授权。

    快速授权

    使用阿里云账号(主账号)访问AliyunDTSDefaultRole快捷授权页面,在访问控制快速授权页面中,单击确认授权

    说明

步骤一:从PolarDB升级迁移

本操作将创建一个与源PolarDB集群数据相同的PolarDB集群,源集群的增量数据会实时同步到该PolarDB集群。

说明

大版本升级时,全量数据初始化时将占用源集群和目标集群一定的读写资源,可能会导致数据库的负载上升,您可按需调整同步速率,详细操作请参见调整迁移速率

  1. 登录PolarDB控制台,单击创建新集群

  2. 计费类型选择包年包月按量付费

    • 包年包月:在创建集群时支付计算节点的费用,而存储空间会根据实际数据量按小时计费,并从账户中按小时扣除。

    • 按量付费:无需预先支付费用,计算节点和存储空间(根据实际数据量)均按小时计费,并从账户中按小时扣除。

  3. 根据实际使用场景,设置以下参数。

    说明

    以下表格中未详细介绍的参数, 请参考自定义购买

    参数

    说明

    地域

    选择源PolarDB PostgreSQL集群所在地域。

    创建方式

    选择PolarDB升级迁移

    PolarDB版本

    选择源PolarDB PostgreSQL集群的版本。

    PolarDB集群

    选择源PolarDB PostgreSQL集群。

    数据库引擎

    选择目标集群的数据库引擎版本。

    产品版本

    选择目标集群的产品版本。

    CPU架构

    选择目标集群的CPU架构。

    节点个数

    建议与源集群的节点个数保持一致。

    当前选择规格

    建议与源集群的节点规格保持一致。

  4. 在右侧检查集群配置信息,设置购买时长(针对包年包月集群)、购买数量和是否自动续费(针对包年包月集群)。

  5. 阅读并勾选服务协议。单击立即购买。针对包年包月集群,还需在支付页面,确认未支付订单信息和支付方式,单击订购

    说明
    • 支付成功后,请等待10~15分钟创建集群,之后您就可以在集群列表中看到新创建的集群。

    • 当集群中的节点状态为创建中时,整个集群可能仍未创建完成,此时集群不可用。只有当集群状态为运行中时,集群才可以正常使用。

    • 请确认已选中正确的地域,否则无法看到您创建的集群。

  6. 集群创建成功后,单击集群ID进入集群基本信息页。

  7. 基本信息页的PolarDB升级功能区域,确认目标PolarDB集群的复制延迟小于60秒即可进行操作。image

    说明
    • 已存在DTS双向同步的集群无法进行大版本升级,可能会出现数据不一致问题

    • 集群创建后,开始从源PolarDB集群同步数据,您需要在30天内完成迁移,超过30天将自动关闭升级功能。

    • PolarDB集群创建完成后,若迁移状态变为预检查失败,请根据错误信息中的提示进行处理。例如:image

      • 源集群存在没有主键的表,同步数据后可能会导致目标数据库中出现重复数据。您可选择单击跳过当前校验或者给表加上主键之后继续迁移,放弃则单击放弃迁移

      • 源集群中存在触发器,同步数据后可能会导致目标数据库中出现重复数据。请先删除源集群的触发器,再单击继续迁移,或者单击放弃迁移后手动去DTS控制台页面创建迁移任务。具体可参见源库存在触发器时如何配置同步或迁移作业

步骤二:地址补齐(可选)

PolarDB大版本升级支持带地址切换,您可保留数据库原连接地址,无需应用程序修改任何连接配置即可切换至新的PolarDB。需要注意,仅当源PolarDB和目标PolarDB集群同时存在的连接地址才支持相互切换,默认情况下目标端仅创建私网主地址和私网集群地址,如果源端包含2个以上的连接地址,您需在切换前在目标端创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群创建连接地址,请参见查看或申请连接地址

说明
  • 在目标端集群会变成运行中后,才可进行地址补齐操作。此外您还可以根据业务需要,进行地址属性配置或集群参数配置等操作。

  • 使用带地址切换交换私网地址前,请确保源PolarDB和目标端PolarDB集群属于同一个VPC,否则切换后原有服务将无法连接。

步骤三:升级切换

目标PolarDB集群的复制延迟小于60秒时,即可进行升级切换操作。

  1. 基本信息页面的PolarDB升级功能区域,单击迁移切换image

    说明
    • 一般情况下,升级在5分钟之内即可完成。

    • 该操作将交换源PolarDB集群和目标PolarDB集群的读写状态,即将源PolarDB集群修改为只读,将目标PolarDB集群修改为可读可写。同时,DTS会更换数据复制方向,即将目标PolarDB集群的新增数据同步到源PolarDB集群。

  2. 在对话框中,选择带地址切换(应用程序不用改连接配置)不带地址切换(应用程序需要改为新的PolarDB连接配置)image

    • 若您选择带地址切换(应用程序不用改连接配置),操作步骤如下:

      1. 选中带地址切换(应用程序不用改连接配置)。系统会自动交换源PolarDB和目标PolarDB上的连接地址,您无需在应用程序端修改任何配置即可自动连接到目标PolarDB集群。

        重要

        选择带地址切换(应用程序不用改连接配置)前,请务必阅读带地址切换注意事项

      2. 单击确定

    • 若您选择不带地址切换(应用程序需要改为新的PolarDB连接配置),操作步骤如下:

      1. 勾选不带地址切换(应用程序需要改为新的PolarDB连接配置)

      2. 单击确定

      3. 刷新页面,当目标PolarDB读写状态显示为读写后,尽快修改应用中的数据库连接地址。

说明

迁移切换完成后,如果您发现数据存在异常等问题,可以进行回滚操作,快速恢复至迁移前的状态。

步骤四:完成迁移

完成步骤一:从PolarDB升级迁移后,您需要在30天内完成升级操作。

重要
  • 请确保在单击完成迁移前,数据已完成迁移,并且后续不再使用数据同步功能。

  • 由于该操作会中断源PolarDB集群和目标PolarDB集群间的数据同步任务,且不再提供迁移回滚功能,建议您使用一段时间目标PolarDB集群,确认正常后再执行完成升级操作。

  1. 基本信息页面的PolarDB升级功能区域,单击完成迁移

  2. 完成迁移对话框中,可以选择是否设置目标实例的wal_level为默认值replica,并单击确定

    说明
    • 选择切换wal_level参数设置为默认值replica,会带来少量的写入性能提升。但重置wal_level参数,PolarDB集群会自动重启使新配置生效。

    • 单击确定后,系统将在2分钟之内中断同步关系,升级状态将显示为关闭同步

    • 如果您选择了切换wal_levelPolarDB集群会自动重启使新配置生效。

    • 如果不再需要源PolarDB集群,可以选择释放PolarDB集群。

附录:查看数据同步任务详情

在使用逻辑迁移(DTS数据同步)方式进行大版本升级的过程中,若遇到迁移报错(如预检查失败)或者其他异常状态(如复制延迟异常高)时,您可以前往对应的DTS数据同步任务的详情页,查看数据同步任务的具体信息。

  1. 基本信息页面的PolarDB升级功能中,单击DTS数据同步任务的任务名称,进入DTS控制台数据同步列表。image

  2. 找到对应的数据同步任务,您可查看预检查失败详情、查看同步任务详情、查看同步任务日志等。

  3. (可选)迁移过程中,若需要调整同步任务的同步对象(如源集群有新增库时,需要将新增库也纳入同步对象),您可单击修改同步对象重新配置。

附录:迁移回滚

在完成迁移前,如果您发现数据存在异常等问题,可以进行回滚操作,快速恢复至迁移前的状态(源集群为可读可写,目标集群为只读,同时会将目标集群的数据同步到源集群)。

  1. 基本信息页面的PolarDB升级功能区域,单击迁移回滚

  2. 在对话框中,选择带地址回切(应用程序不用改连接配置)不带地址回切(应用程序需要改为源实例连接配置)

    • 若您选择带地址回切(应用程序不用改连接配置),操作步骤如下:

      1. 选中带地址回切(应用程序不用改连接配置),系统会自动交换源集群和目标集群上的连接地址,您无需在应用程序端修改任何配置即可自动回切到源集群。

      2. 单击确定。此时源集群为可读可写,目标集群为只读,同时会将目标集群的数据同步到源集群。

    • 若您选择不带地址回切(应用程序需要改为源实例连接配置),操作步骤如下:

      1. 选中不带地址回切(应用程序需要改为源实例连接配置),在迁移切换完成后,您需要尽快修改应用程序端的数据库连接地址。

      2. 单击确定。此时源集群为可读可写,目标集群为只读,同时会将目标集群的数据同步到源集群。

      3. 刷新页面,当RDS读写状态显示为读写后,请尽快修改应用里的数据库连接地址为源集群连接地址。

附录:取消迁移

若您在大版本升级过程中,因业务等原因不想进行大版本升级时,可进行取消迁移操作。快速恢复至迁移前的状态,即会切断源集群到目标集群的同步链路,源集群和目标集群不再关联。

说明

取消迁移后,目标集群恢复可读可写状态,且不会自动释放。若不再需要使用该集群,请尽快释放,避免产生额外费用

  1. 基本信息页面的PolarDB升级功能区域,单击取消迁移

  2. 取消迁移页面的对话框中,您可以选择是否设置目标实例的wal_level为默认值replica,并单击确定

    image

常见问题

升级后的PolarDB PostgreSQL节点规格需要和源集群规格保持一致吗?

不一定,您可以按需选择PolarDB PostgreSQL的规格,建议不低于源集群规格。

放弃迁移会有什么影响?

  • 会切断源集群到目标集群的同步链路,源集群和目标集群不再关联。

  • 目标集群恢复可读可写状态,且不会自动释放。若不再需要使用该集群,请尽快释放,避免产生额外费用

升级完成后,将业务切换到PolarDB,应用程序端的连接地址是否需要修改?

您可以在迁移切换时选择带地址切换(应用程序不用改连接配置),系统会自动交换源集群和目标集群上的连接地址,您无需在应用程序端修改任何配置即可自动连接到目标集群。

迁移时选择了带地址切换(应用程序不用改连接配置),迁移完成后为什么目标集群仍然使用新的连接地址?

仅当源集群和目标集群同时存在的连接地址才支持相互切换,默认情况下仅私网主地址支持带地址切换。如需切换其他连接地址,您需在切换前创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群创建连接地址,请参见查看或申请连接地址

业务成功切换后,为什么连接不上目标集群或连接成功但只支持读操作无法执行写入操作?

切换域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上数据库或数据库只支持读操作无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。

迁移切换后,为什么在PolarDB控制台上看不见完成迁移按钮?

若您已经执行过完成迁移操作,该按钮将会消失,避免您重复执行相同操作。

大版本升级后,还需要在目标PolarDB集群中创建与源集群相同的账号和密码吗?

不需要。升级后PolarDB集群将包含源集群的账号密码、数据库、IP白名单和必要的参数等信息。