SQL數據在附加的時候..有時會因為日志文件過大..或者一些其他問題造成附加失敗..
筆者遇到的問題是數據庫主文件(*.mdf)超過25G..日志文件超過200G..附加的耗時簡直日了狗了..最后超時..附加失敗..
所以就在想不要這個日志文件了行不行..最后發現了這篇文章.. 閱讀原文<SQL Server附加數據庫時報1813錯誤的解決方案> ..以下是對這篇文章的整理和補充..
主要報錯信息
無法重新生成日志,原因是數據庫關閉時存在打開的事務/用戶,該數據庫沒有檢查點或者該數據庫是只讀的。
解決的方案:
1. 新建一個同名的數據庫.最好是區分大小寫.. 甚至創建時的邏輯名都盡量保持一致
2. 關閉SQL服務..不要分離新建的庫..(以下是命令..在"運行"窗口執行)
Net Stop MsSqlserver
3. 這個時候因為服務停掉了..所以可以操作實際的數據文件*.mdf..用原有的同名mdf文件覆蓋新建庫的mdf文件..然后啟動sql服務...(以下是命令..在"運行"窗口執行)
Net Start MsSqlserver
這時系統還沒有檢查異常..先別刷新..
4. 按順序執行以下語句,, 注意看注釋 有跳過的語句
把NewDBName改成你的數據庫名字
--設置庫為緊急狀態 alter database NewDBName set emergency --設置為單用戶模式 alter database NewDBName set single_user --檢查並重建日志文件 dbcc checkdb('NewDBName',REPAIR_ALLOW_DATA_LOSS) --上條執行時間比較長。耐心等待! --如果報錯..執行以下, 沒有報錯..可以跳過 dbcc checkdb('NewDBName',REPAIR_REBUILD) --恢復成多用戶模式 alter database NewDBName set multi_user
一般執行到這里就已經好了..
刷新看看..
