cowgod Asked: 2009-05-02 11:16:29 +0800 CST2009-05-02 11:16:29 +0800 CST 2009-05-02 11:16:29 +0800 CST 如何为 Microsoft SQL Server 2005 自动运行夜间备份? 772 我在 SQL Server 2005 中没有看到任何用于安排夜间备份的内置机制。有哪些工具可用于执行此任务,它们的可靠性如何? sql-server sql-server-2005 backup scheduled-task 7 个回答 Voted Best Answer Tomalak 2009-05-02T11:19:58+08:002009-05-02T11:19:58+08:00 SQL Server 代理会为您完成。 甚至还有一个用户友好的向导可用于创建必要的备份作业(SQL Server 2005 联机丛书:如何:创建维护计划)。在可靠性方面——我希望这是坚如磐石的。 它可以以复杂的时间表执行多步作业,并通过邮件或其他方式通知您,或者根据任何作业的成功或失败启动流程。 MSDN: 默认情况下,安装 SQL Server 2005 或更高版本时禁用 SQL Server 代理服务,除非用户明确选择自动启动该服务。 MarlonRibunal 2009-05-02T12:23:55+08:002009-05-02T12:23:55+08:00 我已经使用维护计划完成了这项工作。我实际上已经编写了一个脚本来备份所有用户数据库。我在这里分享了该脚本http://dbalink.wordpress.com/2009/04/25/automated-sql-server-back-poor-mans-edition/ 不过,有比我在脚本中所做的更好的解决方案。只需查看我帖子上的评论即可。 我希望这有帮助 ;-) Brent Ozar 2009-05-02T12:35:46+08:002009-05-02T12:35:46+08:00 这有几个部分。 首先,维护计划将构建一组可以备份数据库、整理索引碎片、执行 DBCC 检查等的操作。问题是维护计划缺乏灵活性并且有一些限制。我在关于维护计划的教程视频中谈到了它: http://sqlserverpedia.com/wiki/Database_Maintenance_Plans 相反,您可以选择编写自己的 T-SQL 脚本来进行数据库备份。这会给你更多的灵活性和力量。我们也从该视频链接链接到一些好的备份脚本。 其次,无论您选择哪种方法(维护计划或自定义 T-SQL 脚本),作业都将由 SQL Server 代理按您的计划运行。Agent 是 SQL Server 中内置的作业调度程序。 GilaMonster 2009-05-06T00:53:05+08:002009-05-06T00:53:05+08:00 您拥有哪个版本的 SQL 2005?如果你有 Express 版(免费版),它不附带 SQL 代理。 如果你有 Express,你就必须更有创意。一种选择是使用 Windows 调度程序通过备份脚本调用 sqlcmd。 Martin Marconcini 2009-05-06T03:15:26+08:002009-05-06T03:15:26+08:00 如果您没有代理,请使用调度程序调用这样的脚本: BACKUP DATABASE MyDatabase TO DISK='C:\MyDatabase.bak'; 或者类似的…… 请记住,C:\ 不能是网络驱动器,它必须是本地连接的驱动器。(不,映射驱动器也不起作用)。 RateControl 2009-05-06T06:51:43+08:002009-05-06T06:51:43+08:00 我使用维护计划,它们很容易设置,到目前为止还没有失败。我让他们将我的数据库备份到 SAN,您必须为目录路径提供 UNC 名称,例如 \\archive\SQL\database\fullbackup.bak。 随着我越来越多地使用 SQL Server,我很可能会转向脚本,因为观看 Brent 的视频告诉我,从长远来看它会更好。 Sergey 2009-06-02T00:53:43+08:002009-06-02T00:53:43+08:00 使用 SQL Server 代理可以进行网络备份... 您只需要将用于启动 SQL Server 代理服务的帐户更改为可以访问网络共享(当然还有系统服务操作)的帐户 - 例如任何域管理员帐户... 但是本地磁盘备份和 xp_commandshell 确实可靠得多。您可以将结果检查/分发到多个服务器等等...
SQL Server 代理会为您完成。
甚至还有一个用户友好的向导可用于创建必要的备份作业(SQL Server 2005 联机丛书:如何:创建维护计划)。在可靠性方面——我希望这是坚如磐石的。
它可以以复杂的时间表执行多步作业,并通过邮件或其他方式通知您,或者根据任何作业的成功或失败启动流程。
MSDN:
我已经使用维护计划完成了这项工作。我实际上已经编写了一个脚本来备份所有用户数据库。我在这里分享了该脚本http://dbalink.wordpress.com/2009/04/25/automated-sql-server-back-poor-mans-edition/
不过,有比我在脚本中所做的更好的解决方案。只需查看我帖子上的评论即可。
我希望这有帮助 ;-)
这有几个部分。
首先,维护计划将构建一组可以备份数据库、整理索引碎片、执行 DBCC 检查等的操作。问题是维护计划缺乏灵活性并且有一些限制。我在关于维护计划的教程视频中谈到了它:
http://sqlserverpedia.com/wiki/Database_Maintenance_Plans
相反,您可以选择编写自己的 T-SQL 脚本来进行数据库备份。这会给你更多的灵活性和力量。我们也从该视频链接链接到一些好的备份脚本。
其次,无论您选择哪种方法(维护计划或自定义 T-SQL 脚本),作业都将由 SQL Server 代理按您的计划运行。Agent 是 SQL Server 中内置的作业调度程序。
您拥有哪个版本的 SQL 2005?如果你有 Express 版(免费版),它不附带 SQL 代理。
如果你有 Express,你就必须更有创意。一种选择是使用 Windows 调度程序通过备份脚本调用 sqlcmd。
如果您没有代理,请使用调度程序调用这样的脚本:
或者类似的……
请记住,C:\ 不能是网络驱动器,它必须是本地连接的驱动器。(不,映射驱动器也不起作用)。
我使用维护计划,它们很容易设置,到目前为止还没有失败。我让他们将我的数据库备份到 SAN,您必须为目录路径提供 UNC 名称,例如 \\archive\SQL\database\fullbackup.bak。
随着我越来越多地使用 SQL Server,我很可能会转向脚本,因为观看 Brent 的视频告诉我,从长远来看它会更好。
使用 SQL Server 代理可以进行网络备份...
您只需要将用于启动 SQL Server 代理服务的帐户更改为可以访问网络共享(当然还有系统服务操作)的帐户 - 例如任何域管理员帐户...
但是本地磁盘备份和 xp_commandshell 确实可靠得多。您可以将结果检查/分发到多个服务器等等...