MSSQL在线文件还原脚本

在线文件还原:如果比较大的MSSQL数据库的损坏只是集中在其中某一个文件或者文件组上,使用在线文件还原技术,
只是把坏掉的数据文件或者文件组重建,能节约很多时间。
以下是测试脚本(假设损坏的文件时Trn01):

--首先还原损坏的文件Trn01(执行这一步之前,你必须取得数据库的独占访问权):
RESTORE DATABASE [AdventureWorks] FILE=NTrn01 FROM DISK=ND:\BACKUP_TEST\AD_FULL.BAK WITH NORECOVERY,STATS=10
--如果不是企业版,将会出现错误消息 3159,提示你需要使用BACKUP LOG WITH NORECOVERY 备份尾日志,意味着您只能离线文件还原。
--BACKUP LOG [AdventureWorks] TO DISK =N‘D:\BACKUP_TEST\Log_BACK_TAIL.TRN‘ WITH NORECOVERY,COMPRESSION,STATS=10
--啰嗦一句,如果是企业版,执行完成后此时你可以放开独占访问权了。(如果是通过更改为SINGLE_USER模式的话,现在可以改为MULTI_USER放开访问了) --但此时Trn01所属的文件组TRN不能被访问,TRN文件组以外的数据库内容可以被访问。 --如果试图访问Trn01中的表,将出现如下的错误消息: --消息 8653,级别 16,状态 1,第 2 行 --查询处理器无法为表或视图“***”生成计划,因为该表驻留在不处于联机状态的文件组中。 --备份文件离线时点的日志: BACKUP LOG [AdventureWorks] TO DISK =ND:\BACKUP_TEST\Log_BACK_TAIL.TRN WITH COPY_ONLY,COMPRESSION,STATS=10 --依次还原日志: RESTORE LOG [AdventureWorks] FROM DISK=ND:\BACKUP_TEST\LOG_BACK_1.TRN WITH NORECOVERY,STATS=10 RESTORE LOG [AdventureWorks] FROM DISK=ND:\BACKUP_TEST\LOG_BACK_2.TRN WITH NORECOVERY,STATS=10 --还原文件离线时点的日志: RESTORE LOG [AdventureWorks] FROM DISK=ND:\BACKUP_TEST\Log_BACK_TAIL.TRN WITH RECOVERY,STATS=10

 

MSSQL在线文件还原脚本,布布扣,bubuko.com

MSSQL在线文件还原脚本

上一篇:动手学数据分析系列---数据重构


下一篇:Dos命令