Problem
In our current environment we have 4 physical servers, each running a single instance of SQL server. Each instance is named the same on all servers, we'll say INS. So we have an environment something like this:
It's been slightly simplified, but you get the idea. The red arrows indicate the same instance name on each server.
Now we are going to set up SQL server clustering using an active/active architecture. This means that each server will still only host one active instance, but will also host one or more passive instances of SQL server, as below:
This being the case, each instance name must be unique. This meant renaming our SQL instances. We are re-installing SQL server anyway, so the actual renaming of the instances is going to be easy. The problem lies on the development side of the aisle.
We did anticipate the possible need to rename servers/instances when we set up our custom SQL load balancing architecture (more on that later) and created a table in a central SQL server that we use to look up the server name to use to get the data we're looking for. So, in a perfect world, we'd be set.
However, because of a combination of old code, lazy developers, and code hacks, I'm anticipating only about a 50% chance of all code still working after the switch over. This, obviously, isn't acceptable to the higher ups so we needed a different solution.