Sql-Server
為什麼我的數據庫不可用?
我的伺服器上有一個數據庫經常變得不可用。為了修復,我將其離線,然後重新線上。查看事件查看器,快速連續出現三個錯誤:
FCB::Open failed: 無法為文件號 1 打開文件 C:…\MyDatabase.mdf。作業系統錯誤:32(該程序無法訪問該文件,因為它正被另一個程序使用。)。
FCB::Open failed: 無法為文件號 2 打開文件 C:…\MyDatabase_1.ldf。作業系統錯誤:32(該程序無法訪問該文件,因為它正被另一個程序使用。)。
發生文件啟動錯誤。物理文件名“C:…\MyDatabase_1.ldf”可能不正確。診斷並更正其他錯誤,然後重試該操作。
查看數據庫屬性,日誌文件路徑看起來正確。我不是真正的 DBA,但出於必要而扮演一個角色。我還應該在這裡尋找什麼?
(SQL Server 2008 Express SP1)
正如 Randolph 所說,您可能有一個 AV 程序保存有問題的文件。要確認這一點,請從 Microsoft 的 Sysinternals 獲取 Process Explorer 或 handle.exe(或兩者!)。學習並喜歡他們所有的工具。
如果它不是 AV,而是鎖定了這些文件的其他東西,那麼修復它。
另外,順便說一句,您不希望系統卷(通常是 C:\ 驅動器)上的數據或日誌文件。如果它們填滿了磁碟,則說明您已經關閉了伺服器。您可能希望它們在不同的捲上。警告 - 使用 SQL Express,您的最大 DB 大小可能低於您在磁碟上擁有的可用空間量,但您是否希望始終如此?