业务背景
PolarDB MySQL版(以下简称PolarDB)为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务,越来越多的客户采用PolarDB来支撑业务,随着业务发展和MySQL版本的演进,客户需要将PolarDB的低版本升级至高版本。
传统的开源MySQL数据库升级需要DBA/运维利用MySQL的工具设计方案进行升级,有停机风险和人力成本问题。
PolarDB提供了大版本一键升级的能力,通过白屏操作可以完成大版本一键升级的操作。
比如如PolarDB MySQL版5.6升级至PolarDB MySQL版5.7,PolarDB MySQL版5.6升级至PolarDB MySQL版8.0.1等,PolarDB MySQL版5.7升级至PolarDB MySQL版8.0.1。
升级级方案介绍
登录PolarDB控制台,选择创建新集群,进入PolarDB购买页,创建方式选择“从PolarDB升级迁移”,再选好需要升级的源PolarDB实例以及目标PolarDB实例,选择节点规格后即可下发升级任务,升级任务将自动创建一个新的PolarDB实例并开始同步源PolarDB数据,同步完全量数据后会继续保持增量数据的同步。
数据达到同步后可以点击“迁移切换”并选择需要切换的地址可以将数据库连接地址到目标PolarDB,无需修改客户端的连接配置。
迁移切换后如果需要将连接回滚到源PolarDB,可以点击“迁移回滚”并选择需要切换的地址将连接切换到源PolarDB,无需修改客户端的连接配置。
如果确认升级符合预期可以点击“完成迁移”完成整个升级流程。
方案优势
- 可保留数据库原来的连接地址,无需修改应用程序的任何连接配置即可切换至目标版本。
- 升级链路免费。
- 升级过程数据0丢失。
- 支持增量迁移,停机时间小于10分钟。
- 支持在线热升级,升级过程仅闪断一次。
- 支持回滚操作,升级失败可以在10分钟内恢复。
升级级方案详细步骤
创建升级任务
创建写节点、读节点和standby子实例,以及数据库代理实例,根据源PolarDB实例的情况自动设置磁盘空间大小。配置SSL(Secure Sockets Layer)加密,默认给PolarDB主地址开启SSL加密。配置TDE(Transparent Data Encryption)加密,同步源实例的密钥信息。
配置必要的实例参数,包括字符集、时区、表名是否大小写敏感、文件名是否大小写敏感等。
同步源实例的白名单和安全组设置。使用物理复制或DTS数据同步的方式,在源PolarDB和目标PolarDB实例之间建立数据同步,同步完全量数据后使用Binlog保持增量数据的同步。同步源PolarDB实例的账号信息,包括高权限账号和备注等信息。同步源实例的备份策略,设置目标PolarDB的一级备份、二级备份和高频备份信息。为避免用户误写入数据,设置目标PolarDB实例为只读。
升级切换和回滚
数据同步完成后,可以将读写切换到目标PolarDB,可选择带地址切换(应用程序不用改连接配置)或不带地址切换(应用程序需要改为新的PolarDB连接配置)。
带地址切换时,源PolarDB和目标PolarDB的主地址切换,源PolarDB自定义读写地址和自定义只读地址的切换,可以选择不切换或切换多组。切换地址时会交换连接地址的DNS映射,使地址指向新的IP,从而达到交换地址无需修改应用程序连接配置的目的。
升级切换会将源PolarDB设置为迁移锁定,实例为只读状态,目标PolarDB实例设置为可读可写状态,并配置反向数据同步链路保证源PolarDB数据与目标PolarDB一致方便及时回滚。

使用带地址切换功能时,需要注意以下几点:
- 带地址切换只会切换源集群和目标集群的域名,Vswitch和Vip等配置不会切换。
- 仅当源集群和目标集群同时存在连接地址才支持相互切换,默认情况下仅私网主地址支持带地址切换。
- 版本之间升级选择带地址切换时,源集群和目标集群的主地址一定会切换,可以选择不切换或切换多组。
- 架构之间升级选择带地址切换时,您可以选择源集群和目标集群的切换地址,可以选择不切换或切换多组。
- 如需切换其他连接地址,您需在切换前创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群创建连接地址,请参见申请集群地址和主地址。
- 带地址切换不会切换端口,请确保源集群和目标集群的连接端口一致(PolarDB默认使用的端口号为3306),如需修改端口,请参见修改连接地址和端口。
- 切换域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上数据库或数据库只支持读操作而无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。
结束升级
升级切换之后,如果确认目标PolarDB使用没有问题,可以选择结束升级,该操作将中断目标PolarDB集群和源PolarDB集群间的数据同步,将目标PolarDB集群和源PolarDB集群都设置为可读可写,源和目标集群不再关联,可以选择是否关闭Binlog,完成升级操作。
升级评估(可选)
为了保证升级链路的顺利和更好的升级体验,PolarDB提供了升级评估功能,您可以校验在开始升级前,对实例状态、升级任务依赖、源实例属性信息等前提条件进行预校验,提前发现影响升级进度的前置条件并处理,以降低升级过程中的处理成本和资源成本。具体操作说明,请参见升级评估。




