> 資料救援 > 修復SQL Server 2014/2016/2017復原暫止的簡單方法

修復SQL Server 2014/2016/2017復原暫止的簡單方法

Gina 於 2019/12/12 更新 資料救援

摘要

使用SQL資料庫時遇到的技術問題之一是「SQL Server Recovery Pending復原暫止狀態」。遇到此問題,您可以使用文中的解決方法。如果您不擅長SQL資料庫問題,不要擔心!讓EaseUS MS SQL Recovery來幫助您輕鬆解決。

本文內容:
SQL Server資料庫的三種狀態
SQL Server Recovery Pending復原暫止狀態的原因 
如何修復SQL Server Recovery Pending復原暫止狀態
2種手動解決方案 – 啟動SQL Server中資料恢復
1種簡單安全方法 - 修復SQL Server Recovery Pending復原暫止 (推薦)

平常使用的SQL Server資料庫可能面臨許多難以解決的技術問題。其一為「SQL Server Recovery Pending復原暫止狀態」。如果您遇到這樣的狀況,請不要擔心。使用文中方法來解決SQL Server資料庫復原暫止狀態的問題。此外,如果您不是SQL Server資料庫方面的專業人員且沒有信心解決此問題,您可以使用EaseUS MS SQL Recovery以簡單有效的方式解決此問題。

SQL Server資料庫的三種狀態

如果單個或多個核心MDF/NDF檔案損壞,則很可能破壞SQL資料庫。不同的狀態會出現不同程度的傷害。讓我們來看看細節。

小提示

可以通過sys.databases目錄查詢SQL Server狀態。

SELECT name, state_desc from sys.databases

GO

  • ONLINE:如果其中一個資料檔案被損壞,資料庫將保持可訪問性和線上狀態。
  • Suspect (質疑) :交易記錄檔案被損壞,並禁止復原或阻止交易回復完成,這將導致SQL資料庫失敗。
  • Recovery Pending (復原暫止):SQL Server需要運行資料庫復原,但由於某些原因而無法啟動。(這與顯示復原可能失敗、但尚未啟動的Suspect狀態不同。)

SQL Server Recovery Pending復原暫止狀態的原因

在SQL Server資料庫中,有幾個因素可能導致復原暫止狀態。主要原因如下:

  • 資料庫沒有完全關閉。即當時有一個或多個未完成的交易處於活動狀態,並且記錄檔案已被刪除。
  • 交易記錄檔案在解決效能問題的傳輸過程中被損壞。
  • 資料庫分割區上的空閒儲存空間不足,導致SQL無法打開資料庫,也無法鎖定資料庫檔案。

如何修復SQL Server Recovery Pending復原暫止狀態

可以查詢並手動修復SQL Server資料庫中的Recovery Pending復原暫止狀態。或者,為了避免由於錯誤操作而導致更嚴重的問題,您可以使用專業的MS SQL復原工具解決。

警告
如果要手動修復復原暫止(Recovery Pending)狀態問題,則需要輸入相關的SQL查詢。這些都是高度技術性的程序,如果處理不當可能會導致嚴重的問題。因此,在啟動之前備份SQL Server,如果您不是技術專家,也可以直接使用EaseUS MS SQL Recovery軟體,讓它以安全無風險的方式協助您。

2種手動解決方案 – 啟動SQL Server資料庫復原

方法1:將SQL資料庫狀態設為緊急模式,啟動強制復原

緊急模式(EMERGENCY MODE)將SQL資料庫標記為READ_ONLY,已停用。此時只允許DBA訪問。進入緊急模式並啟動資料庫復原可以解決任何技術問題。資料庫將自動退出緊急模式。

ALTER DATABASE [DBName] SET EMERGENCY;

GO

ALTER DATABASE [DBName] set single_user

GO

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

GO

ALTER DATABASE [DBName] set multi_user

GO

方法2:將SQL資料庫標記為緊急模式,斷開資料庫並再次重新連接

這些查詢會讓伺服器刪除損壞的記錄,並自動建立一個新的記錄。

ALTER DATABASE [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種簡單安全方法 - 修復SQL Server Recovery Pending復原暫止 (推薦)

上述手動解決辦法可以有效地修復復原暫止狀態的問題。如果您是SQL Server資料庫的專家,那麼上述方法是您的首選。但是,如果您不太了解SQL Server資料庫,我們強烈推薦您嘗試一種更安全、更自動化的解決方案。使用MS SQL Recovery軟體修復823/824/825錯誤中損壞的資料庫。

Step 1:下載並啟動EaseUS MS SQL Recovery。

Step 2:點擊兩個圓點(瀏覽按鈕)選擇目標MDF檔案,或者點擊"Search"搜尋,從下面找到的列表中選擇需要修復的檔案。然後,點擊"Analyze"(分析)開始修復程序。

復原MDF檔案步驟2

Step 3:完成後,會彈出一個視窗確認復原成功。所有已刪除的表格和復原的紀錄項都將以原始表的名稱列在左側窗格中。

復原MDF檔案步驟3

Step 4:點擊軟體右下角的"Export"(導出)按鈕。您可以根據需要將復原的資料庫保存到資料庫 & SQL腳本中。然後,您需要輸入Server Name/Instance Name並連接到伺服器。如果選擇"Export to database"導出到資料庫,則可以建立新資料庫或導出到現有資料庫。

復原MDF檔案步驟4