無法打開新數據庫 'POS'。CREATE DATABASE 中止。 (Microsoft SQL Server,錯誤: 9003)
錯誤 9003 通常表示交易日誌檔案(LDF)損壞或遺失,但資料檔案(MDF)完好。本文提供僅適用於 SQL Server 2000 的修復流程。
在 Enterprise Manager 中建立同名資料庫(如 POS),產生預設的 POS_Data.mdf 與 POS_Log.ldf。
net stop mssqlserver
POS_Log.ldfPOS.mdf 覆蓋 POS_Data.mdfnet start mssqlserver
此時資料庫標記為 Suspect(置疑),無法正常存取。
USE master; GO EXEC sp_configure 'allow updates', 1; RECONFIGURE WITH OVERRIDE; GO
UPDATE sysdatabases SET status = -32768 WHERE dbid = DB_ID('POS');
GO
狀態變為:唯讀 / 置疑 / 離線 / 緊急模式,僅可見系統表。
DBCC REBUILD_LOG('POS', 'D:\Program Files\Microsoft SQL Server\MSSQL\Data\POS_Log.ldf');
GO
錯誤 5030:無法排他鎖定資料庫
原因:Enterprise Manager 開啟了系統表連線。
解決:關閉所有 EM 視窗、Query Analyzer 連線後重試。
成功提示:
警告: 資料庫 'POS' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。
DBCC CHECKDB('POS');
GO
CHECKDB 發現了 0 個配置錯誤和 0 個一致性錯誤。
EXEC sp_dboption 'POS', 'dbo use only', 'false'; GO
EXEC sp_configure 'allow updates', 0; RECONFIGURE WITH OVERRIDE; GO
DBCC CHECKDB 並檢查業務資料完整性錯誤 9003 在 SQL 2000 環境下可透過 DBCC REBUILD_LOG 修復,但屬於最後手段,操作前務必備份原始檔案。現代版本(2005+)建議使用 ATTACH_REBUILD_LOG 或從備份還原。