如何自动运行Microsoft SQL Server 2005夜间备份?

我没有看到在SQL Server 2005中安排夜间备份的内置机制。哪些工具可用来执行此任务以及它们的可靠性如何?

SQL Server代理将为您做。

甚至还有一个用户友好的向导可用于创build必要的备份作业(SQL Server 2005联机丛书: 如何创build维护计划 )。 在可靠性方面 – 我预计这将是坚如磐石的。

它可以在复杂的计划中执行多步骤工作,并通过邮件或其他方式通知您,或根据任何工作的成败来启动stream程。

MSDN:

默认情况下,SQL Server代理服务在安装SQL Server 2005或更高版本时被禁用,除非用户明确select自动启动服务。

我已经使用维护计划完成了这项工作。 我已经写了一个脚本来备份所有的用户数据库。 我在这里分享了这个脚本http://dbalink.wordpress.com/2009/04/25/automated-sql-server-back-poor-mans-edition/

然而,比我在脚本中所做的更好的解决scheme。 只需检查我的post上的评论。

我希望这有帮助 ;-)

这有几个部分。

首先,维护计划将build立一系列操作,可以备份数据库,对索引进行碎片整理,执行DBCC检查等等。 问题在于维护计划缺乏灵活性,并有一些限制。 我在维护计划的教程video中讨论它:

http://sqlserverpedia.com/wiki/Database_Maintenance_Plans

相反,您可以select编写自己的T-SQL脚本来执行数据库备份。 这会给你更多的灵活性和权力。 我们链接到一些很好的备份脚本closuresvideo链接了。

其次,无论您select哪种方法(维护计划或自定义T-SQL脚本),作业都将按照您的计划由SQL Server代理运行。 代理是内置于SQL Server中的作业调度程序。

你有哪个版本的SQL 2005? 如果您有Express版本(免费版),则不会附带SQL代理。

如果你有快递,你将不得不有更多的创意。 一种select是使用Windows调度程序通过备份脚本调用sqlcmd。

如果您没有代理,请使用调度程序调用如下所示的脚本:

BACKUP DATABASE MyDatabase TO DISK='C:\MyDatabase.bak'; 

或类似…

请记住,C:\不能是networking驱动器,它必须是本地连接的驱动器。 (不,映射驱动器也不工作)。

我使用维护计划,他们很容易设置,迄今没有失败。 我让他们将数据库备份到SAN,您必须提供目录path的UNC名称,例如\\ archive \ SQL \ database \ fullbackup.bak。

随着我使用SQL服务器增长更多,我将很可能转向脚本,因为观看布伦特的video显示,从长远来看,这是更好的。

networking备份可能与SQL Server代理…

你只需要改变一个用于启动SQL Server代理服务的账户来访问networking共享(肯定是系统服务操作) – 例如任何域pipe理员帐户…

但是本地磁盘备份和xp_commandshell真的更可靠。 你可以脚本结果检查/分配到几个服务器等…