1-SQL Server Cluster is assigned a virtual server name and an IP
address which is used by the applications to connect to the SQL Server. There is
no change required on the application side as the failover node acquire the same
virtual server name and an IP address in case the active node goes down.
Whereas the Standby server possess different server name and the IP address
which means either an application change or a DNS change will be required in
case the Standby server is promoted to a primary role.
2-SQL Server Clustering provides high availability by protecting against a node
failure. It is important to understand here is that the storage failure will result into
an application disruption as all the nodes in the cluster uses shared storage
which also contains database files of the SQL Server database. Whereas
Standby server/database which is normally installed on the other independent
SQL Server protects not only against the operating system or a hardware failure
but also against storage failure as it is installed on a separate storage.
3-In case of a planned upgrade of an operating system or a SQL Server, clustering
has the advantage, as it’s relatively easy to configure one failover cluster to fail
over to any other node in the failover cluster configuration. This way, system
downtime can be minimized thus providing high server availability. On the other
hand if the Standby server/database is promoted to primary server/database then
switching back the roles is relatively a complex task. This involves executing
some stored procedures and also make sure that the transaction logs of the
database are not truncated which will break the log shipping sequence and
hence the Standby process will need to be start all over again which will require a
complete backup and restore of the database.
4-SQL Server cluster has high requirements in terms of hardware and software as
opposed to Standby. Cluster requires Windows NT Enterprise Edition, Windows
2000 Advanced Server or Windows 2003 Enterprise Edition and SQL Server
Enterprise Edition (for SQL 2000, SQL Server 2005+ supports Clustering under SQL Standard) along with Microsoft Certified hardware (for clustering under Windows 2003 and below, clustering on Windows 2008 only requires that the cluster pass the validation process) whereas Standby can be configured using Log Shipping (provided in Microsoft Enterprise Edition for SQL 2000, or Standard Edition for SQL 2005 and up) or using third party vendor software and using custom scripts in Standard Edition or through the third part software. Standby Server doesn’t have any special hardware requirements.
5-Setting up a SQL Server Cluster is a complex process and requires expertise to
configure and maintained. Before setting up a SQL Server, Windows Cluster
needs to be configured which requires a shared storage, the setup of which itself
is a complex task. Standby has no such requirements.
(Not really, clustering isn’t that hard to put together.)
6-SQL Server cluster requires high speed LAN. This is required for nodes in a
cluster, which need to send and receive what is called a heartbeat signal, among
other communications. This signal is used by each node to determine if the other
node is still available. In case any node is not available then the other node takes
over. On the other hand Standby can work either on a local area network or over
the WAN. Of course depending on the size of the database it can be a slow
(Clustering will work fine on a 10/100 LAN)
7-Cost wise SQL Server Cluster is an expensive solution compare to Standby as it
only supports hardware listed on the Microsoft Hardware Compatibility list and
requires Enterprise Edition of Windows and SQL Server.
(Only when clustering under Windows 2003. Windows 2008 only needs to pass the validation wizard.)
8-In conclusion, both SQL Clustering & Standby have their own advantages but
which solution to implement has to be decided based on requirements, resources
and budget. Ideally if the resources and budget are available then both options
can be implemented where Clustering can provide convenience for planned
operating system and SQL Server upgrades and Standby can provide the
protection against the primary server/database crash.
So, it’s not just 2 words to tell 😉 & you still have to decide.