The features that are provided by each SQL Server version are different. You can upgrade the major engine version and RDS edition of your ApsaraDB RDS for SQL Server instance based on your business requirements. The major engine version and RDS edition of RDS instances that use any SQL Server version can be upgraded.
Background information
In RDS Basic Edition, your RDS instance does not have a secondary RDS instance that can be used as a hot standby. For more information, see RDS Basic Edition. If you are changing the specifications or upgrading the SQL Server version of your RDS instance, your database service becomes unavailable. If your RDS instance fails unexpectedly, your database service also becomes unavailable. The unavailability may last for a long period of time.
In RDS High-availability Edition, your RDS instance has a secondary RDS instance that is used as a hot standby. For more information, see RDS High-availability Edition. Data is synchronized in real time between your RDS instance and its secondary RDS instance. If your RDS instance cannot be connected, your workloads are automatically switched over to the secondary RDS instance. RDS High-availability Edition provides a complete suite of features, such as auto scaling, backup and restoration, performance optimization, and read/write splitting.
RDS Cluster Edition uses the Always On architecture of native SQL Server and implements compute-storage separation. For more information, see RDS Cluster Edition. RDS Cluster Edition enables you to create one or more read-only RDS instances based on the instructions in Create a read-only ApsaraDB RDS for SQL Server instance to implement read/write splitting.Read-only RDS instances are used to process a large number of read requests.
Usage notes
- You cannot roll back the upgrade of the major engine version, RDS edition, or instance
type of your RDS instance.
Warning Before you perform the upgrade, we recommend that you purchase a pay-as-you-go RDS instance that has the required specifications. This way, you can use the new RDS instance to test the compatibility with your workloads. For more information, see Create an ApsaraDB RDS for SQL Server instance.
- The following table describes the upgrade rules.
Item Upgrade rule Database engine version - Upgrade from an SQL Server SE version to an SQL Server EE version
- Upgrade from an SQL Server SE version to an SQL Server EE version (cluster edition)
- Upgrade from an SQL Server Web version to an SQL Server SE version
- Upgrade from an SQL Server Web version to an SQL Server EE version
- Upgrade from an SQL Server Web version to an SQL Server EE version (cluster edition)
Note If your RDS instance runs an SQL Server Web version, you must upgrade the SQL Server Web version to an SQL Server SE version and then to an SQL Server EE version or an SQL Server EE version (cluster edition).RDS edition - Upgrade from RDS Basic Edition to RDS High-availability Edition
- Upgrade from RDS High-availability Edition to RDS Cluster Edition
Instance type - Upgrade from a shared instance type to a general-purpose instance type
- Upgrade from a shared instance type to a dedicated instance type
- Upgrade from a general-purpose instance type to a dedicated instance type
Note- If your RDS instance runs RDS High-availability Edition and uses a shared instance type, you cannot directly upgrade the RDS instance to a dedicated instance type on RDS Cluster Edition.
- You can upgrade your RDS instance only to an instance type that provides the same or higher specifications. For more information about the rules of the upgrade to an instance type that provides higher specifications, see the preceding section.
- You cannot directly upgrade your RDS instance from a shared instance type to another shared instance type.
- After the upgrade is complete, you must switch over your workloads. The downtime caused by the switchover varies based on the data volume of your RDS instance. In most cases, the switchover requires approximately 20 minutes. We recommend that you switch over your workloads during the specified maintenance window. Make sure that your application is configured to automatically reconnect to your RDS instance.
- A major engine version upgrade may cause compatibility issues. We recommend that you use the instance cloning feature to create an RDS instance and check the compatibility of the new major engine version on the new RDS instance. For more information, see Restore the data of an ApsaraDB RDS for SQL Server instance.
Limits
- RDS instances that are added to Active Directory (AD) domains cannot be upgraded.
- RDS instances that use Bring Your Own License (BYOL) cannot be upgraded.
- RDS instances for which the Transparent Data Encryption (TDE), SSL encryption, or disk encryption feature is enabled cannot be upgraded.
- RDS instances that reside in the classic network cannot be upgraded.
- RDS instances for which the snapshot backup feature is enabled cannot be upgraded.
- If the primary RDS instance in your database system runs SQL Server 2017 or SQL Server 2019 on RDS Cluster Edition and read-only RDS instances are attached to the primary RDS instance, the primary RDS instance cannot be upgraded. Read-only RDS instances cannot be upgraded.
Impacts
- If you start an upgrade task on your RDS instance, you cannot cancel the upgrade task.
- The settings of your RDS instance, such as the instance name, port, tags, and database accounts, remain unchanged after the upgrade.
- The period of time that is required to complete the upgrade varies based on the data volume of your RDS instance. In most cases, the upgrade requires approximately 20 minutes to complete. If a large number of operations are performed during the upgrade, the period of time to complete the upgrade is prolonged. We recommend that you upgrade your RDS instance during an appropriate period of time.
- The upgrade may cause your RDS instance to be unavailable for a short period of time. Make sure that your application is configured to automatically reconnect to your RDS instance.
- The upgrade changes the virtual IP address (VIP) of your RDS instance. We recommend that you use the endpoint of the RDS instance instead of the IP address to connect your application to the instance.
- After the upgrade, you must immediately delete the cached DNS records from the database
client. If the database client runs on a Java virtual machine (JVM), we recommend
that you set the time-to-live (TTL) in the JVM configuration to 60 seconds or less.
This way, if the VIP that is bound to the in-use endpoint of your RDS instance changes,
your application can query the related DNS records again to obtain the new VIP. Then,
your application can connect to the new VIP.
Note The following TTL-setting methods are provided for reference:
- For all JVM-based applications: Set the networkaddress.cache.ttl parameter in the $JAVA_HOME/jre/lib/security/java.security file to 60.
- For local applications: Configure the
networkaddress.cache.ttl java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
setting in the initialization code of local applications. The configuration must be completed before you call theInetAddress.getByName()
function for the first time to establish a network connection.
- If your RDS instance is attached to a PolarDB-X instance, the change in VIPs temporarily affects the availability of the PolarDB-X instance. We recommend that you refresh the page to view the connection information in the PolarDB-X console at the earliest opportunity.
- If your RDS instance has an ongoing Data Transmission Service (DTS) task, you must restart the DTS task after the upgrade is complete. For more information, see What is DTS?
Billing
For more information about the upgrade fees, see Specification change fees.
Procedure
FAQ
- Can I change the configuration such as the specifications of an RDS instance during
the major engine version upgrade of the RDS instance?
No, you cannot change the configuration such as the specifications of an RDS instance during the major engine version upgrade of the RDS instance. You can change the configuration only after the major engine version is upgraded.
- Can the major engine version of an RDS instance be automatically upgraded?
No, the major engine version of an RDS instance cannot be automatically upgraded.