背景信息
RDS SQL Server提供三种系列的实例,各系列实例支持的能力和各自优缺点都有所差异。
基础系列实例没有备节点作为热备份,因此当实例意外宕机或执行变更配置、版本升级等任务时,会出现较长时间的不可用。
高可用系列实例有一个备实例,主备实例的数据会同步,当主实例故障无法访问时,会自动切换到备用实例。同时高可用系列实例提供完整的产品功能,包括弹性伸缩、备份恢复、性能优化、读写分离等。
集群系列实例基于SQL Server源生AlwaysOn技术,实现计算与存储分离,并且支持创建一个或多个只读实例实现读写分离,满足大量数据库读取需求。
限制条件
符合以下情况的实例暂不支持升级数据库版本:
升级影响
升级操作一旦开始不可取消,且升级完成后无法回退。
升级前后实例名称、访问端口、标签、数据库账号等原有设置均不会发生变化。
升级所需时间取决于实例的数据量等,详情请参见本文常见问题。
实例升级过程中涉及网络切换等,通常会有20分钟内的不可服务时间。详情请参见本文常见问题,请确保应用程序具备自动重连机制。
升级会造成虚拟IP(VIP)的变更,请尽量在您的应用程序中使用连接地址进行连接,不要使用IP地址。
请及时清理客户端DNS缓存。客户端采用JVM的应用,建议将JVM配置中的TTL设置为不超过60秒,可确保在连接地址的VIP地址发生变更时,应用程序可以通过重新查询DNS来接收和使用资源的新VIP地址。
说明
下列JVM中设置TTL的方法可供参考:
为所有使用JVM的应用程序设置TTL:将$JAVA_HOME/jre/lib/security/java.security文件中的networkaddress.cache.ttl参数值设置为60。
仅为本地应用程序设置TTL:在首次调用InetAddress.getByName()
前,即建立任何网络连接之前,在应用程序的初始化代码中设置networkaddress.cache.ttl java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
。
如果有正在执行的DTS任务,升级后,需要重新配置并启动相应的DTS任务。
操作步骤
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在页面的配置信息区域,单击升级版本,在弹出的对话框中单击确认。

在升级引擎版本页面修改配置,重点配置项说明如下,其他配置项说明请参见操作步骤。
说明
部分实例升级时,在版本和系列选择上可能存在限制。具体详情,请参见本文注意事项和限制条件。
参数名称 | 说明 |
升级到版本 | 选择不同的目标版本,对应的产品系列、实例规格选项也会变化,具体请参见升级规则。 |
产品系列 | 选择目标系列: |
实例规格 | 每种规格都有对应的CPU核数、内存、最大连接数和最大IOPS。 |
切换时间 | |
勾选服务条款,单击去支付。
在弹出的对话框中,单击确认。
此时原实例运行状态变更为,当实例的运行状态变更为运行中即代表升级完成。具体时间取决于数据量,请耐心等待。
常见问题
大版本升级期间,是否能变更实例?例如变更实例规格?
大版本升级期间不支持变更实例,必须在大版本升级完成后,才能进行其他操作。
通常情况下,升级实例大版本所需的预估时间范围如下。需注意,以下备份和恢复速度均基于未压缩的数据大小。
说明
由于Web版本的实例不支持备份压缩,因此备份效率会有所影响,备份与恢复速度可能降至100 GB/小时以下。
操作 | 是否必须 | 预计消耗时间 | 注意事项 |
创建与配置新实例 | 必须 | 10~15分钟 | 所需时间根据升级时所选择的产品系列和规格而定。 |
对实例进行全量备份 | 非必须 | 200 GB/小时 | 基于全量备份策略,若36小时内实例未进行过全量备份,大版本升级过程中实例将进行一次全量备份,以平衡事务日志与全量备份的时间。 建议在升级大版本前选择适宜时间手动执行全量备份,或选择在系统自动全量备份结束后的36小时内发起大版本升级任务,以减少升级过程所需总时长。 备份速度可能因地区和时间段的不同而有所变化。 为了获得更准确的备份和恢复性能,请参考最近一次全量备份的数据量和备份时间。
|
在目标实例恢复全量备份 | 必须 | 200 GB/小时 | 无 |
在源实例进行增量事务日志备份 | 必须 | 200 GB/小时 | 进行增量日志备份前后,可能存在2分钟的额外损耗(例如备份准备、收尾、资源分配等)。 |
在目标实例应用增量事务日志备份 | 必须 | 200 GB/小时 | 应用增量日志备份前后,可能存在2分钟的额外损耗(例如备份一致性验证等)。 |
将数据库恢复上线 | 必须 | 正常2分钟内 | |
网络切换等待、网络连接迁移 | 必须 | 10分钟 | 无 |
测试实例:实例规格为4核8 GB,数据量大小为600 GB。
创建与配置新实例:预计耗时12分钟。
全量备份(非必须):预计耗时3小时。(600 GB / 200 GB每小时)
恢复全量备份至目标实例:预计耗时3小时。(600 GB / 200 GB每小时)
在源实例进行增量事务日志备份:预计耗时5分钟。(10 GB / 200 GB每小时)+ 2分钟额外损耗 = 5分钟
在目标实例应用增量事务日志备份:预计耗时5分钟。(10 GB / 200 GB每小时)+ 2分钟额外损耗 = 5分钟
将数据库恢复上线:预计耗时2分钟内。
网络切换与迁移:预计耗时10分钟。
综上,在此示例中,若实例36小时内未进行过全量备份,总耗时预计为6小时34分钟左右,否则需要3小时34分钟左右。
在跨时区场景下,如何正确设置实例升级时的切换时间?
场景示例:用户本人位于迪拜地域,用户RDS SQL Server实例设置的时区为印度时间(实例所在地域为新加坡)。在这种复杂的跨时区情况下,如何设置实例升级时的切换时间,以避免业务中断。
示例目标:用户计划在印度时间的2024年5月11日02:00进行RDS实例的升级切换。
解决方法:将RDS SQL Server实例印度时区时间,转换为迪拜地域的浏览器时间即可(此场景下无需考虑RDS实例所在地域)。即在本示例中,若用户计划在RDS实例的印度时间2024年5月11日02:00进行升级切换,那么用户应在自己所在的迪拜时间(浏览器显示时间),即2024年5月11日00:30,登录到RDS控制台设置实例升级切换时间。
具体转化方法:
将印度时间(2024年5月11日02:00)转换为UTC时间:印度时间比UTC时间早5小时30分钟,因此转换后UTC时间为2024年5月10日20:30。
将UTC时间(2024年5月10日20:30)转换为迪拜时间:UTC时间比迪拜时间晚4小时,因此转换后迪拜时间为2024年5月11日00:30。