Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more

Per Bjurström
Oct 2, 2009
  8477
(0 votes)

Notes on SQL Server 2008 High Availability and EPiServer CMS

SQL Server 2008 provides several high availability options, these are my notes from a recent research I did to get an overall idea of the alternatives. What I found was that all are being used by CMS customers to different degrees but my guess is that clustering is most common and replication the least common.

Option 1: Failover clustering

SQL Server 2008 acts as one server but can failover to different nodes in a cluster. The nodes share a single SAN where the actual data files are stored but there is only one node at a time acting as a SQL Server instance. You can have multiple active SQL Server instances if you have several databases that you want scale out on different nodes.

Pros:

  • Automatic fail-over.
  • Guaranteed data consistency.
  • Best practice.

Cons:

  • A failover is not instant, it can take seconds to a few minutes.
  • Expensive hardware and licensing.

 

Option 2: Database mirroring

Database mirroring can be used to get a hot standby database that operates in read-only mode. All transactions are copied to the mirror either synchronously or asynchronously and an instant failover can be configured using a witness server.

Pros:

  • Instant failover if you need to a hot standby server.
  • The mirror can be used as a read-only view of data (for custom queries).
  • Can also be used without automatic failover to get a warm stand-by.
  • Mirror can be on another physical location and no special hardware required (compared to clustering).

Cons:

  • You can only have one mirror.
  • Mirror is not guaranteed to have the latest data if you are running in asynchronous mode (high performance mode).

 

Option 3: Log shipping

Log shipping is comparable to database mirroring but you can have multiple destination servers and a configurable delay before the changes are restored on the destination. You are basically shipping transaction log backups from a folder to the remote server so changes are not instant by design and the database is locked when backups are restored.

Pros:

  • Recommended when you need multiple warm standby databases.
  • Server can be on another physical location and no special hardware required (compared to clustering).

Cons:

  • No automatic failover, you need to take one of the copies of the database online.
  • You are not guaranteed that all data have been shipped before a failure.

 

Option 4: Replication

Replication is the most complicated of them all because you need knowledge of the CMS database and a skilled DBA to operate the configuration. You setup which tables and stored procedures are replicated, requires that you make changes to the database to comply with replication requirements. I’ll get back to replication in a later post since its a whole subject of its own.

Pros

  • High degree of control what is replicated.
  • You could offload semi-read-only traffic from the master to one of the destination servers (you can have some tables writable).

Cons:

  • High degree of control what is replicated is a complex.
  • Requires database changes.
  • No automatic failover.
  • You need some other mechanism to protect the master since the targets are not identical copies.

 

Option 5: Everything

Seriously, you can combine these technologies if you want to build a fort. Just make sure you have a skilled DBA ;-)

 

Do you use any of these technologies with EPiServer CMS ?

Oct 02, 2009

Comments

Please login to comment.
Latest blogs
Optimizely Configured Commerce and Spire CMS - Figuring out Handlers

I recently entered the world of Optimizely Configured Commerce and Spire CMS. Intriguing, interesting and challenging at the same time, especially...

Ritu Madan | Mar 12, 2025

Another console app for calling the Optimizely CMS REST API

Introducing a Spectre.Console.Cli app for exploring an Optimizely SaaS CMS instance and to source code control definitions.

Johan Kronberg | Mar 11, 2025 |

Extending UrlResolver to Generate Lowercase Links in Optimizely CMS 12

When working with Optimizely CMS 12, URL consistency is crucial for SEO and usability. By default, Optimizely does not enforce lowercase URLs, whic...

Santiago Morla | Mar 7, 2025 |

Optimizing Experiences with Optimizely: Custom Audience Criteria for Mobile Visitors

In today’s mobile-first world, delivering personalized experiences to visitors using mobile devices is crucial for maximizing engagement and...

Nenad Nicevski | Mar 5, 2025 |

Unable to view Optimizely Forms submissions when some values are too long

I discovered a form where the form submissions could not be viewed in the Optimizely UI, only downloaded. Learn how to fix the issue.

Tomas Hensrud Gulla | Mar 4, 2025 |

CMS 12 DXP Migrations - Time Zones

When it comes to migrating a project from CMS 11 and .NET Framework on the DXP to CMS 12 and .NET Core one thing you need to be aware of is the...

Scott Reed | Mar 4, 2025