地理数据库同步镜像

我们公司的一位架构师在两个地理位置远的数据中心,devise了一个基于64位SQL2005标准版同步镜像的解决scheme,在物理(4个四核,32GB RAM)服务器和虚拟DR服务器(4个16GB RAM的虚拟CPU)见证服务器(1个虚拟CPU)。 存储是两个数据中心中的企业级SAN。

前端应用程序面向Web,具有混合的读/写使用。

作为一名DBA(在devise阶段没有咨询过),我很担心这个configuration的devise是以冗余度最小化为主要标准,而不是作为真实世界的解决scheme – networking延迟和虚拟性能盒子会造成不可接受的响应时间? 如果调用故障切换,则性能更差。

有没有人有类似的设置经验?

尽pipenetworking带宽起了很大作用,但要考虑的绝对首要因素是本体上的事务日志生成率是多less?

如果应用程序和您的维护没有生成任何事务日志,那么networking带宽实际上是不相关的。 如果它生成日志,则networking带宽必须能够处理生成的日志量。

要回答您的实际问题,如果主体上没有较大的OLTP工作负荷,您的h / wconfiguration可能会起作用(networking问题放在一边)。 如果有,并且您有4×4处理器内核生成事务日志,那么无论您的networking是否可以处理日志stream量,您的镜像服务器很可能无法跟上重播日志。 在标准版上,有一个线程处理镜像日志的REDO – 所以在重负载下你的REDO队列会变得相当大。

REDO队列是在镜像上已经过硬化但尚未在镜像数据库中重播的日志量 – 它越大,镜像数据库作为发生故障转移时的主体在线之前的时间越长。 在标准版中,如果没有像并行重做和快速恢复(REDO之后和UNDO之前的数据库联机)可用的function,这是特别麻烦的。

当然,在从主体到镜像的故障转移之后,镜像将无法像主体服务器那样服务于相同的工作负载 – 所以您将在那里,但是运行速度可能会比较慢。

希望这可以帮助。

微软发布了一个关于数据库镜像的非常好的白皮书 ,其中包括一些关于从同步镜像获得的性能影响的很好的例子。 你是完全正确的,这将是一个性能打击。 从主盒到数据库镜像执行ping命令,并以毫秒为单位查看往返时间:这将是同步镜像将添加的绝对最小开销。 ping甚至不考虑远程服务器处理每个传入事务需要多长时间 – 这纯粹是networking延迟时间。

您添加的networking延迟越多,性能就越慢,而硬件则处于闲置状态:

替代文字http://i.technet.microsoft.com/Cc917681.dbm_fig09(en-us,TechNet.10).gif

我是asynchronous镜像的忠实粉丝,因为这是添加一些保护措施的简单方法,但保护措施可能会落后。 这是一件好事,也是一件坏事:这样做很好,因为它可以处理networking延迟,但这很糟糕,因为可能会丢失任何尚未转入故障转移站点的数据。

另外,在devise数据库镜像解决scheme时(无论是同步还是asynchronous),请务必考虑您的索引维护操作。 如果你每周做索引重build,那么这些将会完全消除镜像积压,因为它们产生了太多的日志logging活动,必须通过电汇。

我没有直接的经验,但你应该看看OpenVMS集群延迟文档 。 他们广泛讨论距离问题。

为了进行主备备份,一些虚拟机不一定是不错的select。 如果VM的磁盘位于SAN上,则应该看到相当不错的性能。

长距离同步镜像是我更关心的。 读取不应受到影响,但是每次写入都需要等待远程提交准备就绪,然后再返回。

我还应该补充 – 虽然OpenVMS文档专门讨论了OpenVMS,但延迟问题适用于任何types的镜像或集群应用程序。 对于你的链路距离做光速延迟的“math”可以非常明显地performance出延迟和长距离的响应。

您主要关心的应该是networking链接。 SAN不应该提供太多的瓶颈,但我没有看到任何性能数据,所以我不能告诉你是或否。 你应该问问你的build筑师和你自己的以下问题:

仔细查看networking链接

  • 它是稳定的吗?
  • 有多less数据包丢失?
  • 有多less带宽可用?
  • 这是其他人用来上网工作的链接吗?

仔细看看SANS

  • 有多less个磁盘?
  • 什么是RAID设置?
  • 还有多less其他应用程序将共享资源?
  • SAN的当前利用率是多less?

然后看看你的应用程序

  • 您将访问多less次数据?
  • 数据库有多大? (棒球场)
  • 指数的创build频率如何?
  • 你的查询对CPU,内存和磁盘有多大的负载?
  • 数据如何在链路的远端validation?

您的RAM和处理器设置对于企业应用程序听起来不错。 这些types的问题很难量化,特别是没有真实世界的数据。

虚拟机通常不是IMO的瓶颈原因。 这很大程度上取决于他们如何build立和资源分配。 I / O通常是虚拟机速度中最重要的因素,这些SAN应该可以帮助你大大提高速度。

每个应用程序是不同的,但是你和你的build筑师需要坐下来一起回答这些问题。 在这个过程中出现的其他所有人

如果一切都失败了,就去购买另一台服务器,然后删除虚拟机。