如何仅使用.trn (事务日志备份)文件还原数据库?
下面是显示“还原”的两个步骤。
1)
RESTORE DATABASE [database_name]
FROM DISK = N'path\file_name.bak'
WITH MOVE N'logical_filename' TO N'path\filename.mdf',
MOVE N'logical_filename_log to N'path\filename.ldf' REPLACE,
NORECOVERY;
GO
2)
RESTORE LOG [database_name]
FROM DISK = N'path\filename.trn'
WITH NORECOVERY;
GO
发布于 2015-10-27 06:36:32
运行以下命令:
RESTORE LOG [database_name] FROM DISK = N'path\filename.trn' WITH RECOVERY; GO
注意,我已经将其更改为WITH RECOVERY
--这将运行恢复过程,并使数据库处于可用状态。
运行WITH NORECOVERY
会使数据库处于可以还原更多日志文件的状态。此状态阻止您在执行RESTORE LOG ... WITH RECOVERY
之前使用数据库。
发布于 2015-10-27 12:45:30
是的,根据博客。但是,请确保在还原数据库恢复模式之前,数据库恢复模式设置为“完全”。并将您的数据库恢复模式设置为“FULL”,以便在将来的透视图中恢复数据表。如果您还没有,那么请按照以下步骤操作
从TSQL到更改完全恢复模型
ALTER DATABASE databaseName SET RECOVERY FULL
要通过GUI为数据库设置完整的恢复模型,右键单击数据库名称并选择Properties。然后转到option选项卡并更改恢复模型。
事务日志备份跟踪自上次事务日志备份以来发生的所有事务;它还允许您将数据库还原到数据库错误发生之前的某个时间点。
我想在这里说,如果您正在存储(.trn)事务日志备份。您可以通过两种方法还原事务日志文件。
马克斯·弗农先生已经说过了
RESTORE LOG [database_name] FROM DISK = N'path\filename.trn' WITH RECOVERY;
GO
它恢复数据库,作为最后一次还原日志的一部分。
如果您等待使用单独的RESTORE数据库恢复数据库,请执行以下语句:
RESTORE LOG [database_name] FROM DISK = N'path\filename.trn' WITH NORECOVERY;
GO
RESTORE DATABASE [database_name] FROM DISK = N'path' WITH RECOVERY;
GO
等待恢复数据库使您有机会验证是否已还原了所有必要的日志备份。在执行实时恢复时,这种方法通常是可取的。
参考http://www.techrepublic.com/blog/the-enterprise-cloud/restore-your-sql-server-database-using-transaction-logs/和https://msdn.microsoft.com/en-us/library/ms177446.aspx
注意:-根据MSDN BOL,您总是在每条“RESTORE”语句中显式指定“WITH NORECOVERY”或“WITH”,以消除歧义。在编写脚本时,这一点特别重要。
发布于 2015-10-27 21:08:08
如果您已经还原了所有的日志备份,并且忘记在最后一个日志备份上使用WITH RECOVERY
,那么运行以下命令。
RESTORE LOG [database_name]
WITH RECOVERY;
https://dba.stackexchange.com/questions/119268
复制相似问题