毫无疑问,HA或DR对Production DB是至关重要的,原因不必解释。在SQL Server的早期版本,我们可以使用故障转移群集、数据库镜像、日志传递、复制来实现我们需要的HA或DR,但它们均有优缺点:
- 故障转移群集又称为Failover Cluster。此技术使用的共享存储技术,不涉及到底层数据的同步问题,因此可以认为群集的最大好处就是性能较高,但存储会成为整个群集技术中的单点故障。另外,群集技术的另一个弊端就是某一个时间点只有一个节点处于活动状态,其他节点处于闲置不可用状态,造成硬件资源浪费。
- 数据库镜像又称为Database Mirror。此技术可提供几乎是瞬时的故障转移,以提高数据库的可用性。镜像基于单个数据库实现,数据库镜像会及时将主数据库的数据同步到镜像数据库。此技术的最大弊端在于镜像数据库处于不可读状态,无形中也造成了硬件资料的浪费。
- 日志传送又称为Log Shipping。同数据库镜像技术一样,日志传送是数据库级操作。可以使用日志传送来维护单个生产数据库(称为“主数据库”)的一个或多个热备用数据库(称为“辅助数据库”)。此技术支持对辅助数据库在还原作业之间的间隔时间内的只读访问权限,可用做报表查询,以提高资源的利用率。此技术一般用于远程的异步容灾,存在部分数据丢失的可能性。
- 复制又称为Replication。此技术基于数据库对象级别,灵活性较高,可以很方便地将数据和数据库对象从一个数据库复制和分发到另一个数据库,然后在数据库之间进行同步以保持一致性。 SQL Server 提供了三种复制:快照复制、事务复制以及合并复