Recovery and Replication of data in Multitenant
Applications:
This is a continuation of the detailed article on recovery
options. In next section, we discuss replication options.
The example used
here is a full disaster recovery scenario for a multitenant SaaS application
implemented with the database per tenant model. The concepts introduced here
are geo-restore and geo-replication.
GeoReplication
helps to create a continuously synchronized readable secondary database for a
primary database. It is preferable although not required to have the secondary
database in a different region. Since this kind of secondary database is merely
readable, it is called a georeplica. This option serves to perform quick
recovery of individual databases in case of a regional disaster or a
large-scale outage. Once georeplication is setup, a geo-failover helps maintain
continuity of business.
Geo-replication
can also be performed for database migration with minimum downtime and
application upgrades by creating an extra secondary as a fail back copy during
application upgrades. An end-to-end recovery requires recovery of all
components and dependent services. All components are resilient to the same
failures and become available within the recovery time objective of the
application. Designing cloud solutions for disaster recovery include scenarios
using two Azure regions for business continuity with minimal downtime or using
regions with maximum data preservation or to replicate an application to
different geographies to follow demand.
Automatic
asynchronous replication requires transactions to be committed on the primary
database before they are replicated. It is used for creating a geo-secondary.
When the geo-secondary is created, the replica is populated with the data of
the primary database. This process is known as seeding. After it has been
created and seeded, updates to the primary database are automatically and
asynchronously replicated to the replica.
An
application can access the geo-secondary replica to execute read-only queries.
The security principal used to access the geo-secondary can be same as the one
used for primary or different.
A planned
geo-failover switches the roles of the primary and geo-secondary databases
after completing full data synchronization. A planned failover does not result
in data loss. Since the replication is done based on well-known log shipping
techniques, it duration depends on the size of the log at the origin. This kind
of failover is applicable to performing disaster recovery drills, relocating
the database to a different region, returning the database to the primary
region after the outage has been mitigated.
On the
other hand, unplanned geo-failover immediately switches the geo-secondary to
the primary role without any synchronization with the primary. Any transactions
committed on the primary but not yet replicated to the secondary are lost. Only
when the primary is not available, should the geo-failover be unplanned.
There can
be at most four geo-secondaries for a single primary. Multiple geo-secondaries
is tactical redundancy. Additional secondaries can also be used to scale out
read-only workloads.
No comments:
Post a Comment