views:

52

answers:

3

Hello,

I am tasked with setting up a disaster recovery for one of our system. The primary server is in FL and the secondary is in Germany. The application is a global application within my company.

I am not sure if I should use Log shipping or Mirroring. What I have read is that mirroring will have an adverse effect on the performance of my application. Is this true? Does this mean that any time a user modify or save a record that it will take longer to get a positive response.

Thanks

A: 

Mirroring would keep both the primary and DR environments in synch 100% of the time and thus eliminate the possibility for data loss. However, as you noted, this has an adverse affect on performance, but may be necessary in situations that cannot tolerate any data loss (ex. financial applications). Shipping logs and applying them to the standby database at the DR site doesn't have the same impact on user response time, but opens up a small period during which data loss could potentially occur.

btreat
+1  A: 

Mirroring can have different performance impacts depending on the operating mode you choose. If you are mirroring you can have three operating modes: High Protection (with and without automatic failover) and High Performance.

Basically, these amount to synchronous and asynchronous mirroring. With High Protection your application will be waiting for the mirroring to finish before considering the transaction complete. In High Performance mode your application will not wait for the mirroring to have been committed. In fact, it is not guaranteed at any point in time that all the most recent transactions will have been saved in the mirror's transaction log.

One of the main factors to consider with mirroring will be the round trip time of your network. Higher latency will impact more heavily on your performance. You will need to weigh the performance cost against your specific recovery (and failover) requirements.

If you haven't already, you should read Database Mirroring in SQL Server 2005 and Database Mirroring Best Practices and Performance Considerations.

Tuzo
You forgot the High Availability mode
hallie
@hallie: thanks. I actually included High Availability as High Protection (with failover).
Tuzo
A: 

Thanks for the help.

So, if I have an application that does an insert to a DB. In Mirroring, the user will have to wait until the transaction is save on both primary and secondary. Where as in Log shipping, the data is save to logs and there is no delay in the application ?

Please let me know if this correct.

premtemp
@premtemp: stackoverflow is not a discussion forum so you shouldn't post answers as followup questions. In response to your question, see my answer -- with high performance mirroring the mirroring is done asynchronously and the transaction commits immediately after the log record is sent to the mirror (asynchronous).
Tuzo