我没有看到在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真的更可靠。 你可以脚本结果检查/分配到几个服务器等…