> 資料救援 > [解決] SQL錯誤945 | 檔案無法存取因此無法開啟資料庫

[解決] SQL錯誤945 | 檔案無法存取因此無法開啟資料庫

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

摘要

SQL錯誤945「檔案無法存取、記憶體或磁碟空間不足,因此無法開啟資料庫」是SQL資料庫中常見的錯誤之一。幸運的是,您可以通過調整設定或使用SQL恢復工具處理錯誤945。執行最適合的解決方案並立即修復錯誤945。

「檔案無法存取、記憶體或磁碟空間不足,因此無法開啟資料庫'ooxx'。詳細資訊請參閱SQL Server 錯誤記錄檔。(Microsoft SQL Server, 錯誤: 945) 」

SQL錯誤945是什麼

當資料庫被標記為「IsShutdown」,或者MDF檔案的附加和卸離沒有正確完成,恢復過程不能使資料庫處於一致狀態時,SQL Server錯誤945就會發生。出現這種情況可能有不同的原因:

  • 記憶體最佳化資料表占用的存儲空間過大
  • 由於缺少一些檔案,SQL資料庫修復失敗
  • 使用損毀的備份
  • 資料庫關閉不當
  • 惡意軟體攻擊

當您在為SQL Server錯誤945所困擾時,有六個解決方案可以嘗試。

如何修復SQL錯誤945

根據用戶的經驗提供有針對性的解決方案 — 錯誤945在SQL Server檔案無法存取,因此無法開啟資料庫:

解決1. 擴大硬碟空間

在錯誤通知中可以看到SQL資料庫可能由於磁碟空間不足而無法開啟,刪除相對硬碟上不必要的檔案或添加更大的硬碟是解決SQL Server錯誤945的潛在解決方案。如果擔心資料丟失,可以在刪除之前使用免費的備份軟體提前備份硬碟。

解決2. 確保啟用了「自動成長」

由於必須將資料庫設定為自動成長,因此需要檢查並確保啟用了該選項。下面是實現自動成長的方法:

步驟1. 啟動SQL Server Management Studio並連接到有問題的資料庫。

步驟2. 點選「查看」>「物件總管」。

步驟3. 展開「資料庫」資料夾。

步驟4. 右鍵點選資料庫並選擇「屬性」>點選「檔案」。

步驟5. 找到自動成長設定,並勾選「啟用自動成長」選項。

解決3. 檢查帳戶與權限

您需要檢查您正在使用的帳戶,並確保您擁有正確的權限來執行操作。

解決4. 檢查資料庫的MDF/NDF檔案

如果資料庫的MDF或NDF檔案被標記為唯讀,那麼您可能會遇到SQL錯誤945。因此,請確保MDF和NDF檔案不是顯示為唯讀。移除MDF和NDF檔案的唯讀:

步驟1. 在資料庫中找到「.mdf」或「.ndf」檔案並按右鍵。選擇「內容」>「安全性」,然後會看到群組或使用者名稱:

步驟2. 選擇要授予檔案讀取權的使用者,並檢查權限。

步驟3. 如果權限沒有設定為完全控制,需要通過點選「編輯」變更權限。

步驟4. 然後,您將看到群組或使用者名稱框。在框中,選擇使用者並選擇「完全控制」。

解決5. 使用SQL資料庫修復工具

到錯誤記錄檔查看資料庫為何出錯。如果是由於API(應用程式介面)、不完整的頁面或其他硬體問題相關的持續I/O錯誤,則通過從備份中還原資料庫來解決。如果沒有任何備份可用,您可以使用專業的MS SQL修復工具 — EaseUS MS SQL 資料庫救援軟體修復您的SQL資料庫。

  • 修復損毀的SQL資料庫檔案(MDF/NDF檔案)
  • 修復損毀的SQL Server資料庫部件 — 資料表、 觸發程序、資料表索引、索引鍵、規則、預存程序
  • 從SQL資料庫中恢復已刪除的記錄檔
  • 允許以CSV、HTML、XLS和MS SQL格式導出修復後的檔案

讓我們看看如何修復您的資料庫:

步驟 1. 停止MS SQL Server。

同時按住 "Windows+R",輸入 services.msc.

找到並雙擊"SQL Server(即時名稱)"。

在屬性窗口中,點擊"停止"結束SQL Server。然後,點擊"應用"。

步驟 2. 運行EaseUS SQL修復工具。在主介面上選擇損壞的MDF/NDF文件,然後單擊"Repair"開始修復MDF/NDF文件。

如果您知道檔案的確切位置,請單擊"Browse"定位資料庫。

如果您不知道檔案的位置,請單擊"Search"搜索.mdf或.ndf文件。

sql資料庫救援步驟1

步驟 3. 完成後,單擊"OK",您將在左邊窗格上看到救援回來的資料庫對象。

ms sql資料庫救援步驟2

步驟 4. 單擊"Tools"中的"Save"保存資料庫對象。

選擇所需格式(MDF、CSV、HTML或XLS),設定目標路徑並單擊"OK"。

在新建窗口中,選擇"New database"或"Live database"保存修復後的資料。如果選擇"New database",請輸入伺服器詳細信息並選擇SQL位置。如果選擇"Live database",則選擇當前資料庫。

ms sql資料庫救援步驟3

步驟 5. 單擊"Save"之前,需要重啟SQL伺服器。

同時按住"Windows+R"進入services.msc

找到並雙擊"SQL Server(即時名稱)"。

在屬性窗口中,單擊"Start"重啟SQL Server服務,點擊"Apply"應用。

步驟 6. 單擊"Save"將修復後的檔案保存到SQL資料庫中。

解決6. 嘗試DBCC CHECKDB修復

如果沒有可用的備份,您還可以嘗試DBCC CHECKDB修復。但是,我們並不建議此方式,因為這可能會導致SQL資料庫有疑問狀態,然後進一步導致另一個SQL Server資料庫錯誤926。