据库被标记为RESTORING的处理方式,正在还原中,正在恢复

关键词:正在还原,正在恢复,restoring,RECOVERING

转自:http://limindo.blog.163.com/blog/static/264758562010116115412141/

二、这个显示是指:正在还原中..
如果确定还原完毕,可以用
SQL code


                restore database 数据库A with recovery

或者:
                RESTORE DATABASE db FROM DISK='c:1.bak' (WITH RECOVERY ) 

尝试数据库被标记为RESTORING的处理方式

  /****

  by select left('claro',2),in 西安,2009-03-27 00:29:23.450

  Microsoft SQL Server 2005 - 9.00.1406.00

  (Intel X86)

  Mar  3 2007 18:40:02

  Copyright (c) 1988-2005 Microsoft Corporation

  Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

  ****/

  USE [master]

  GO

-->1.查询数据库状态

  select state_desc,name,user_access_desc from sys.databases where name='db'

  --state_desc  name   user_access_desc

  --RESTORING   Db  MULTI_USER

-->2.修改数据库状态

  ALTER DATABASE [Db] SET ONLINE

  --消息5052,级别16,状态1,第1 行

  --当数据库处于Restoring 状态时,不允许ALTER DATABASE。

  --消息5069,级别16,状态1,第1 行

  --ALTER DATABASE 语句失败。

-->3.设置数据库状态为紧急恢复模式

  ALTER DATABASE [Db] SET EMERGENCY

  --消息5052,级别16,状态1,第1 行

  --当数据库处于Restoring 状态时,不允许ALTER DATABASE。

  --消息5069,级别16,状态1,第1 行

  --ALTER DATABASE 语句失败。

-->4.设置数据库状态为单用户模式

  ALTER DATABASE [Db] SET SINGLE_USER

  --消息5052,级别16,状态1,第1 行

  --当数据库处于Restoring 状态时,不允许ALTER DATABASE。

  --消息5069,级别16,状态1,第1 行

  --ALTER DATABASE 语句失败。

-->5.CHECKDB检查

  DBCC CHECKDB (db,REPAIR_ALLOW_DATA_LOSS)

  --消息927,级别14,状态2,第1 行

  --无法打开数据库'Db'。该数据库正在进行还原。

-->6.尝试用备份集继续还原

  RESTORE DATABASE [Db] FROM  DISK = N'c:db.bak' WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10

  GO

  --已处理百分之13。

  --已处理百分之22。

  --已处理百分之31。

  --已处理百分之40。

  --已处理百分之54。

  --已处理百分之63。

  --已处理百分之72。

  --已处理百分之81。

  --已处理百分之90。

  --已处理百分之100。

  --已为数据库'Db',文件'Db' (位于文件1 上)处理了176 页。

  --已为数据库'Db',文件'Db_log' (位于文件1 上)处理了2 页。

  --RESTORE DATABASE 成功处理了178 页,花费0.159 秒(9.125 MB/秒)。

-->7.检查数据库状态

  select state_desc,name,user_access_desc from sys.databases where name='db'

  --state_desc  name   user_access_desc

  --ONLINE   Db  MULTI_USER

  --至此db数据库正常。后续将尝试数据库处于置疑等状态时,数据库的修复方式。

======================================================================================================

其他方法:

这个显示是指:正在还原中..
如果确定还原完毕,可以用
SQL code


                restore database 数据库A with recovery

或者:
                RESTORE DATABASE db FROM DISK='c:1.bak' (WITH RECOVERY ) 

原文地址:https://www.cnblogs.com/gered/p/8880872.html