SQL Server 2008 R2 数据库卡在还原中



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

到目前为止的步骤

  • 备份学校数据库
  • 使用 UI 或使用以下 SQL 语句使用数据库进行还原,即

    Restore database "School" 
    From disk ='t:DataSchool.bak' 
    with NoRecovery
    
  • 结果是数据库卡在还原中

  • 如果我使用

    Restore database "School" 
    From disk ='t:DataSchool.bak' 
    With recovery
    

    数据库还原完成,但日志传送失败。

  • 我删除了数据库并再次使用

    Restore database "School" 
    From disk ='t:DataSchool.bak' 
    With **NoRecovery** 
    

    但它仍然卡在恢复状态

有没有办法可以还原数据库而不会使数据库卡在还原状态。

这对我来说似乎是预期的行为。 我是不是看错了什么?

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

您只需要运行:

RESTORE DATABASE [School] WITH RECOVERY;

这将告诉SQL Server您已完成,它将完成还原,并且将不再显示为还原。

我已经删除了数据库,并使用从磁盘='t:\Data\School.bak'与NoRecovery恢复数据库"学校"再次重新创建它

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

restore database databasename with recovery

更多信息:

使用 UI 或使用以下 SQL 语句使用数据库进行还原,即

下次尝试使用 tsql 发出还原语句,以便了解状态

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 恢复数据库: 数据库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 停止数据库dbPerf_MAIN
上的全文爬网2008-01-23 08:59:56.32 spid52 卸载全文目录
2008-01-23 08:59:56.32 spid52 X-锁定数据库:dbPerf_MAIN
2008-01-23 08:59:56.32 spid52 恢复:规划完成
2008-01-23 08:59:56.32 spid52 恢复:开始恢复(脱机(
dbPerf_MAIN 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

相关内容

  • 没有找到相关文章

最新更新