We have some SQL 2005 databases running which I'd like to move to SQL 2008. The 2008 instance is up and running. What is the recommended way to do a quick cut over from one server to the other.
I like for the application to be using 2005 while transactions are also being pushed to 2008, letting me set things up beforehand. Then the application team can change their connection to the 2008 instance and start testing and updating. When all is well, we could break whatever mechanism is doing the transfer and use 2008.
I'm somewhat familiar with mirroring and transactional replication. It seems that mirroring will work, but I'd need to fail to the mirrored database at the right time. The 2005 DB would then be unusable and we would be unable to fail back, since the system tables would be in 2008 format.
Replication seems like it would be the better choice for not needing any intervention - but it also seems a bit more complicated with details I'm probably not aware of that may make this not work.
Thanks
You can't test the mirrored database, since is not accessible to reads.
Replication will allow you to read from the subscriber, but replication does not replicate everything.
Also is, highly unorthodox to talk about the application team 'changing and updating' the copy while is being updated. The application team should test and update a test database, not a candidate for production update... What would happen to changes that are incompatible with the stream of incoming updates?
A typical update scenario is like this:
Do a cold backup of the databases and restore them to the 2008 instance as normal for the application team to test whether or not they will have compatibility problems. Once that is okayed then use mirroring or log shipping to keep the databases in sync. In your planned downtime stop the LS/mirroring, take the old databases offline and recover the 2008 databases and have the application team change the connections string or use a DNS alias to cut over to the new server.