如何决定是否在SQL Server 2005中选择复制或镜像以同时提供数据可用性和性能。
为了更具体地说明我的SQL服务器体系结构,我有一个由2个节点组成的主动/主动群集,用于负载平衡,我还有另一个用于复制的服务器,它只用于报告,我想制作确定哪种技术最好地提供可用性和性能,事务复制或数据库镜像?
答案 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
即使这样,您也只会向一个主服务器发送写入查询,但是如果主服务器出现故障,您可以自动将第二个主服务器提升到新的写入查询目标。