本章节介绍了PolarDB MySQL版集群之间升级的操作步骤。
前置检查
若您已完成升级评估并且无相关异常,可跳过该前置检查。
检查是否已创建PolarDB服务关联角色
在升级之前,请先检查是否已创建PolarDB服务关联角色,以及是否已授予DTS访问云资源的权限。
检查是否已创建PolarDB服务关键角色的操作步骤如下:
前往RAM控制台。
在左侧导航栏,选择身份管理>角色。
在角色列表中,查看是否已存在名为AliyunServiceRoleForPolarDB的服务关联角色。
若存在,则执行步骤一:从PolarDB升级。
若不存在,则继续执行以下步骤。
单击创建角色。
在打开的创建角色对话框中,选择阿里云服务,并单击下一步。
角色类型选择服务关联角色,云服务选择云数据库PolarDB。
单击完成,返回角色列表,确保已创建成功。
删除源PolarDB MySQL版集群中多余系统账号
为了避免迁移后目标PolarDB MySQL版集群的系统账号被覆盖,源PolarDB MySQL版集群中不允许同时存在root和aliyun_root账号。因此,在进行迁移升级前,请先删除源集群中多余的系统账号。
PolarDB MySQL版各个版本的正确系统账号名如下:
PolarDB MySQL版版本 | 正确的系统账号名 |
PolarDB MySQL版 5.6 | root |
PolarDB MySQL版 5.7 | aliyun_root |
PolarDB MySQL版 8.0 | root |
各个版本除了对应的系统账号之外,其余系统账号均需删除。
账号可能是用户创建的,也可能是系统创建并因版本升级而遗留的,某些场景下不会在控制台显示。
以清理PolarDB MySQL版5.6多余的系统账号为例,具体删除步骤如下:
使用高权限账号连接数据库集群。
找到所有的root和aliyun_root系统账号。
select * from mysql.user where user in ('root', 'aliyun_root');
删除多余的系统账号。PolarDB MySQL版5.6正确的系统账号是root,因此需要删除aliyun_root账号。
delete from mysql.user where user = 'aliyun_root' limit n;
智能压测(可选)
在执行大版本升级之前,您可以使用该智能压测功能,模拟演练您的业务流量运行在目标版本的PolarDB集群上的场景,帮助您:
验证您的集群规格是否需要扩容,以有效应对业务流量高峰;
分析原版本和目标版本的PolarDB集群在SQL模板方面的执行性能差异等。
智能压测详细操作步骤请参见智能压测。
步骤一:从PolarDB升级迁移
通过该步骤,您将创建一个与源PolarDB MySQL版集群数据相同的集群,源PolarDB MySQL版集群的增量数据会实时同步至该集群。
在开始迁移前,建议您先完成升级评估。
登录PolarDB控制台。
进入集群购买页面。您可以通过以下两种方式中的任意一种方式进入购买页:
单击创建新集群。
单击需要执行升级操作的集群ID,在左侧导航栏,选择配置与管理 > 版本管理。在大版本升级页签,单击迁移升级。
计费类型选择包年包月、按量付费或Serverless。
包年包月:在创建集群时支付计算节点的费用,而存储空间会根据实际数据量按小时计费,并从账户中按小时扣除。
按量付费:无需预先支付费用,计算节点和存储空间(根据实际数据量)均按小时计费,并从账户中按小时扣除。
Serverless:无需预先支付费用,计算节点、存储空间、数据库代理等资源在集群使用过程中基于实际需求动态弹性扩缩,并根据扩缩的实际用量来计费。
根据实际使用场景,设置以下参数。
说明以下表格中未详细介绍的参数, 请参考购买集群。
参数
说明
创建方式
选择从PolarDB升级迁移。
地域
选择源PolarDB MySQL版集群所在地域。
源PolarDB版本
源PolarDB MySQL版集群的版本。您可以选择5.6、5.7或8.0。
源PolarDB集群
选择源PolarDB MySQL版集群。
数据库引擎
目标集群的数据库引擎版本。
版本之间升级时,您可以选择与源集群相同的版本,也可以选择跨版本。
架构之间升级时,必须选择MySQL 8.0。
说明产品版本
与原集群的产品版本保持一致,无需选择。
系列
目标集群的系列。
版本之间升级时,选择集群版【推荐】。
架构之间升级时,选择多主集群(库表)。
说明CPU架构
与原集群的CPU架构保持一致,无需选择。
节点个数
与原集群的节点个数保持一致,无需选择。
当前选择规格
目标集群的节点规格。
数据库代理类型
与原集群的数据库代理规格保持一致,无需选择。
在右上角检查集群配置信息,设置购买时长(针对包年包月集群)、购买数量和是否自动续费。
阅读并勾选服务协议。单击立即购买。
在支付页面,确认未支付订单信息和支付方式,单击订购。
说明支付成功后,需要等待10~15分钟创建集群,之后您就可以在集群列表中看到新创建的集群。
当集群中的节点状态为创建中时,整个集群可能仍未创建完成,此时集群不可用。只有当集群状态为运行中时,集群才可以正常使用。
请确认已选中正确的地域,否则无法看到您创建的集群。
集群创建成功后,单击集群ID进入集群基本信息页。
在基本信息页的PolarDB升级功能区域,确认目标PolarDB集群的复制延迟小于60秒即可进行操作。
说明已存在DTS双向同步的集群无法进行一键升级,可能会出现数据不一致问题。
集群创建后,DTS开始从源PolarDB集群同步数据,您需要在30天内完成升级,超过30天将自动关闭升级功能。
您可以在该区域选择放弃升级,放弃升级后的影响请参见常见问题。
若状态显示为预检查失败,请根据错误信息进行处理。
例如,如果源PolarDB集群中创建了触发器,则预检查会失败并报错“PolarDB集群存在触发器”。请先删除PolarDB的触发器,再单击继续升级,或单击放弃升级后手动在DTS控制台页面创建迁移任务。具体可参见源库存在触发器时如何配置同步或迁移作业。
架构升级时,目标集群默认的写入点为MasterID=1的RW节点,为确保DTS数据同步任务的正常运行,在升级完成之前,始终保持在该RW节点进行写入。
步骤二:地址补齐(可选)
PolarDB大版本升级支持带地址切换,您可保留数据库原连接地址,无需应用程序修改任何连接配置即可切换至新的PolarDB。需要注意,仅当源PolarDB和目标PolarDB集群同时存在的连接地址才支持相互切换,默认情况下目标端仅创建私网主地址和私网集群地址,如果源端包含2个以上的连接地址,您需在切换前在目标端创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群创建连接地址,请参见管理连接地址。
在目标端集群会变成运行中后,才可进行地址补齐操作。此外您还可以根据业务需要,进行地址属性配置、集群参数配置、只读节点补齐等操作。
使用带地址切换交换私网地址前,请确保源PolarDB和目标端PolarDB集群属于同一个VPC,否则切换后原有服务将无法连接。
步骤三:升级切换
目标PolarDB集群的复制延迟小于60秒时,即可进行升级切换操作。
登录PolarDB控制台。
找到目标集群,单击集群ID。
在基本信息页面的PolarDB升级功能区域,单击升级切换。
说明一般情况下,升级在5分钟之内即可完成。
该操作将交换源PolarDB集群和目标PolarDB集群的读写状态,即将源PolarDB集群修改为只读,将目标PolarDB集群修改为可读可写。同时,DTS会更换数据复制方向,即将目标PolarDB集群的新增数据同步到源PolarDB集群。
在升级切换对话框中,选择带地址切换(应用程序不用改连接配置)或不带地址切换(应用程序需要改为新的PolarDB连接配置)。
若您选择带地址切换(应用程序不用改连接配置),操作步骤如下:
选中带地址切换(应用程序不用改连接配置)。系统会自动交换源PolarDB和目标PolarDB上的连接地址,您无需在应用程序端修改任何配置即可自动连接到目标PolarDB集群。
单击确定。
若您选择不带地址切换(应用程序需要改为新的PolarDB连接配置),操作步骤如下:
勾选不带地址切换(应用程序需要改为新的PolarDB连接配置)。
单击确定。
刷新页面,当目标PolarDB读写状态显示为读写后,尽快修改应用中的数据库连接地址。
升级切换完成后,如果您发现数据存在异常等问题,可以进行回滚操作,快速恢复至升级前的状态也可以选择升级回滚。
架构升级完成并切换完成后,为避免DTS数据同步任务异常,请务必不要修改目标多主集群(库表)的写入点。
步骤四:源集群DTS任务切换(可选)
进入PolarDB控制台。
找到目标集群,单击集群的ID。
在基本信息页面的PolarDB迁移功能中,单击源实例DTS任务切换。
在切换业务DTS数据库对话框中,选择源实例DTS任务(正向切换)或目标实例DTS任务(切换回滚)。
重要切换前,请先检查源实例和目标实例同步数据的DTS状态,详细DTS状态查询,请参见DTS状态查询。
若您选择源实例DTS任务(正向切换),操作步骤如下:
请选择您需要迁移切换数据库实例的DTS任务。
单击提交正向切换。
若您选择目标实例DTS任务(切换回滚),操作步骤如下:
请选择您需要迁移切换数据库实例的DTS任务。
单击提交切换回滚。
源实例DTS任务(正向切换)适用迁移切换后将源实例的DTS任务切换到目标实例,在迁移切换后,完成迁移前的DTS任务操作。
目标实例DTS任务(切换回滚)适用于切换回滚后将目标实例的DTS任务切换回源实例,在切换回滚后,取消迁移前操作。
步骤五:完成升级
完成步骤一:从PolarDB升级后,您需要在30天内完成升级操作。
请确保在单击完成升级前,数据已完成迁移,并且后续不再使用数据同步功能。
由于该操作会中断源PolarDB集群和目标PolarDB集群间的数据同步任务,且不再提供升级回滚功能,建议您使用一段时间目标PolarDB集群,确认正常后再执行完成升级操作。
登录PolarDB控制台。
找到目标集群,单击集群ID。
在基本信息页面的PolarDB升级功能区域,单击完成升级。
在完成升级对话框中,您可以选择是否关闭PolarDB集群的Binlog,并单击确定。
说明单击确定后,系统将在2分钟之内中断同步关系,升级状态将显示为关闭同步。
如果您选择了关闭Binlog,PolarDB集群会自动重启使新配置生效。
如果不再需要源PolarDB集群,可以选择释放源PolarDB集群。释放集群详情请参见释放集群。
如果您执行的是架构升级操作,在完成升级对话框中单击确定后,目标集群的写入点将恢复至初始状态,即数据库将随机指定RW节点为写入点。
查看数据同步任务详情(可选)
在版本升级的过程中,若升级报错或出现其他异常时,您可以前往对应的DTS数据同步任务详情页查看数据同步任务的详细信息。
登录PolarDB控制台。
找到目标集群,单击集群ID。
在基本信息页面的PolarDB升级功能区域,单击DTS数据同步任务的任务名称,进入DTS控制台的数据同步任务列表。
在数据同步任务列表中,找到对应的数据同步任务,您可以查看同步任务详情和同步任务日志等。
在升级过程中,如果需求有调整(如源PolarDB集群有新增库时,需要将新增加的库也纳入同步对象),您可以单击修改同步对象来重新配置。
升级回滚(可选)
在完成升级之前,如果您发现数据存在异常等问题,可以执行升级回滚操作,将集群快速恢复至升级前的状态(源PolarDB集群为可读可写,目标PolarDB集群为只读,同时会将源PolarDB集群的数据同步至目标PolarDB集群)。升级回滚完成后,如果需要继续执行大版本升级操作,您可以直接从步骤三:升级切换操作开始执行。
登录PolarDB控制台。
找到目标集群,单击集群ID。
在基本信息页面的PolarDB升级功能区域,单击升级回滚。
在开始回切对话框中,选择带地址回切(应用程序不用改连接配置)或不带地址回切(应用程序需要改为源集群连接配置)。
若您选择带地址回切(应用程序不用改连接配置),操作步骤如下:
选中带地址回切(应用程序不用改连接配置),系统会自动交换源PolarDB集群和目标PolarDB集群上的连接地址,你无需在应用程序端修改任何配置即可自动回切到源PolarDB集群。
单击确定。
此时,源PolarDB集群为可读可写,目标PolarDB集群为只读,同时会将源PolarDB集群的数据同步到目标PolarDB集群。
说明执行架构升级回滚操作时,您可以根据需要选择回滚地址。
若您选择不带地址回切(应用程序需要改为源集群连接配置),操作步骤如下:
选中不带地址回切(应用程序需要改为源集群连接配置),在升级切换完成后,您需要尽快修改应用程序端的数据库连接池地址。
单击确定,此时,源PolarDB集群为可读可写,目标PolarDB集群为只读,同时会将源PolarDB集群的数据同步至目标PolarDB集群。
刷新页面,当源PolarDB集群的状态显示为读写后,请尽快修改应用程序中的数据库连接地址为源PolarDB集群的连接地址。
取消升级(可选)
登录PolarDB控制台。
找到目标集群,单击集群ID。
在基本信息页面的PolarDB升级功能区域,单击取消升级。
在取消升级页面的对话框中,单击确定。