Post #AzureFest Follow-up Videos

On Saturday, I presented how to Register for Windows Azure, Install and Configure the Azure Tools & SDK; as well as Deploy an application to Windows Azure. This presentation was part of a joint effort between Microsoft Canada and ObjectSharp called AzureFest.

Microsoft Canada has made a great offering to Canadian User Groups. For each member that deploys an application to Windows Azure and submits a Screenshot of their Application, the User Group is awarded $25.

To make the process easier for your members Barry Gervin and I have created some easy to follow, step-by-step videos of the content.

Registering for the Windows Azure Introductory Offer

In this video, Barry Gervin and Cory Fowler walk through the Introductory Offer Registration Wizard [Credit Card Required].

Signing up for the Windows Azure Introductory Offer

Deploying Nerd Dinner via Windows Azure Portal

To demo how simple it is to upload a Cloud Service Package using the Windows Azure Platform Portal. Barry and I have compiled and bundled a demo Cloud Service Package and Cloud Service Configuration file (Windows Azure Deployment Bundle Download) and have explained how to deploy this package. Don’t forget to send your email off to cdnazure @ Microsoft [dot] com with the name of your user group, and the screenshot.

Deploy Nerd Dinner Cloud Service Package via Windows Azure Portal

Removing your Deployment

The Windows Azure Introductory Special only offers 25 (small) compute hours per month, you’ll want to remove your deployment so you don’t end up getting charged.

Removing your Deployment from Windows Azure Portal

Barry and I will be creating 3 more videos to complete a series with more content from AzureFest. Be sure to check the ObjectSharp Events Page for Upcoming Windows Azure Training Sessions.

Migrating Large Databases from On-Premise to SQL Azure

Recently, I was working on a project that required a site migration from a Shared Hosting server to Windows Azure. This application has been up and running for sometime and had acquired quite a substantially sized database.

During the course of the project I ran across a few road blocks which I wasn’t expecting, due to the experience gained in my previous blog entries: Migrate a database using the SQL Azure Data Sync Tool and Scripting a database for SQL Azure (Issues explained in previous link resolved with launch of SQL Server 2008 R2). Hopefully the following tricks will help you along your data migration.

Using Import/Export in SSMS to Migrate to SQL Azure

In addition to the SQL Azure Data Sync Tool, it is possible to use the existing Import/Export Wizard in SQL Server Management Studio to migrate data to SQL Azure. There are a number of things to keep in mind while using the Import/Export Tool:

SQL Server Native Client to .NET Data Provider for SqlServer

SQL Azure doesn’t fall under the typical SQL Server Native Client 10.0 Product SKU, this means that you’ll have to use the .NET Data Provider to migrate your data. The configuration screen for the provider is very intuitive, but there are two key settings that should be changed from their default values, Asynchronous Processing (set to true) and Connection Timeout (increase to 1500).


Without changing the Timeout value the data migration would error out after creating the fist few sets of rows. Making this an Asynchronous process was beneficial when exporting multiple tables at a time.

Work-around for SSIS Type: (Type unknown …) Error

There is a chance when you go to run the migration that you will encounter an error as described in Wayne Berry’s [@WayneBerry] blog post entitled “SSIS Error to SQL Azure with varbinary(max)” on the SQL Azure Blog.

As Wayne explains in his post, there are a number of XML files which contain data mapping information used by the Import/Export Wizard in order to map the data from the source database to the proper data type in the destination database.

Database Seeded Identity Insert Issue

I’m not sure why this happened, but when using the Import/Export even with Identity Insert on, the ID [Identity] Column was not Inserting the correct values. To get around this I used the ROW_NUMBER to generate new Identities and rebuilt the foreign key tables.

There is a lot of chatter on the Forums and other blog posts that say that BCP with the –E switch is the most effective way to do exact copying (with Identity Columns).

For more information:

Cost Effective Approach

A good thing to keep in mind while preparing your database for migration is that transactions as well as data transfer costs are applied to Queries to (and from) SQL Azure. With this in mind it would be best to set up a scenario where you would test your data migration to ensure the data migration would be performed in the least number of attempts as possible.

Happy Clouding!