1. 程式人生 > >據庫被標記為RESTORING的處理方式

據庫被標記為RESTORING的處理方式

stats int http ces 繼續 無法打開 air over 語句

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

嘗試數據庫被標記為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 )

據庫被標記為RESTORING的處理方式