sql server 2005:为什么我还原一个数据库老是处于"正在还原"状态?

时间:2023-01-09 20:45:35
日志中显示已经还原完成了,主界面中该数据库却老是处于"正在还原"状态,无法打开.
该数据库备份文件是从另一台SQL服务器"完全备份"某个数据库生成的.

15 个解决方案

#1


刷新一下就可以了

#2


没遇到过,帮顶

#3


拷贝MDF,LDF直接附加.

或用语句附加:
示例
下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs', 
   @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', 
   @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

#4


是不是还原时指定了norecovery的原因?

#5


看看

#6


1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑)
2)很少情况下,恢复进程被挂起了。这个时候假设你要恢复并且回到可访问状态,要执行:
     backup database with recovery
   这使得恢复过程能完全结束。
3)如果你要不断恢复后面的日志文件,的确需要使数据库处于“正在还原状态”,
   这通常是执行下面命令:
    backup database with norecovery

#7


backup database M to disk='e:\e\e.bak' with recovery;

提示错误:
'recovery' 不是可以识别的 BACKUP 选项。

#8


backup database M to disk='e:\e\e.bak';

提示错误: 
无法打开数据库 'M'。该数据库正在进行还原。

#9


NORECOVERY

只与 BACKUP LOG 一起使用

#10


手工修改试试

--下面语句中的ABCD就是你要修改的数据库名称

USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 
GO

RECONFIGURE WITH OVERRIDE
GO

update sysdatabases set status =32768 where name='ABCD'
Go

sp_dboption 'ABCD', 'single user', 'true'
Go

DBCC CHECKDB('ABCD') 
Go

update sysdatabases set status =28 where name='ABCD'
Go

sp_configure 'allow updates', 0 

reconfigure with override
Go 

sp_dboption 'ABCD', 'single user', 'false'
Go

#11


解决了,还原时选项中选择"回滚事务"!

#12


1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑) 
2)很少情况下,恢复进程被挂起了。这个时候假设你要恢复并且回到可访问状态,要执行: 
          backup   database   with   recovery 
      这使得恢复过程能完全结束。 
3)如果你要不断恢复后面的日志文件,的确需要使数据库处于“正在还原状态”, 
      这通常是执行下面命令: 
        backup   database   with   norecovery 
-----------------------------------
不好意思,写错了。应该是 
RESTORE DATABASE ... WITH RECOVERY/NORECOVERY 

#13


同样的问题,使用以下语句解决:

restore   database  [abc]   with   recovery

不知行不行、

#14


restore  database  [abc]  with  recovery 

KE YI

#15


“正在恢复”状态的出现是因为你再做耗时较长的操作时服务被意外中断导致有事务未完成提交(或撤销)导致的。
解决方法如下:
1、停掉数据库服务
2、删除掉日志文件
3、开启数据库服务,重建日志文件。

#1


刷新一下就可以了

#2


没遇到过,帮顶

#3


拷贝MDF,LDF直接附加.

或用语句附加:
示例
下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs', 
   @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', 
   @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

#4


是不是还原时指定了norecovery的原因?

#5


看看

#6


1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑)
2)很少情况下,恢复进程被挂起了。这个时候假设你要恢复并且回到可访问状态,要执行:
     backup database with recovery
   这使得恢复过程能完全结束。
3)如果你要不断恢复后面的日志文件,的确需要使数据库处于“正在还原状态”,
   这通常是执行下面命令:
    backup database with norecovery

#7


backup database M to disk='e:\e\e.bak' with recovery;

提示错误:
'recovery' 不是可以识别的 BACKUP 选项。

#8


backup database M to disk='e:\e\e.bak';

提示错误: 
无法打开数据库 'M'。该数据库正在进行还原。

#9


NORECOVERY

只与 BACKUP LOG 一起使用

#10


手工修改试试

--下面语句中的ABCD就是你要修改的数据库名称

USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 
GO

RECONFIGURE WITH OVERRIDE
GO

update sysdatabases set status =32768 where name='ABCD'
Go

sp_dboption 'ABCD', 'single user', 'true'
Go

DBCC CHECKDB('ABCD') 
Go

update sysdatabases set status =28 where name='ABCD'
Go

sp_configure 'allow updates', 0 

reconfigure with override
Go 

sp_dboption 'ABCD', 'single user', 'false'
Go

#11


解决了,还原时选项中选择"回滚事务"!

#12


1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑) 
2)很少情况下,恢复进程被挂起了。这个时候假设你要恢复并且回到可访问状态,要执行: 
          backup   database   with   recovery 
      这使得恢复过程能完全结束。 
3)如果你要不断恢复后面的日志文件,的确需要使数据库处于“正在还原状态”, 
      这通常是执行下面命令: 
        backup   database   with   norecovery 
-----------------------------------
不好意思,写错了。应该是 
RESTORE DATABASE ... WITH RECOVERY/NORECOVERY 

#13


同样的问题,使用以下语句解决:

restore   database  [abc]   with   recovery

不知行不行、

#14


restore  database  [abc]  with  recovery 

KE YI

#15


“正在恢复”状态的出现是因为你再做耗时较长的操作时服务被意外中断导致有事务未完成提交(或撤销)导致的。
解决方法如下:
1、停掉数据库服务
2、删除掉日志文件
3、开启数据库服务,重建日志文件。