SQLSERVER資料庫主要狀態

來源:互聯網
上載者:User

標籤:

一個SQLSERVER資料庫會處於很多種狀態,例如 ONLINE 、OFFLINE,RESTORING 、RECOVERING 、RECOVERY_PENDING  、SUSPECT、EMERGENCY 。

只有在ONLINE的狀態下,資料庫才能被正常訪問。

可以利用下面的語句來查看它的狀態

select name,state_desc from sys.databases

 

1.ONLINE

    只有在ONLINE的狀態下,資料庫才能被正常訪問

2.OFFLINE

   我們可以在Microsoft SQL Server Management中看到該資料庫,但該資料庫名稱旁邊有"離線"的字樣,說明該資料庫現在雖然存在於資料庫引擎執行個體中,但是不可以執行任何有效資料操作,比如新增,修改,刪除等,這就是離線狀態。(這個時候,你就可以直接拷貝源檔案了,也就會說最原始的備份方法)

但是:

無法覆蓋檔案 ‘F:\TEST\SHOP.MDF‘。資料庫 ‘SHOP‘ 正在使用該檔案。

你依然無法....

3.RESTORING

  由於SQLSERVER LAZY WRITE和CHECKPOINT的作用,硬碟上存在一些未提交的資料,如果資料庫在這種時候被關閉,下次SQLSERVER重新開啟資料庫的時候,為了維護資料庫的一致性,SQLSERVER一律復原,以保證資料庫事務的一致性(undo/rollback),對於那些已經提交的事務,暫時存在記憶體中,未寫入到磁碟中的,一律redo,在undo和redo的過程叫做資料庫恢複。只有經過恢複的資料庫,才能保證是一個“一致的”資料庫,才能被安全地訪問。

4.RECOVERY_PENDING

如果資料庫在做恢複的時候不能正常開啟所有的資料庫檔案,資料庫會進入RECOVERY PENDING狀態。在這個狀態下管理員有兩種選擇,

a.要不用ALTER ONLINE命令使SQLSERVER做一次上線,

b.要不就只能放棄當前資料庫,還原備份。

5.SUSPECT

 我們可以在Microsoft SQL Server Management中看到該資料庫,但該資料庫名稱旁邊有"可疑"的字樣,這說明至少主檔案組可疑或可能已損壞

 對於質疑的解決方案:http://www.jb51.net/article/23363.htm

6.EMERGENCY

      資料庫標記為 READ_ONLY,已禁用日誌記錄,並且僅限 sysadmin 固定伺服器角色的成員進行訪問。EMERGENCY 主要用於故障排除。 例如,可以將由於損壞了記錄檔而標記為可疑的資料庫設定為 EMERGENCY 狀態。 這樣,系統管理員便可對資料庫進行唯讀訪問。 只有 sysadmin 固定伺服器角色的成員才可以將資料庫設定為 EMERGENCY 狀態。

 

 

 

T-SQL 陳述式來切換他們的狀態

 ALTER DATABASE DATABASE_NAME SET ONLINE | OFFLINE |EMERGENCY

 

SQLSERVER資料庫主要狀態

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.