0
votes

If I only have one VM in Azure I can get outtages at any time when Azure decides to reboot/reprovision my server. Therefor I have to at least two servers in an availability group to get a stable environment.

This is used by a web app (web roles) and an important aspect is that the databases are used for reading. They will get their data from sql replication from an on-premises database. The replication can be done separately to each database. Additionally using Azure Sql Database is not an option because we have not be able to implement a durable data sync solution (using Microsoft Sync Framework), Sql Database does not support sql replication, and constantly uploading the complete database would be too slow.

How should the database VMs be hosted and accessed to able to use Sql Server VMs?

One alternative is to use AlwaysOn Availability Groups. This however requires Sql Server Enterprise edition and the price is very high considering I need to have at least two servers. In this scenario I at least get one connection point behind which a sql server always should be answering. This is however beyond our reach because of the cost.

One alternative could be to use Traffic manager to round robin the connections. When the database server goes down we have to wait for TTL to expire before the webrole would refresh the ip address so that seems a big problem.

How should one host Sql Server VMs in Azure?

1
Did you see SQL Azure Data Sync? It provides a mechanism to synchronize an on-premises database to SQL Azure... - Dean Ward♦
Azure Data Sync is based on Microsoft Sync Framework with additional limitations like max row size 24mb (we have rows containing binary files larger than that). Additionally it is in preview and will never reach GA so not suitable for production use for us. This was the first technology I evaluated. - Mathias Rönnlund

1 Answers

0
votes

You can use FailoverPartner parameter in the connection string to specify the secondary replica address. You can see more in this article.