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

尝试数据库被标记为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数据库正常。后续将尝试数据库处于置疑等状态时,数据库的修复方式。

猜你喜欢

转载自blog.csdn.net/szlixiaolong/article/details/109216267