What would you prefer in this case?

Hi!

I have a customer that wishes to run a rather big web-based system, hosted by my company. The main criteria for this project is that is should always be available, rather than optimized for speed.

The project requires Windows Server 2003 along with SQL Server 2005. I have thought about two different ways to achieve this with two identical servers and two per-processor licenses of SQL Server 2005. The number of simultaneous users will range from 5 to 50 000 with both small data inserts and complex calculations.

Way 1: Use one of the servers only in case of emergency, if the other (primary) server for any reason should fail. As I planned for dual processors, the initial idea would be the two per-processor licenses installed on each server, as I read that separate licenses was not needed for failover purposes.

Way 2: In some way load balance the two servers with a copy of SQL Server running on only one of processors on each server, sharing the same databases, so that if one server fails, the system will continue to run on the other. With this method, no hardware would be in waste. Although SQL Server will then only run on one processor.

As I haven't encountered this dilemma before, I wonder if there is one method preferred over another, maybe not even any of my ways?

To sum it all up in one question:
What would be the most effective and stable solution with two servers, two processors each, and two copies of SQL Server?

Best regards,
Daniel Forslund

[1533 byte] By [DanielForslund] at [2008-2-17]
# 1

Daniel,

It sounds like an Active/Passive Cluster is what you are after, although Microsoft doesn't like that terminology anymore. Basically you have two nodes (servers) and shared disk between them. For the shared disk you will need a certain hardware configuration that allows the disk to be shared such as Fibre, HBA's, etc. Install Windows 2003 on both nodes and then install cluster services. Configure your disk groups in the cluster and then install a single instance of SQL 2005. Your SQL Logs and Databases would be installed on the shared disks and if one node of the cluster should happen to fail, the resource groups fail over to the second node. There would essentially be no downtime other than the 15 seconds it would take for the failover to occur. You can also install the Binaries on shared disks but I typically install them on internal disks to the node.

This is not an optimal approach in terms of cost but your customer did say that uptime was more important than anything else. I would not want to persue having mutiple active nodes, instances and databases because keeping all of the data in sync between the instances could get pretty ugly, altough you could use data replication to do it. Keep it simple and you'll be able to sleep better at night

Andy_T at 2007-8-30 > top of Msdn Tech,SQL Server,SQL Server Disaster Recovery and Availability...

SQL Server

Site Classified