我需要安排一个任务,每周从备份中恢复一次数据库。我已经设置了备份数据库的维护计划(管理>维护计划),但无法找到如何进行还原任务--这需要执行Task语句任务,还是有工具箱项?
发布于 2013-07-27 16:14:36
维护计划中没有“还原DB任务”。您必须使用Execute T-SQL Statement Task。在该任务中,在task语句中添加一个还原脚本。简单的例子:
RESTORE DATABASE YourDBName FROM DISK = 'D:\DBbackups\YourDB.BAK'
WITH REPLACE
GO然后为每周执行创建一个时间表。希望这是业务所需要的,因为您正在覆盖一个DB。
发布于 2013-07-27 16:11:43
就像乔恩说的,在维修计划中没有什么能做到这一点。
我假设您希望复制用于暂存或开发环境的数据库的当前状态,而不是寻找类似日志传送之类的内容。如果是这样的话,您可以在任务调度程序中使用批处理和task执行类似的操作:
ECHO ON
set backupscript=c:\path\backup.sql
set restorescript=c:\path\restore.sql
set backupstore=\\server\share
set restorestore=\\server\share
set backupserver=server\inst
set restoreserver=server\inst
sqlcmd -E -S%backupserver% -i "%backupscript%"
copy "%backupstore%\*" %restorestore%
sqlcmd -E -S%restoreserver% -i "%restorescript%"发布于 2013-07-27 13:29:49
在维护计划中没有任何东西可以做到这一点。
但是,交易日志运输是内置/支持的,它提供了一种在两个地方保存数据库副本的方法。它是在考虑灾难恢复的情况下构建的,但是您没有理由不能将其用于您的目的(除了最初使用日志传送所固有的需求和限制之外)。它甚至可能比每周进行一次完全恢复更有效。
如果日志传送不合适,您要么需要找到其他人的解决方案,要么自己滚。您也可以查看内建解决方案,如复制(特别是快照复制),但这可能过于复杂,以满足您的需要。
https://dba.stackexchange.com/questions/47143
复制相似问题