如何决定是否在SQL Server 2005中选择复制或镜像以同时提供数据可用性和性能.
为了更具体地说明我的SQL服务器体系结构,我有一个2个节点的主动/主动集群,用于负载平衡,我有另一个服务器用于复制,它只用于报告,我想确定哪个技术最好提供可用性和性能,事务复制或数据库镜像?
它取决于您需要的待机可用性级别(热,暖,冷).
SQL Server中的各种机制提供数据库级冗余,例如备份/还原,日志传送和数据库镜像(在SQL Server 2005及更高版本中).数据库镜像是提供受保护数据库的实时精确副本的唯一机制,可保证零数据丢失(镜像同步时).
数据库镜像以同步或异步模式运行.在异步操作下,事务提交无需等待镜像服务器将日志写入磁盘,从而最大限度地提高性能.
本MS白皮书使用数据库镜像提供高可用性,涵盖了一系列场景.
您应该阅读此TechNet文章,数据库镜像最佳实践和性能注意事项.
事实证明,数据库镜像可以防止数据被直接访问,镜像数据只能通过数据库快照访问,因此快照数据的报告不会是最新的,所以我将使用数据库事务复制来提供高可用性和负载平衡.
我不知道SQL Server 2005,但对于一般的SQL用法,我总是更喜欢复制.您必须在应用程序中单独读取/写入(对于MySQL,有MySQL代理可以代理方式为您执行此操作),但获得可扩展的系统.(读取到从站,写入主站)
镜像意味着主 - 主复制,这会导致并发/事务问题.即使在主-主场景,你应该永远不会发送写查询到不同的服务器.根据项目的大小,接下来的步骤是添加更多从站,然后添加另一个主站+其从站以实现冗余.
master --- master | | slave slave | | slave slave | | slave slave
即使这样,您也只会向一个主服务器发送写入查询,但是如果主服务器出现故障,您可以自动将第二个主服务器提升到新的写入查询目标.