SQL Server itself does not support load balancing. You may have active / passive failures with the mechanisms you described (mirroring the database and sending logs), as well as many other parameters, such as clustering or replication.
Two questions to start with:
- How long can you afford to sleep? (otherwise it's recovery time or RTO)
- How much data can you lose? (otherwise your target recovery point or RPO)
The more time you can allow yourself to go down, the more data you can lose, then simpler and cheaper solutions will be implemented. The shorter the downtime and less data, the more difficult it is to implement.
For example, synchronizing database mirroring ensures you never lose a transaction. Transactions are made on both database servers before the result is returned to the client. Unfortunately, you experience a significant performance impact under heavy loads, and minimal management utilities are built in there - you want to have a full-time DBA to manage such things.
On the other hand, shipping every 15 minutes means that you can lose 15 minutes of data (or more), and it may take 15-60 minutes to return to the Internet after a failure. However, it is cheap, has a very low performance impact and is pretty easy to configure.
I have an RPO and introduction of RTO on BrentOzar.com and an introduction to HA and DR functions for SQL Server . If you go through them, you will be better equipped to come back and ask more specific questions. Hope this helps!
source share