SQL Server 2008 R2数据库停留在Restore中

时间:2017-08-15 16:38:56

标签: sql-server sql-server-2008-r2 log-shipping

我有两个SQL Server 2008 R2服务器,一个用于PROD,另一个用于DR。我正在尝试为名为School的数据库添加日志传送。

到目前为止的步骤

  • 备份学校数据库
  • 使用UI或使用以下SQL语句(即

    )使用数据库进行还原
    Restore database "School" 
    From disk ='t:\Data\School.bak' 
    with NoRecovery
    
  • 结果是数据库陷入了恢复

  • 如果我使用

    恢复数据库
    Restore database "School" 
    From disk ='t:\Data\School.bak' 
    With recovery
    

    数据库恢复已完成,但日志传送失败。

  • 我删除了数据库并使用

    重新创建了它
    Restore database "School" 
    From disk ='t:\Data\School.bak' 
    With **NoRecovery** 
    

    但它仍然停留在恢复状态

有没有办法可以恢复数据库,而不会让数据库陷入恢复状态。

2 个答案:

答案 0 :(得分:1)

这对我来说似乎是预期的行为。我误读了什么吗?

使用NORECOVERY选项还原数据库和任何差异或必需的事务日志备份后,您需要告诉SQL Server您已完成还原文件。 NORECOVERY选项专门用于恢复多个文件。

你应该只需要运行:

RESTORE DATABASE [School] WITH RECOVERY;

这将告诉SQL Server你已完成,它将完成恢复,它将不再显示为恢复。

答案 1 :(得分:0)

  

我删除了数据库并使用还原数据库“School”从disk ='t:\ Data \ School.bak'再次重新创建它,并带有NoRecovery

如果你没有任何进一步的日志,你必须使用下面的命令

restore database databasename with recovery

更多信息:

  

使用UI或使用以下SQL语句(即

)使用数据库进行还原

下次尝试使用tsql发出restore语句,以便您可以知道状态

restore database databasename from disk="path"
 with stats=5

现在,如果你想知道它的位置和它在做什么的深入细节,你可以使用如下的跟踪标志

dbcc traceon(3004,3605,-1)
GO
  restore database databasename from disk="path"
     with stats=5

这会将输出记录到错误日志,如下所示

  

2008-01-23 08:59:56.26 spid52 RestoreDatabase:数据库dbPerf_MAIN
  2008-01-23 08:59:56.26 spid52打开备份组
  2008-01-23 08:59:56.31 spid52恢复:配置部分已加载2008-01-23 08:59:56.31 spid52恢复:备份集已打开
  2008-01-23 08:59:56.31 spid52恢复:计划开始了   2008-01-23 08:59:56.32 spid52暂停FullText对数据库dbPerf_MAIN的爬网
  2008-01-23 08:59:56.32 spid52拆卸FullText目录
  2008-01-23 08:59:56.32 spid52 X-locking数据库:dbPerf_MAIN
  2008-01-23 08:59:56.32 spid52恢复:规划完成
  2008-01-23 08:59:56.32 spid52恢复:dbPerf_MAIN上的BeginRestore(离线)
  2008-01-23 08:59:56.40 spid52恢复:准备容器   2008-01-23 08:59:56.43 spid52恢复:容器准备就绪

对于您当前的问题,您可以查看事件日志,因为它将记录当前阶段

  

有没有办法可以恢复数据库,而不会让数据库陷入恢复状态。

您必须获得备份的spid并查看等待类型并进行相应的故障排除

select * from sys.dm_Exec_requests where sessionid=backupspid