Han*_*nsL 4 sql-server backup recovery automation
我正在调查其他 DBA 如何对其数据库备份执行自动定期测试以确保发生灾难时的可恢复性,我对我在该主题上发现的稀疏主题感到非常失望。
我将尝试在评论中描述我为我的公司提出的解决方案,但是你们如何确保您的备份实际上是可恢复的?
让我知道我是否应该在问题中改写或添加任何内容。
更新
经过一段时间和完善,我决定如果有人感兴趣,我决定发布我的脚本。https://github.com/curiebabz/SSARS
如果您在作业上设置了警报,日志传送是一项适用于所有版本的功能,不需要花费大量精力进行设置,并且我相信可以满足您的所有要求。
我会避免您在 Management Studio 中偶然发现的任何向导。基本上,您需要三个作业来完成以下任务:
初始化辅助节点(使用 恢复最新的完整备份NORECOVERY
)
进行完整备份和日志备份
STANDBY, NORECOVERY
本质上,测试完整备份和数据库备份的还原将验证它们(并且您可以在此过程中添加其他任务,例如将还原的数据库带入恢复和检查数据、运行CHECKDB
等)
我详细介绍了我是如何实现日志传送的(目的不同,但方法大致相同):
我们利用Ola Hallengren 的备份脚本将您的日常备份备份到我们的网络存储中,我们有 3 个主要区域:美洲、亚洲和欧洲、中东和非洲。欧洲、中东和非洲地区拥有大约 1,000 个数据库,美洲和亚洲各拥有 200 个数据库。基于这篇 MSSQLTips文章,我创建了一个带有 3 个参数的存储过程:数据库名称、服务器名称和备份路径。
在我们的 CMS 服务器上,我们有一个与管理相关的数据库,其中包含此存储过程的 3 个表:要从恢复中排除的服务器和数据库(如有必要)、用于记录失败的数据库恢复的表以及仅包含所有已处理数据库的表。
然后,SQL 代理作业会迭代网络存储上的所有文件夹,提取服务器和数据库名称,然后使用 powershell 执行存储过程,并将这些名称作为每个服务器和数据库文件夹的参数。
除管理数据库外,所有内容都在专用 SQL 服务器上运行,其唯一目的是执行这些数据库自动恢复测试,如果任何恢复失败,则通过电子邮件通知。