我的任务是从另一个组织中另一台服务器生成的.bak
文件中还原几个SQL Server数据库。我需要能够为该过程添加自动化,因为它必须每天进行。
我面临的挑战是.bak
文件每天都有不同的名称,例如:DatabaseName_Full_Backup_Date_Time_xxxxxx.bak
。此外,在还原到服务器的数据和日志文件位置期间,还需要将数据和日志文件移动(MOVE
。
我决定使用T-SQL,希望找到可以从SQL Server Agent计划的作业中实施的可靠解决方案,该作业可以还原数据库,应用原始权限并移动\删除旧的.bak
文件到存档位置。
我尝试使用PowerShell解决此问题,但是-relocate
文件不起作用。还尝试了此存储过程(dbo.spRestore_All_Backups_From_Folder
)提出的on this website here,它与我的需求非常接近,但是在我的SQL Server 2016计算机中,还原从另一台服务器生成的备份时出现错误。
该脚本可用于已备份在同一服务器上的数据库中的.bak
个文件,无需移动文件。
尝试从另一台服务器还原.bak
文件时遇到的错误是:
第213层信息,州7,第300行,
列名或提供的值数与表定义不匹配。Msg 3013,第16级,状态1,第300行
RESTORE FILELIST异常终止。
感谢您的所有意见和建议!