首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以仅用.trn文件恢复数据库?

是否可以仅用.trn文件恢复数据库?
EN

Database Administration用户
提问于 2015-10-27 06:22:00
回答 3查看 9.9K关注 0票数 0

如何仅使用.trn (事务日志备份)文件还原数据库?

下面是显示“还原”的两个步骤。

1)

代码语言:javascript
运行
复制
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)

代码语言:javascript
运行
复制
RESTORE LOG [database_name]
  FROM DISK = N'path\filename.trn'
  WITH NORECOVERY;
GO
EN

回答 3

Database Administration用户

发布于 2015-10-27 06:36:32

运行以下命令:

代码语言:javascript
运行
复制
RESTORE LOG [database_name] FROM DISK = N'path\filename.trn' WITH RECOVERY; GO

注意,我已经将其更改为WITH RECOVERY --这将运行恢复过程,并使数据库处于可用状态。

运行WITH NORECOVERY会使数据库处于可以还原更多日志文件的状态。此状态阻止您在执行RESTORE LOG ... WITH RECOVERY之前使用数据库。

票数 3
EN

Database Administration用户

发布于 2015-10-27 12:45:30

是的,根据博客。但是,请确保在还原数据库恢复模式之前,数据库恢复模式设置为“完全”。并将您的数据库恢复模式设置为“FULL”,以便在将来的透视图中恢复数据表。如果您还没有,那么请按照以下步骤操作

步骤1

从TSQL到更改完全恢复模型

ALTER DATABASE databaseName SET RECOVERY FULL

步骤2

要通过GUI为数据库设置完整的恢复模型,右键单击数据库名称并选择Properties。然后转到option选项卡并更改恢复模型。

事务日志备份跟踪自上次事务日志备份以来发生的所有事务;它还允许您将数据库还原到数据库错误发生之前的某个时间点。

我想在这里说,如果您正在存储(.trn)事务日志备份。您可以通过两种方法还原事务日志文件。

Step1

马克斯·弗农先生已经说过了

代码语言:javascript
运行
复制
RESTORE LOG [database_name] FROM DISK = N'path\filename.trn' WITH RECOVERY; 
GO

它恢复数据库,作为最后一次还原日志的一部分。

Step2

如果您等待使用单独的RESTORE数据库恢复数据库,请执行以下语句:

代码语言:javascript
运行
复制
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”,以消除歧义。在编写脚本时,这一点特别重要。

票数 0
EN

Database Administration用户

发布于 2015-10-27 21:08:08

如果您已经还原了所有的日志备份,并且忘记在最后一个日志备份上使用WITH RECOVERY,那么运行以下命令。

代码语言:javascript
运行
复制
RESTORE LOG [database_name]
WITH RECOVERY;
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/119268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档