我继承了一个非常有趣的环境,我的任务是尽快找到并实施高可用性/灾难恢复解决方案。
简单来说我们的环境是这样的:
服务器 1 - 生产数据库 (200GB)
服务器 2、3、4 - 需要每天恢复生产数据库的副本(必须每天更新一次生产数据)
Server 5——DR服务器(数据丢失尽量少,不超过5分钟)
我们用:
- 所有服务器上的 Windows 2012 R2
- SQL Server 2012 企业版
- 如果有必要,我们很乐意(在合理范围内)升级软件和硬件。
要求:
我们需要的解决方案:
需要尽可能少的维护工作(只有 1 个超级忙碌的 DBA 可用)
将使我们能够继续生成完整的、差异的和事务性的备份(我们需要它们供审计人员使用)
我已经考虑过的选项:
我考虑了一下,排除了以下方法:
1) 日志传送,因为我们需要能够向审计员显示日志备份并将其存储多年。如果我错了,请纠正我,但日志传送不允许我们创建单独的日志备份。
2) 镜像仅在 2 个服务器(主服务器和镜像服务器)之间工作,因此它不能解决必须每天刷新的额外服务器的问题。也许我只能在一台服务器上使用它,而在其他 3 台服务器上使用其他东西。
3)复制主要用于单个表和函数,所以恐怕无法将慢速服务器上的一个数据库复制到其他 4 个服务器。
4) 我从未使用过其他 HA 技术,例如 AlwaysOn 或集群对我来说是一个很大的未知数。只要有人指出正确的方向,我就很乐意学习。
如果您能建议可以在所描述的环境中实施的 HA/DR 解决方案,我将不胜感激。
根据您的专业水平,我建议您 - Logshipping或AlwaysON AG。
日志传送。它允许您将数据库登录到任意数量的辅助数据库。
您可以在辅助设备上选择备用选项,这样您就可以在日志未恢复时读取数据。将其视为仅报告。
您可以采用不会破坏日志链的 COPY_ONLY 日志备份(或限制用户仅复制备份),并且您可以存档日志备份(取决于您设置的频率)——以便您的审计员可以存储它们。只是不要删除它们或者在日志传送清理工作中有更长的保留期。
您可以实施 AlwaysON 可用性组并愉快地进行完整、差异和 T-Log 备份。
重要的是有适合您的学习曲线。所有服务器都应该是同一个 Windows 集群的一部分,存在 DNS 依赖性,您的应用程序应该能够使用新的提供程序和连接字符串等。由于您使用的是企业版,因此您可以尝试作为证明的概念,一旦你有信心,你就可以从 logshipping 过渡到 AlwaysON。
注意:我们目前正在从 Logshipping 过渡到 AlwaysON,因为我们在世界不同大陆托管了 1000 多个数据库的庞大环境。
一些帮助您开始 ALwaysON 部分的参考资料: