我正在寻找有关 SQL Server 最佳 HA/DR 策略的建议。目前,我正在使用 Express 版本,通过 WAN 将备份复制到远程站点并进行恢复。
SQL Express 实例托管在具有直接 RAID 存储的盒子上的虚拟化服务器(当前为 VMWare)上。
我非常希望减少潜在的数据丢失,并缩短当前解决方案的恢复时间。我发现有几种方法可以实现这一点。
1)迁移到 SQL 企业版并使用复制
2) 将数据移动到 iSCSI SAN 并复制包含 SQL 数据的虚拟磁盘,然后使用 VMotion 或 XenApp 等效程序从一个站点移动到另一个站点。(我不知道从 SQL 服务器事务的角度来看这是否可行)
3) 跨 WAN 链路对虚拟机进行集群。
当前 WAN 链路为 10Mb,我不愿意增加它 - 因此我很好奇哪种解决方案可以提供最佳的带宽利用率、最佳的可靠性和最具成本效益。
我也愿意接受其他建议。
谢谢,克里斯
答案1
由于集群上共享存储的工作方式,在虚拟环境中进行集群将变得非常困难且昂贵。
复制也有限制,可能超出您的需要,尤其是因为 SQL 2005 Enterprise 的每个处理器价格约为 25,000 美元,或每台服务器 + CAL 的价格约为 14,000 美元。使用复制,您需要拥有两个 Enterprise 许可证,而对于集群,您只需要一个许可证。
不过,由于您现在只使用 SQL Express,因此您可能需要先升级到 SQL 工作组版本,并配置从一台服务器到另一台服务器的日志传送。如果您需要升级到 SQL Standard,那么我会选择数据库镜像。
事实上,就我个人而言,除非有特殊原因,否则我会选择数据库镜像而不是大多数解决方案,尽管在事务量非常高的系统上,性能会略有下降,并且设置起来比日志传送等稍微复杂一些。集群将是最复杂的设置,而且由于硬件要求,绝对是最昂贵的。
查看以下链接:
http://msdn.microsoft.com/en-us/library/ms190202%28SQL.90%29.aspx- 高可用性解决方案
http://msdn.microsoft.com/en-us/library/ms189134%28SQL.90%29.aspx- 故障转移群集
http://technet.microsoft.com/en-us/library/cc917680.aspx- 数据库镜像
http://msdn.microsoft.com/en-us/library/ms188698.aspx- 日志传送
http://www.microsoft.com/Sqlserver/2005/en/us/pricing.aspx- 价钱
http://www.sqlservercentral.com/articles/Disaster+Recovery/sqlserver2005highavailability/2421/- SQL Server Central 的高可用性
http://www.amazon.com/gp/product/159059780X- 很棒的 SQL 2005 高可用性书籍,我向每一位 MS DBA 推荐
答案2
我还发现了以下内容:
http://www.xlink.com/REPLICA/ent/clusterdescription_ent.aspx
对我来说这似乎是一个相当低成本的解决方案。有人有经验吗?
答案3
我同意 tnolan 的观点,您应该尝试频繁的日志传送或数据库镜像。这些都是非常经济高效的解决方案,专门针对您的情况而设计。集群是为本地弹性而设计的,并且最适合本地弹性,而不是地理上分散的数据库。集群还需要集群 HCL 上的硬件。
如果您不想升级 SQL Server 版本,则可以使用存储过程和 SQL Agent 推出自己的日志传送解决方案。在 Google 上搜索日志传送 - 有很多您可以尝试的自制解决方案。
答案4
如果您不想在许可方面投入大量资金,还可以看看第三方磁盘复制工具。
我在我们的工作服务器上使用 Double Take,它提供块级数据复制,就像您在 SAN 上期望的那样,到目前为止,它的性能非常棒。我们用它复制 SQL 二进制文件和数据 - 另外,我可以使用它为非 SQL 数据创建额外的副本集。它已通过 MS 认证,可以与 SQL 数据文件配合使用。
我确信还有其他人做类似的工作,但这是我们的托管公司信赖的产品。