Welcome!

.NET Authors: Liz McMillan, David H Deans

Related Topics: .NET, Virtualization, Silverlight, Web 2.0, Cloud Expo, Security

.NET: Blog Post

Step-by-Step: Tired of Tapes? Backup SQL Databases to the Cloud

New feature in SQL Server 2012 SP1 CU2 provides native backup to Windows Azure cloud storage

I think every IT Pro I’ve ever met hates tape backups … but having an offsite component in your backup strategy is absolutely necessary for effective disaster recovery.  One of the new features provided in SQL Server 2012 Service Pack 1 Cumulative Update 2 is the ability to now backup SQL databases and logs to Windows Azure cloud storage using native SQL Server Backup via both Transact-SQL (T-SQL) and SQL Server Management Objects (SMO).

Backup to cloud storage is a natural fit for disaster recovery, as our backups are instantly located offsite when completed.  And, the pay-as-you-go model of cloud storage economics makes it really cost effective – Windows Azure storage costs are less than $100/TB per month for geo-redundant storage based on current published costs as of this article’s date.  That’s less than the cost of a couple SDLT tapes! You can check out our current pricing model for Windows Azure Storage on our Price Calculator page.

In this article, I’ll step through the process of using SQL Server 2012 SP1 CU2 native backup capabilities to create database backups on Windows Azure cloud storage.

How do I get started?
To get started, you’ll need a Windows Azure subscription.  Good news! You can get a FREE 90-Day Windows Azure subscription to follow along with this article, evaluate and test … this subscription is 100% free for 90-days and there’s absolutely no obligation to convert to a paid subscription.

  • DO IT: Sign-up for a Free 90-Day Windows Azure Subscription

    NOTE: When activating your FREE 90-Day Subscription for Windows Azure, you will be prompted for credit card information.  This information is used only to validate your identity and your credit card will not be charged, unless you explicitly convert your FREE Trial account to a paid subscription at a later point in time.

You’ll also need to download Cumulative Update 2 for SQL Server 2012 Service Pack 1 and apply that to the SQL Server instance with which you’ll be testing.

Don’t have a SQL Server 2012 instance in your data center that you can test with?  No problem! You can spin up a SQL Server 2012 VM in the Windows Azure Cloud using your Free 90-Day subscription.

Let’s grab some cloud storage
Once you’ve got your Windows Azure subscription activated and your SQL Server 2012 lab environment patched with SP1 CU2, you’re ready to provision some cloud storage that can be used as a backup location for SQL databases …

  1. Launch the Windows Azure Management Portal and login with the credentials used when activating your FREE 90-Day Subscription above.
  2. Click Storage in the left navigation pane of the Windows Azure Management Portal.

    image
    Windows Azure Management Portal – Storage Accounts
  3. On the Storage page of the Windows Azure Management Portal, click +NEW on the bottom toolbar to create a new storage account location.

    image
    Creating a new Windows Azure Storage Account location
  4. Click Quick Create on the New > Storage popup menu and complete the fields as listed below:

    - URL: XXXbackup01 ( where XXX represents your initials in lowercase )

    - Region / Affinity Group: Select an available Windows Azure datacenter region for your new Storage Account. 

    NOTE: Because you will be using this Storage Account location for backup / disaster recovery scenarios, be sure to select a Datacenter Region that is not near to you for additional protection against disasters that may affect your entire local area.

    Click the Create Storage Account button to create your new Storage Account location.
  5. Wait for your new Storage Account to be provisioned. 

    image
    Provisioning new Windows Azure Storage Account

    Once the status of your new Storage Account shows as Online, you may continue with the next step.
  6. Select your newly created Storage Account and click the Manage Keys button on the bottom toolbar to display the Manage Access Keys dialog box.

    image
    Manage Access Keys dialog box

    Click the image button located next to the Secondary Access Key field to copy this access key to your clipboard for later use.
  7. Create a container within your Windows Azure Storage Account to store backups.  Click on the name of your Storage Account on the Storage page in the Windows Azure Management Portal to drill into the details of this account, then select the Containers tab located at the top of the page.

    image
    Containers tab within a Windows Azure Storage Account

    On the bottom toolbar, click the Add Container button to create a new container named “backups”.

You’ve now completed the provisioning of your new Windows Azure storage account location.

We’re ready to backup to the cloud
When you’re ready to test a SQL database backup to the cloud, launch SQL Server Management Studio and connect to your SQL Server 2012 SP1 CU2 database engine instance.  After you’ve done this, proceed with the following steps to complete a backup …

  1. In SQL Server Management Studio, right-click on the database you wish to backup in the Object Explorer list pane and select New Query.

    image
    SQL Server Management Studio
  2. In the new SQL Query Window, execute the following Transact-SQL code to create a credential that can be used to authenticate to your Windows Azure Storage Account with secure read/write access:

    CREATE CREDENTIAL myAzureCredential
    WITH IDENTITY='XXXbackup01',
    SECRET=’PASTE IN YOUR COPIED ACCESS KEY HERE';

    Prior to running this code, be sure to replace XXXbackup01 with the name of your Windows Azure Storage Account created above and paste in the Access Key you previously copied to your clipboard.

  3. In the SQL Query Window, execute the following Transact-SQL code to perform the database backup to your Windows Azure Storage Account:

    BACKUP DATABASE database_name TO
    URL='https://XXXbackup01.blob.core.windows.net/backups/database_name.bak'
    WITH CREDENTIAL='myAzureCredential' , STATS = 5;


    Prior to running this code, be sure to replace XXXbackup01 with the name of your Windows Azure Storage Account and replace database_name with the name of your database.

    Upon successful execution of the backup, you should see SQL Query result messages similar to the following:

    image
    Successful Backup Results

What about restoring?
Restoring from the cloud is just as easy as backing up … to restore we can use the following Transact-SQL syntax:

RESTORE DATABASE database_name FROM
URL='https://XXXbackup01.blob.core.windows.net/backups/database_name.bak'
WITH CREDENTIAL=’myAzureCredential’, STATS = 5, REPLACE

Thoughts? Comments? Feedback?
What are your thoughts around leveraging the cloud for backup storage? Feel free to post your comments, questions and feedback below.

-Keith

Build Your Lab! Build Your Lab! Download Windows Server 2012
Build Your Lab in the Cloud! Don’t Have a Lab? Build Your Lab in the Cloud with Windows Azure Virtual Machines
Join our "Early Experts" study group! Want to Get Certified? Join our Windows Server 2012 "Early Experts" Study Group

More Stories By Keith Mayer

Keith Mayer is a Technical Evangelist at Microsoft focused on Windows Infrastructure, Data Center Virtualization, Systems Management and Private Cloud. Keith has over 17 years of experience as a technical leader of complex IT projects, in diverse roles, such as Network Engineer, IT Manager, Technical Instructor and Consultant. He has consulted and trained thousands of IT professionals worldwide on the design and implementation of enterprise technology solutions.

Keith is currently certified on several Microsoft technologies, including System Center, Hyper-V, Windows, Windows Server, SharePoint and Exchange. He also holds other industry certifications from IBM, Cisco, Citrix, HP, CheckPoint, CompTIA and Interwoven.

Keith is the author of the IT Pros ROCK! Blog on Microsoft TechNet, voted as one of the Top 50 "Must Read" IT Blogs.

Keith also manages the Windows Server 2012 "Early Experts" Challenge - a FREE online study group for IT Pros interested in studying and preparing for certification on Windows Server 2012. Join us and become the next "Early Expert"!