depending on the availability of the server, you may be able to ship the last log, etc. if the server is completely unavailable, there's not much you can do except accept that some data will be lost. what we tried to do was to gauge how much time we could afford to lose in the event of a system failure. obviously you can configure longer or shorter time intervals, but the less time you can afford to lose, the more you need to look at something like clustering or perhaps database mirroring in SQL2K5 that provides more real-time synchronization.

sorry, posted this earlier but apparently i had some issue with my connection. anyway, to be completely honest, we probably should have included it as an option. we were/are aware that its was possible to use replication in this way, but most of what we read in posts, etc steered us away from using it for failover.

On a course I was on, the passive server in a database mirroring setup for SQL2005 was said to be acting in unlicensed mode. This would mean that full functionality was not available (reporting/analysis).

Have you found this to be the case for your situation where the passive server is unlicenced?

There isn't any real limitation to the functionality of MSSQL with log shipping - at least not the "roll your own" kind i've used in the past. In my experience with log shipping (SQL2K), the destination database can be accessed by users in between the times when logs are restored to it. At that point, user connections have to be killed as the database needs to be in single user mode.

My understanding of licensing is that if the destination server is used only for failover, a second license isn't required. However, if you allow users to connect to it, i would think a second license would be necessary.

This topic is dear to my heart these days as I've recently been charged with BCP for our firm.

One of the guys working with me suggested the use of a CNAME DNS entry to achieve something similiar to what you did with the IP address solution. The idea is to have a generic server name that can be resolved to a real machine name and in the event of the production server going down, you simply change the CNAME entry to the secondary machine.

For example, consider the following configuration. The production database server is named PROD and the failover one is called EXTRA. You would create a CNAME DNS entry named DBSERVER and point it to PROD.

All applications would be configured to connect to DBSERVER.

If PROD ever went offline unexpectedly, you would change the CNAME DNS entry for DBSERVER from PROD to EXTRA.

We've tested it and it seems to work like a charm.

I'm interested to know if you considered this approach but decided the IP address strategy was better for some reason?