0
votes

I am proposing an Azure environment with the following:

  • VM SQL Server for core relational data
  • Table Storage for bulk data

I want to mirror the SQL Server database to another server so that

  1. Reports can be run on this server so to minimize data load on the primary database, and
  2. It can serve as a failover server in case the primary server goes down.

In order to achieve these 2 objectives I would also need to mirror the Azure Table Storage too. I can't seem to find any information on this. Is this even possible?

2

2 Answers

1
votes

There are very few cases where you need to mirror table storage. Windows Azure does this anyway and, if using the geo-redundant option, keeps 4 copies of your data in multiple locations. 3 are stored in the current data centre across different fault and upgrade domains, plus another copy in a different data centre.

So Azure storage 'as-is' can handle the complete failure of a data centre. If you want to mirror yourself, it means that you are planning for the likelihood of and outage in two data centres simultaneously. This is only necessary in very few cases.

Mirroring (or replication) is not backup. So in addition to replicating data you may want to back it up, which is a different issue. Replication will not help you if you delete or update something by mistake.

0
votes

If you choose RA-GRS redundancy option while setting your storage account up then azure storage service will replicate your storage data (tables, blobs) asynchronously in a secondary datacenter. All azure data centers have a predefined secondary datacenter, see the full list of paired dc s here: https://docs.microsoft.com/en-us/azure/best-practices-availability-paired-regions

The key thing to know in terms of fallback, is that you will have access to secondary datacenter storage account if you choose RA-GRS but it will be Read-Only. So you will not be able to write to it. That s why the Read availability of RA-GRS storage accounts is 99.99% vs the write availability is 99.9%. On a fallback scenario where storage service is down on the dc hosting your primary storage account, the SDK will retry reads for the secondary account transparently but if you want to be able to continue writes then you would need to have a custom solution for that because like mentioned secondary account is read only.

I believe azure does fallback to secondry for reads and writes only on a major failure when entire dc goes down etc. I never came accross that scenario so I am not very sure the details on that.

And if you want to replicate accross more than 2 regions for latency purposes etc. then you woul dneed your solution for that as well which may be simply off loading the writes to a queue and worker roles replicating the entities to multiple regions.