AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 24989
Accepted
SuperCoolMoss
SuperCoolMoss
Asked: 2009-06-13 11:36:24 +0800 CST2009-06-13 11:36:24 +0800 CST 2009-06-13 11:36:24 +0800 CST

地理数据库同步镜像

  • 772

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

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

作为一名 DBA(在设计阶段没有咨询过),我担心此配置的设计是以最小化冗余为主要标准,并且它不会作为现实世界的解决方案工作 - 网络延迟和虚拟机的性能框会导致无法接受的响应时间?如果调用故障转移,性能甚至会更差。

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

sql-server performance database-mirroring mirroring architecture
  • 4 4 个回答
  • 1165 Views

4 个回答

  • Voted
  1. Brent Ozar
    2009-06-13T16:39:22+08:002009-06-13T16:39:22+08:00

    Microsoft 发布了一份关于数据库镜像的非常好的白皮书,其中包含一些很好的示例,说明同步镜像对性能的影响有多大。你是完全正确的,因为性能会受到影响。从主机器向数据库镜像执行 ping 操作,并查看以毫秒为单位的往返时间:这将是同步镜像将增加的绝对最小开销。ping 甚至没有考虑远程服务器处理每个传入事务需要多长时间 - 它纯粹是网络延迟时间。

    您添加的网络延迟越多,性能就越慢,硬件就会处于空闲状态:

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

    我是异步镜像的忠实拥护者,因为这是一种添加一些保护的简单方法,但保护可能会落后。这是一件好事,也是一件坏事:这很好,因为它可以处理网络延迟,但它很糟糕,因为您可能会丢失任何尚未将其转移到故障转移站点的数据。

    此外,当您设计数据库镜像解决方案(无论是同步还是异步)时,请务必考虑您的索引维护操作。如果您每周进行索引重建,那么这些绝对会杀死您的镜像积压,因为它们会产生如此多的日志活动,必须通过网络进行。

    • 5
  2. Best Answer
    Paul Randal
    2009-06-13T19:12:01+08:002009-06-13T19:12:01+08:00

    尽管网络带宽在很大程度上发挥了作用,但要考虑的绝对第一因素是主体上的事务日志生成率是多少?

    如果应用程序和您的维护没有生成任何事务日志,那么网络带宽真的无关紧要。如果它确实生成了日志,那么网络带宽必须能够处理生成的日志量。

    要回答您的实际问题,如果主体上没有大量 OLTP 工作负载,您的硬件配置可能会起作用(网络问题除外)。如果有,并且您有 4x4 处理器内核生成事务日志,那么无论您的网络是否能够处理日志流量,您的镜像服务器都可能无法跟上重播日志的速度。在标准版中,镜像上有一个线程处理日志的重做——所以你的重做队列在重负载下会变得相当大。

    REDO 队列是已在镜像上加固但尚未在镜像数据库中重放的日志量 - 它越大,在发生故障转移时镜像数据库作为主体上线之前的时间越长. 这在标准版中尤其麻烦,因为您没有可用的并行重做和快速恢复(数据库在 REDO 之后和 UNDO 之前上线)等功能。

    而且,当然,在从主体到镜像的故障转移之后,镜像将无法为与主体服务器相同的工作负载提供服务——所以你会在那里,但可能运行速度要慢得多。

    希望这可以帮助。

    • 5
  3. Christopher
    2009-06-13T12:22:02+08:002009-06-13T12:22:02+08:00

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

    出于主动/备用备份的目的,需要考虑一些事项,VM 不一定是一个糟糕的选择。如果 VM 的磁盘位于 SAN 上,您应该会看到相当不错的性能。

    长距离同步镜像是我比较关心的。读取不应该受到影响,但是每次写入都需要等待远程提交准备好才能返回。

    我还应该补充一点——虽然 OpenVMS 文档专门讨论了很多关于 OpenVMS 的内容,但延迟问题适用于任何类型的镜像或集群应用程序。对链路距离的光速延迟进行“数学计算”对于长距离的延迟和响应能力非常有启发性。

    • 0
  4. Joseph Kern
    2009-06-13T12:23:55+08:002009-06-13T12:23:55+08:00

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

    好好看看网络链接

    • 稳定吗?
    • 有多少丢包?
    • 有多少带宽可用?
    • 这是其他人在工作中用来上网的链接吗?

    仔细看看 SANS

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

    然后看看你的申请

    • 您将访问数据多少次?
    • 数据库将增长到多大?(棒球场)
    • 多久会创建一次索引?
    • 您的查询对 CPU、内存和磁盘造成了多少负载?
    • 如何在链路的远端验证数据?

    您的 RAM 和处理器设置听起来很适合企业应用程序。这些类型的问题很难量化,尤其是在没有真实数据的情况下。

    IMO,虚拟机通常不是瓶颈的原因。这在很大程度上取决于它们的设置方式和资源分配。I/O 通常是影响 VM 速度的最大因素,这些 SAN 应该对您的速度有很大帮助。

    每个应用程序都不同,但您和您的架构师需要坐下来一起回答这些问题(上图)。以及在此过程中弹出的所有其他人。

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

    • 0

相关问题

  • 上线的第一天:如何不杀死您的网站

  • IIS 优化

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve