A high-availability solution masks the effects of a hardware or software failure and maintains the availability of applications so that the perceived downtime for users is minimized. The basics of high availability are already discussed in an earlier blog. This blog focuses on the various high availability solutions provided by Microsoft. The high availability solutions provided by Microsoft are as follows:
A failover cluster is a group of independent computers that work together to increase the availability of applications and services. The clustered servers (called nodes) are connected by physical cables and by software. All nodes in this group are managed as a single system and share a common namespace. If one of the cluster nodes fails, another node begins to provide service (a process known as failover). With this, users experience a minimum of disruptions in service.
Database mirroring maintains two copies of a single database that must reside on different server instances of SQL Server Database Engine. Typically, these server instances reside on computers in different locations. One server instance serves the database to clients (the principal server). The other instance acts as a hot or warm standby server (the mirror server), depending on the configuration and state of the mirroring session. When a database mirroring session is synchronized, database mirroring provides a hot standby server that supports rapid failover without a loss of data from committed transactions. When the session is not synchronized, the mirror server is typically available as a warm standby server (with possible data loss). Database mirroring is implemented on a per-database basis and works only with databases that use the full recovery model.
More details: http://msdn.microsoft.com/en-us/library/ms189852.aspx
Log shipping mechanism is based on replicating the changes made in primary database to the secondary (backup) databases by refereeing the transaction logs generated from the primary database. Log Shipping configuration automatically send transaction log backups from a primary database on a primary server instance to one or more secondary databases on separate secondary server instances. The transaction log backups are applied to each of the secondary databases individually. An optional third server instance, known as the monitor server, records the history and status of backup and restores operations and, optionally, raises alerts if these operations fail to occur as scheduled.
More details: http://msdn.microsoft.com/en-us/library/ms187103.aspx
Data Replication is a set of technologies for copying and distributing data and database objects from one database to another and then synchronizing between databases to maintain consistency. The result is a distributed database in which users can access data relevant to their tasks without interfering with the work of others. Using replication, one can distribute data to various locations and to remote or mobile users over local and wide area networks, dial-up connections, wireless connections, and the Internet.
- Snapshot replication: Data on one server is simply copied to another server, or to another database on the same server.
- Merging replication: Data from two or more databases is combined into a single database.
- Transactional replication: Users receive full initial copies of the database and then receive periodic updates as data changes.
More details: http://msdn.microsoft.com/en-us/library/ms151198.aspx
AlwaysOn, a new high availability solution available with SQL Server 2012, is a combined form of the Microsoft’s existing High-Availability (HA) and Disaster Recovery (DR) functionalities like database mirroring, failover-clustering and log shipping. This integration makes them work better together and removes a lot of customer-required set up and tuning, thus helping eliminate potential errors. An AlwaysOn solution can leverage two major SQL Server 2012 features for configuring availability at both the database and the instance level:
- AlwaysOn Availability Groups, new in SQL Server 2012, greatly enhance the capabilities of database mirroring and helps ensure availability of application databases, and they enable zero data loss through log-based data movement for data protection without shared disks. Availability groups provide an integrated set of options including automatic and manual failover of a logical group of databases, support for up to four secondary replicas, fast application failover, and automatic page repair.
- AlwaysOn Failover Cluster Instances (FCIs) enhance the SQL Server failover clustering feature and support multisite clustering across subnets, which enables cross-data-center failover of SQL Server instances. Faster and more predictable instance failover is another key benefit that enables faster application recovery.
More details: http://msdn.microsoft.com/en-us/library/hh781257.aspx
There is some basic difference between the scenarios for implementation for each of these technologies, which will be covered in a further blog.
- High Availability Solutions Overview (http://msdn.microsoft.com/en-us/library/ms190202.aspx)
- Failover Clusters (http://technet.microsoft.com/en-us/library/cc732488(v=ws.10).aspx)
- Database Mirroring Overview (http://msdn.microsoft.com/en-us/library/ms189852.aspx)
- Log Shipping Overview (http://msdn.microsoft.com/en-us/library/ms187103.aspx)
- SQL Server Replication (http://msdn.microsoft.com/en-us/library/ms151198.aspx)
- AlwaysOn (http://msdn.microsoft.com/en-us/library/hh781257.aspx)