Next weekend is going to be big. We upgrade two SQL Server 2000 Clusters to SQL Server 2008. Things are going well, but man am I getting nervous. It’s pretty exciting to be at the center of such a big project, but it also means a lot of responsibility.
We’ve got a backend database that’s about 150GB that has 5 transactional replication publications. Three to Oracle (much fun with that) and two to a republisher. The republisher has about 450 subscribers currently spanned across 10 publications, 2 per organization. Right now our republisher is a 2 processor x86 box with 8GB RAM. When all the subscribers are connecting we hit a CPU bottleneck. When sending somewhat large batches, about 120,000 rows, to the republisher we also experienced such intense CPU strain the number of connections had to be reduced to get the batches to complete in 3 to 4 hours.
To help relieve the strain we’re replacing the republishers with 2 4-core processors (X5460 baby!) and 32GB RAM. We should see much better performance processing large batches because SQL Server 2008 breaks the batches down to clear the locks while processing. We are also balancing the subscribers across more publications, 4 per organization, for a total of 20.
The biggest hurdle may be initializing all those subscribers over some wickedly crappy VPN connections. To combat the network issues we are compressing the snapshots and upon upgrading the subscribers to SQL Server 2008 Express we will use .NET and RMO to copy the snapshot locally before applying it.
I’ll post after the big day and let you know how it goes.