【发布时间】:2021-07-02 10:48:23
【问题描述】:
我有一个 SQL 数据库列表作为备份并存储在 D:\Backup\ 驱动器中,任务是恢复所有备份,回到 SQL Server。寻找将从目录中打开每个文件并将所有文件一一还原到服务器的存储过程。
Sample list of Databases
restore database master from disk='D:\BACKUP\DB1.bak' with replace
restore database master from disk='D:\BACKUP\DB2.bak' with replace
restore database master from disk='D:\BACKUP\DB3.bak' with replace
restore database master from disk='D:\BACKUP\DB4.bak' with replace
restore database master from disk='D:\BACKUP\DB5.bak' with replace
restore database master from disk='D:\BACKUP\DB6.bak' with replace
restore database master from disk='D:\BACKUP\DB7.bak' with replace
谢谢
【问题讨论】:
-
您是要恢复到进行备份的同一台服务器还是不同的 Sql Server?
-
是同一台服务器
-
不存在为您执行此操作的神奇程序,您需要推出自己的定制解决方案以满足您的需求。这是一个复杂的过程,因为每个数据库备份都需要针对各种数据文件、日志文件和每个路径的自定义恢复命令。有关服务器上的备份列表,请参阅
msdb.dbo.backupset。我已经为此构建了自定义解决方案,您需要使用restore filelistonly from disk和一些dynamic sql来迭代数据库列表并构建适当的restore命令。 -
您是否有多个要恢复的
master备份日志?一遍又一遍地恢复同一个数据库真的没有意义。而恢复master是一项复杂的操作,需要非常具体的步骤,其中一些步骤超出了SQL批处理的范围。
标签: sql sql-server backup restore