构建基于备份/维护解决方案的自动脚本

时间:2009-06-21 21:26:07

标签: sql sql-server

我公司目前有以下设置:

127个SQL服务器(2000和2005)和700多个数据库。我们正在进行服务器整合,并计划设置主服务器/目标服务器以实现集中管理。作为该项目的一部分,我被赋予了创建基于脚本的自动备份/维护解决方案的责任。

感谢Ola Hallengren提供的脚本here我取得了很多进展。

这是我的计划:

  • 我在主服务器上有一个数据库,其中包含SQL实例,数据库和备份路径详细信息的详细信息。
  • 我正在修改Hallengren的脚本以从该数据库中读取并动态创建作业。
  • 允许用户定义他们想要的备份类型,备份需要保留的频率和时长。
  • 我也希望能够分散工作,这样我就不会同时运行太多工作。
  • 我的想法是创建表格,这些表格需要将数据作为参数传递给sp_add_job,sp_add_jobstep和sp_add_jobschedule。

请通过此设置分享您在陷阱和障碍方面的经验。欢迎所有想法。

谢谢,

拉​​吉

2 个答案:

答案 0 :(得分:0)

您还可以考虑在每台服务器上创建完整备份作业和事务日志备份作业的方法,该作业从主数据库检索数据库并将其提供给备份过程。您可以每5分钟运行一次作业,并且该过程必须计算出它的时间和需要什么类型的备份。

我这样说,因为事情可能会变得混乱,以自动化的方式创造大量的工作 - 但也许你的工作做得很好。如果采用原始方法,请务必使用作业名称创建“主键”。

如果您在数据库中保留记录并找到可用于放置新作业的可用窗口,那么扩展作业应该很容易。我已经看过这样的脚本。

您也可以在从管理服务器运行的SSIS包中执行此操作。它将迭代数据库并连接到服务器以执行备份。

在此处查看前3篇文章:http://www.sqlmag.com/Authors/AuthorID/1089/1089.html

答案 1 :(得分:0)

到2005年,我们对综合服务维护计划不满意

我们写了sp来做Full和Tran备份以及重新索引,arrgegate管理,存档等

每日和每小时作业将通过master..sysdatabases和try catch块进行 进行必要的维护。从任何表中读取并检查用户定义的条件并不难。

不幸的是,没有办法将输出绑定到msdb..sysjobhistry,所以我们登录到中央表。好处是我们对记录的内容有了更多的控制权。 然而,阅读比通过700个工作更简单。