Microsoft® SQL Server® 2012 Bible

(Ben Green) #1

806


Part V: Enterprise Data Management


High Availability and Scalability


The goal of SQL Database is to provide a highly available and scalable cloud database service
built on SQL Server technologies. This database service is designed to include built-in high
availability and fault tolerance with zero physical administration.

Think about this for a minute. How would you like to spend less time worrying about the
physical aspects of your SQL Server and more time focusing on the things you really like to
do, such as database development? This is exactly what SQL Database provides. The follow-
ing sections discuss how SQL Database provides a managed service that has a 99.9 percent
monthly SLA with high availability and scalability.

High Availability
SQL Database strives to maintain 99.9 percent availability, achieved by using commodity
hardware that can be quickly replaced if hardware or drive failure occurs. However, more
important, when you create a database in SQL Database, you actually get three databases:
one primary and two replicas. These three databases are always in sync. If the primary fails,
it is taken offl ine and one of the two replicas is designated as the new primary and another
replica created. This automatic failover exists to optimize availability for your application.

Microsoft currently has six data centers world-wide dedicated to supporting the Windows
Azure platform. Two data centers are located in the United States, two are located in
Europe, and two are located in Asia.

Scalability
A huge benefi t of using SQL Database is that of automatic and built-in scalability. This
wonderful functionality comes free with the cost of your database. Two components within
SQL Database help provide the built-in scalability and performance by constantly monitor-
ing each SQL Database node: Engine Throttling and Load Balancing. These two components
exist solely to ensure that each server is running at its optimum.

Throttling
The Azure platform, including SQL Database, is a shared resource environment. Meaning,
when you create your database it is not the only database on the disk. You are sharing that
disk and server with others. As such, SQL Database needs to ensure that you “play nice in
the sandbox.” Thus, throttling in SQL Database exists to ensure that critical resources are
not robbed from others using the box, and more important, from the server itself. Throttling
is simply the act of scaling back resource usage that is adversely impacting the overall
health of the system.

What SQL Database wants to prevent is a situation in which one subscriber’s application or
process negatively affects the instance of SQL Server by doing something it shouldn’t, such

c31.indd 806c31.indd 806 7/31/2012 10:00:23 AM7/31/2012 10:00:23 AM


http://www.it-ebooks.info
Free download pdf