镜像与复制

Bas*_*ash 13 sql sql-server-2005

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


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

Mit*_*eat 7

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

SQL Server中的各种机制提供数据库级冗余,例如备份/还原,日志传送和数据库镜像(在SQL Server 2005及更高版本中).数据库镜像是提供受保护数据库的实时精确副本的唯一机制,可保证零数据丢失(镜像同步时).

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

本MS白皮书使用数据库镜像提供高可用性,涵盖了一系列场景.

您应该阅读此TechNet文章,数据库镜像最佳实践和性能注意事项.


Bas*_*ash 7

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


Kar*_*ten 5

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

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

master --- master
  |          |
slave       slave
  |          |
slave       slave
  |          |
slave       slave
Run Code Online (Sandbox Code Playgroud)

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

  • 在MS-SQL中镜像是*不是*主 - 主复制.一次只能写入两个数据库中的一个,并且那些插入/更新/删除事务也会提交到另一个服务器的日志. (2认同)