SQL Server Migrations & Upgrades

Best Practices for SQL Server Availability on Amazon RDS

Updated
4 min read
Written by
Mark Varnas

Table of Contents 

Back to top 

Amazon RDS best practices

What is Amazon RDS?

Amazon RDS is a fully managed database service that allows you to provision and run relational databases in the cloud.

It supports several relational engines including Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and SQL Server.

It automates administration tasks such as hardware provisioning, database setup, patching, and backups.

In other words, Amazon RDS takes care of a bunch of things that normally you would be doing yourself on-premises.

Availability best practices

The idea of this post is to introduce you to some of the best practices for MS SQL Server availability on Amazon RDS.

Enable Multi-AZ for production workloads

Multi-AZ deployments set up the synchronous application and automatic failover.

Downtime typically is around a minute – SQL Server needs to detect that the primary node is unavailable in a quorum.

It’s a lot more resilient than the Single-AZ deployment.

However, this process takes slightly longer – it can take 10 to 15 minutes if the entire availability zone is offline and nothing can be done about that until it comes online.

Tweak checkpoints to reduce crash recovery times

For Single-AZ and Multi-AZ deployments when the SQL Server crashes, it has to go through crash recovery.

The server-level recovery interval option specifies the maximum amount of time required by the SQL Server Database Engine to recover the database after restarting the SQL Server. You can send this in a custom parameter group and apply that parameter group to your instance.

You can also set it at the database level using the ALTER DATABASE ... SET TARGET_RECOVERY_TIME.

Remember, if you reduce crash recovery time, your SQL Server will perform more aggressive checkpoints, so you will need to know how it impacts your performance.

Use Amazon RDS DB events to monitor failovers

Amazon RDS uses the Amazon Simple Notification Service (Amazon SNS) to provide notifications when an event occurs.

These notifications can be in any notification form such as an email, a text message, or a call to an HTTP endpoint.

Set client DNS TTL to less than 30 seconds

If your application’s IP and the cached value are no longer in the service (in the case of failover), it is a good practice to set the DNS TTL to less than 30 seconds.

Do not turn off transaction logging

Do not enable simple recovery mode, offline mode, or read-only mode. Multi-AZ requires transaction logging to enable the service.

Know how long it takes for your DB instance to failover

You should test your application’s ability to continue working if a failover occurs.

The failover time can be shortened if you ensure that you have sufficient provisioned IOPS (input/output operations per second) allocated for your workload.

Expect increased latencies during a failover, as Amazon RDS automatically transfers your data to a new standby instance as part of the process.

The data will be committed to two different DB instances, so there might be some latency until the standby DB instance has caught up to the new primary DB instance.

Speak with a SQL Expert

In just 30 minutes, we will show you how we can eliminate your SQL Server headaches and provide 
operational peace of mind

Article by
Mark Varnas
Founder | CEO | SQL Veteran
Hey, I'm Mark, one of the guys behind Red9. I make a living performance tuning SQL Servers and making them more stable.

Discover More

SQL Server Health Check SQL Server Migrations & Upgrades SQL Server Performance Tuning SQL Server Security SQL Server Tips

Discover what clients are saying about Red9

Red9 has incredible expertise both in SQL migration and performance tuning.

The biggest benefit has been performance gains and tuning associated with migrating to AWS and a newer version of SQL Server with Always On clustering. Red9 was integral to this process. The deep knowledge of MSSQL and combined experience of Red9 have been a huge asset during a difficult migration. Red9 found inefficient indexes and performance bottlenecks that improved latency by over 400%.

Rich Staats 5 stars
Rich Staats
Cloud Engineer
MetalToad

Always willing to go an extra mile

Working with Red9 DBAs has been a pleasure. They are great team players and have an expert knowledge of SQL Server database administration. And are always willing to go the extra mile to get the project done.
5 stars
Evelyn A.
Sr. Database Administrator

Boosts server health and efficiency for enhanced customer satisfaction

Since adding Red9 to the reporting and DataWarehousing team, Red9 has done a good job coming up to speed on our environments and helping ensure we continue to meet our customer's needs. Red9 has taken ownership of our servers ensuring they remain healthy by monitoring and tuning inefficient queries.
5 stars
Andrew F.
Datawarehousing Manager
See more testimonials