PolarDB MySQL版支持不同内核版本之间以及不同产品系列之间的大版本升级,整个过程中将自动为您创建目标版本的PolarDB集群,并从源集群同步数据。升级后的PolarDB MySQL版集群包含源PolarDB MySQL版集群的账号信息、数据库信息、IP白名单和必要的参数。
内核版本升级:
PolarDB MySQL版5.6升级至PolarDB MySQL版5.7、8.0.1或8.0.2。
PolarDB MySQL版5.7升级至PolarDB MySQL版8.0.1或8.0.2。
PolarDB MySQL版8.0.1升级至PolarDB MySQL版8.0.2。
产品系列升级:
企业版集群:集群版升级至多主集群(Limitless)。
相同内核版本或产品版本之间,转换付费类型:
非Serverless集群(包年包月或按量付费集群)升级到Serverless集群。
Serverless集群升级到非Serverless集群(包年包月或按量付费集群)。
具体的升级操作请参见升级步骤。
升级方案优势
可保留数据库原来的连接地址,无需修改应用程序的任何连接配置即可切换至目标版本。
支持增量迁移,停机时间小于10分钟。
支持在线热升级,升级过程仅闪断一次。
支持回滚操作,升级失败可以在10分钟内恢复。
使用限制
类型 | 说明 |
源库限制 |
|
SQL语句限制 | 说明 PolarDB MySQL版关键字与原生MySQL100%兼容。
|
其他限制 |
|
其他注意事项 | DTS会在源库定时执行 |
注意事项
版本之间升级时,如果源集群的连接地址开启了SSL,并且您选择带地址切换来切换该地址,请确保目标集群对应的连接地址已开启SSL。
不支持为已加入全球数据库网络(GDN)的集群执行版本升级操作。
架构之间升级时,由于PolarDB MySQL版多主集群(库表)的连接地址不支持开启SSL,如果源集群的连接地址开启了SSL,则在升级至多主集群(库表)时,不支持使用带地址切换。
升级过程中,全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。
升级过程中,全量数据初始化时会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标集群的表空间比源集群的表空间大。
升级过程中,请勿手动释放DTS任务。
全量数据同步需要一定时间,耗时与数据量大小有关,在此期间,目标端状态为创建中,请耐心等待。
如果待升级的PolarDB集群是已有数据传输服务(DTS)的源集群或目标集群,您可以在大版本升级步骤中,通过源实例DTS任务切换功能来修改(替换)DTS同步或迁移任务的源集群或目标集群,以实现业务的平滑切换。
升级完成后,部分业务SQL可能会遇到性能不如预期的状况。这通常是由于迁移后查询计划的变化,例如未正确选择合适的索引所致。查询计划变化的主要原因包括:
数据库版本差异:新版本的优化器算法可能与源库不同,导致查询优化器的行为发生变化。
存储结构及统计信息差异:尽管数据内容一致,但新库和源库的InnoDB B-tree存储结构及表统计信息存在差异,这可能导致查询优化器选择不同的执行计划。
收费规则
带地址切换
PolarDB MySQL版集群之间的升级支持带地址切换,系统会自动交换源集群和目标集群上的连接地址。连接地址对应关系图如下所示:
版本之间升级连接地址对应关系图如下:
架构之间升级(集群版升级至多主集群(库表))连接地址对应关系图如下:
架构升级支持用户指定源集群和目标集群切换的地址。如源集群的主地址与目标集群的集群地址进行切换、源集群的主地址与目标集群的自定义地址进行切换、源集群的集群地址与目标集群的自定义地址进行切换等。连接地址内部映射关系图如下:
使用带地址切换功能时,需要注意以下几点:
带地址切换只会切换源集群和目标集群的域名,Vswitch和Vip等配置不会切换。
仅当源集群和目标集群同时存在连接地址才支持相互切换,默认情况下仅私网地址支持带地址切换。
说明若源集群的连接地址申请了公网地址,则您需要在目标集群的相应连接地址上申请公网地址,以确保在地址切换功能中能够成功切换相关连接地址上的公网地址。
版本之间升级选择带地址切换时,源集群和目标集群的主地址一定会切换,可以选择不切换或切换多组。
架构之间升级选择带地址切换时,您可以选择源集群和目标集群的切换地址,可以选择不切换或切换多组。
如需切换其他连接地址,您需在切换前创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群创建连接地址,请参见申请集群地址和主地址。
带地址切换不会切换端口,请确保源集群和目标集群的连接端口一致(PolarDB默认使用的端口号为3306),如需修改端口,请参见修改连接地址和端口。
切换域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上数据库或数据库只支持读操作而无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。
升级评估
为了保证升级链路的顺利和更好的升级体验,PolarDB提供了升级评估功能,您可以校验在开始升级前,对实例状态、升级任务依赖、源实例属性信息等前提条件进行预校验,提前发现影响升级进度的前置条件并处理,以降低升级过程中的处理成本和资源成本。
具体操作说明,请参见升级评估。