溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么修復SQL Server數據庫中的恢復掛起狀態

發布時間:2022-03-01 10:07:54 來源:億速云 閱讀:2200 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“怎么修復SQL Server數據庫中的恢復掛起狀態”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么修復SQL Server數據庫中的恢復掛起狀態”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

將 SQL 數據庫置于恢復模式的原因

SQL 服務器恢復掛起可能是因為在解析數據庫中的某些事務期間系統關閉不當。

當你的硬盤或 RAM 中沒有足夠的空間時,有時運行各種查詢會導致 SQL 數據庫恢復掛起狀態。各種用戶移動他們的日志文件,以便可以增加系統的吞吐量,但在傳輸 SQL 文件時,他們的數據被損壞,這迫使數據庫處于恢復掛起狀態。 

SQL Server 數據庫中的各個階段

SQL Server 數據庫中存在三個管理階段,它們根據損壞的嚴重程度進行劃分。 

在線階段- 如果用戶在 SQL 數據庫服務器上工作時正在執行查詢并且一個數據庫文件在此過程之間損壞,則數據庫保持在線并且仍然可以在線訪問。這個階段被稱為在線階段。

可疑階段- 在 SQL 應用程序啟動時,如果服務器無法恢復數據庫,則 SQL 將數據庫標記為可疑。

恢復掛起階段- 此階段發生在 SQL Server 知道必須運行數據庫恢復但有什么阻止它啟動時。在這種情況下,SQL Server 會將 DB 標記為“Recovery Pending”狀態。

你可以通過在 SQL 數據庫上運行以下命令來自行檢查處于恢復掛起狀態的數據庫。

從 sys.databases SELECT name, state_desc 并寫 GO 并按回車查看 SQL 數據庫恢復掛起狀態為;

可以看出結果中位置6的Demo是一個RECOVERY PENDING STATE的數據庫。

現在讓我們研究一下恢復 SQL server 恢復掛起階段的方法。

SQL Server 數據庫中的手動恢復掛起狀態

在恢復模式下解決 SQL 數據庫問題的手動方法是通過兩個步驟完成的。在我們研究這些步驟之前,我建議復制一份你的 SQL 數據庫,這樣如果你無法解析這些步驟,那么你的數據就不會受到損壞。

第 1 步

在緊急模式下勾選 SQL 并強制修復它。使用 Alter DB 和 CHECKDB 命令刪除 MS SQL 恢復掛起狀態,如下所示:

ALTER DATABASE [DBName] SET EMERGENCY;

ALTER DATABASE [DBName] set single_user;

DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;

ALTER DATABASE [DBName] set multi_user

SQL 通過將 SQL 服務器從緊急階段中解放出來來幫助他們的用戶,但如果上述命令不能幫助你解決問題,那么,

使用以下命令將數據庫置于緊急模式,

ALTER DATABASE mydatabase SET EMERGENCY。使用此命令后,緊急標記將放置在文件后面。

現在,你必須通過應用以下查詢將 SQL 數據庫從緊急模式設置回正常模式,

ALTER DATABASE mydatabase SET ONLINE。

第 2 步

將數據庫設置為緊急模式并分離并重新連接主數據庫

要執行此步驟以克服 SQL server recovery Pending 狀態,你需要執行與步驟 1 中所做的相同的步驟,將數據庫置于緊急狀態。此用戶需要通過運行查詢使 MS SQL 脫機,然后再次聯機,以克服 MS SQL 恢復掛起狀態。

ALTER [DBName] SET EMERGENCY;

ALTER DATABASE [DBName] set multi_user

EXEC sp_detach_db '[DBName]'

EXEC sp_attach_single_file_db @DBName = '[DBName]', @physname = N'[mdf path]'  

使用第二步,用戶將能夠創建一個新的日志文件,損壞的文件會自動從數據庫中刪除。讓我們看看你在使用第 1 步和第 2 步消除 SQL 服務器恢復掛起問題時將遇到的問題。

手動方法限制
  • 在修復 SQL Server 數據庫中的恢復掛起狀態時,數據庫損壞程度可能很高。

  • 如果你不熟練或來自技術領域,你將無法很好地運行這些命令,從而導致 SQL 數據庫文件混亂。

  • 手動將 SQL 服務器聯機或脫機可能會使你的應用程序完全損壞,因此關系數據庫會受到很大的挫折,從而導致整個安裝應用程序崩潰。

現在讓我們轉向另一種控制 SQL 服務器數據庫恢復掛起問題的方法。

SQL Server 數據庫中的專業恢復掛起狀態 

克服 SQL 服務器恢復掛起問題的專業方法比手動方法更好。在這方面,我們使用SQL 數據庫恢復工具來修復和恢復 SQL 數據庫的損壞文件,并幫助你修復 SQL 服務器數據庫中的恢復掛起狀態。此工具支持 MDF 和 NDF 文件。使用此實用程序可以恢復你的數據庫表、觸發器、記錄、函數和存儲過程。 

牢記數據的重要性,此實用程序強制執行兩種標準和高級恢復模式。在使用 SQL 數據庫恢復工具進行修復后,用戶還可以將文件從一臺 SQL 服務器保存到另一臺。這個工具歡迎所有版本的windows。使用此軟件時也可以考慮架構和快照。 

使用 SQL 數據庫恢復工具后,您不會在修復 SQL Server 數據庫恢復掛起狀態時遇到任何問題。

讀到這里,這篇“怎么修復SQL Server數據庫中的恢復掛起狀態”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女