New and just launched this week – hosted import and exports! We are happy to announce that DACFx is now available as a SQL Azure cloud service as well. While the client side tools are fully supported and are every bit as important, the new hosted service provides DAC at a new level of convenience to SQL Azure customers. The new service is publically available as a CTP in all SQL Azure datacenters across the world. The service is provided free of charge and no sign-ups or codes are required – just go use it!
The service is designed to directly import and export between SQL Azure and Windows Azure BLOB storage bypassing any need for client side binaries, MSIs or any real work on your part.
To get started using the service, you will need:
- A SQL Azure server in any datacenter
- A Windows Azure storage account
The service hosts some public REST endpoints that you use to submit an import or export request. There are a few ways to submit a request:
- Use the Windows Azure Portal
- Use the reference EXE service client (see next post)
- Post HTTP requests directly to the public endpoints
Let’s start with an export. In the video I assume you are starting essentially from scratch:
A couple notes on an export request:
- Export requests will generate some load on the target database
- At the beginning of an export request a 0 byte file is written to your storage account
We write a temporary 0 byte file to verify we have write access to the BLOB container you selected. We do not stream your data to your BLOB account during the export process because if the export fails for some reason, you are still charged for storing bits in your BLOB account. We cache your data stream inside the service and the write it out at the end all at once.
Now let’s import a BACPAC back into SQL Azure with the service:
Couple notes on an import request:
- While the import is in progress, you will actually be able to see your database as an active database
- We recommend you do not log in to or otherwise modify the database while the import request is in progress
Finally, we do provide some rudimentary status information in this first release. We will add additional details in a subsequent release but for now we can inform you whether your request is Queued, Running, Completed, or Failed.