镜像与复制

时间:2009-01-12 10:01:08

标签: sql sql-server-2005

如何决定是否在SQL Server 2005中选择复制或镜像以同时提供数据可用性和性能。


为了更具体地说明我的SQL服务器体系结构,我有一个由2个节点组成的主动/主动群集,用于负载平衡,我还有另一个用于复制的服务器,它只用于报告,我想制作确定哪种技术最好地提供可用性和性能,事务复制或数据库镜像?

3 个答案:

答案 0 :(得分:7)

这取决于您需要的待机可用性级别(热,暖,冷)。

  

SQL Server中的各种机制   提供数据库级冗余,   如备份/恢复,日志传送,   和数据库镜像(在SQL Server中   2005年及以后)。数据库镜像是   提供的唯一机制   受保护的实时,精确副本   保证为零的数据库   数据丢失(当镜像是   同步)。

数据库镜像以同步或异步模式运行。在异步操作下,事务提交无需等待镜像服务器将日志写入磁盘,从而最大限度地提高性能。

本MS白皮书Providing High Availability using Database Mirroring涵盖了一系列方案。

您应该阅读此TechNet文章Database Mirroring Best Practices and Performance Considerations

答案 1 :(得分:7)

事实证明,数据库镜像可以防止数据被直接访问,镜像数据只能通过数据库快照访问,因此来自快照数据的报告不会是最新的,因此,我将使用数据库事务复制来提供高可用性和负载平衡。

答案 2 :(得分:5)

我不知道SQL Server 2005,但对于一般的SQL用法,我总是更喜欢复制。您必须在应用程序中单独读取/写入(对于MySQL,有MySQL代理可以代理方式为您执行此操作),但获得可扩展的系统。 (读取到从站,写入主站)

镜像意味着主 - 主复制,这会导致并发/事务问题。即使在master-master场景中,您也应该从不向不同的服务器发送写入查询。 根据项目的大小,接下来的步骤是添加更多从站,然后添加另一个主站及其从站以实现冗余。

master --- master
  |          |
slave       slave
  |          |
slave       slave
  |          |
slave       slave

即使这样,您也只会向一个主服务器发送写入查询,但是如果主服务器出现故障,您可以自动将第二个主服务器提升到新的写入查询目标。