Using Azure SQL with Commerce Server

Commerce Server can use on-premise SQL Server or Azure SQL for its back end datastore. The experience for deploying to Azure SQL is similar to working with on-premise SQL Server, but the Azure SQL version comes with some additional considerations.

Things to be aware of with Azure SQL support:

Before you begin a set up, be sure to meet the following pre-requisites:

To set upCommerce Server admin and site databases set up in Azure SQL, use the following steps:

If you already have Commerce Server installed and configured on your server, you will not be able to run the Commerce Server Configuration Wizard. In order to run the Configuration Wizard you will need to run the following from the command line:

C:\Program Files (x86)\Commerce Server 11\csconfig.exe /u

Once this has finished, you will be able to run the Configuration Wizard and configure a Commerce Server instance on Azure SQL. You can change your server at any time to point to a different Commerce Server Admin database by clicking on the Administration Database link in Commerce Server Manager.

No matter what method you are using to set up your Commerce Server site and resources, you have the option to pre-create the required databases for each resource ahead of time in Azure SQL, as long as you select the default collation. A limitation is that you cannot create the MSDC_Admin database ahead of time. If you are using the CmdLets to set up your resources, use the –DatabaseName parameter to set the existing name. If you are using Site Packager, you need to select the database name from the drop-down list on each resource.

If you are configuring Commerce Server from on-premise, the process can be slow. One reason is that the SQL calls now need to travel across the internet instead of your local network. Another reason is that the S0 Price Tier of Azure SQL is not very powerful. You can speed up set up by pre-creating all of the databases you need, except for MSCS_Admin, and temporarily set them with a higher Price Tier than you need. Alternately, you could pass in a higher Price Tier to the CmdLets or PuP ini. Increasing the Price Tier during configuration will allow the commands to finish more quickly and reduce setup time, and then reduce the Price Tier when you are finished set up.

Geo-Replication: Azure SQL Geo-Replication puts Secondaries (secondary data centers), into a read-only state. Currently Sitecore does not support using a read-only database. If you choose to use Azure SQL Geo-Replication you will need to make sure that the Sitecore web tiers, CM, CD, Processing, and Reporting, are in a stopped state until you set the "local" Azure SQL as the Primary database.