第三方向我们发送了分割备份,我们每天需要将这些备份还原到单个数据库中。有没有一种方法可以使维护成本低廉而自动化?
首选项是编写T-SQL或SQL Server作业:
答案 0 :(得分:1)
评论时间太长,但这通常是在SQL代理作业中完成的。
拆分备份意味着(至少)4件事中的1件事,如果您还不了解的话,则需要从供应商那里得到澄清。我排除了部分备份:
不包括文件和文件组还原,您将:
您还可以在步骤2中选择任何差异,然后选择所有日志备份,因为该差异存在。自然,如果它们仅向您发送完整备份,则只需要还原完整备份。
沿这些方向发生的事情...会因您的环境而异(AlwaysOn,设置为只读,设置为STANDBY等)
ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
RESTORE DATABASE [AdventureWorks] FROM DISK ='\\UNC\AdventureWorks.back0'
WITH
--what ever options... but likely a file move
MOVE 'data_file_1' TO 'E:\somefolder\data.mdf',
MOVE 'db_log' TO 'E:\somefolder\log.ldf',
REPLACE, --overwrites the database
RECOVERY --sets the DB to READ/WRITE. Use NORECOVERY if you need to restore logs / differentials
GO
--if using logs...
RESTORE LOG AdventureWorks
FROM '\\UNC\AdventureWorks.back01' --assuming this is a log
WITH FILE = 1, --this is the first log
WITH NORECOVERY; --keep in norecovery to restore other logs...
GO
等...