Sql Server 2000附加數(shù)據(jù)庫出現(xiàn)1813錯誤的解決方法
今天進(jìn)行了一錯誤操作。
數(shù)據(jù)庫xxzx_discuz,因生成大量日志使日志文件'xxzx_discuz_Log.LDF' 占滿了磁盤所有空間,使網(wǎng)站無法正常使用數(shù)據(jù)庫。
自己圖省事分離數(shù)據(jù)庫xxzx_discuz后,直接刪除'xxzx_discuz_Log.LDF' (因?yàn)槲募螅瑹o法存放到回收站),重新附件到SQL Server時出現(xiàn)兩個提示:------------------------------------------------------------------------------------------------------------------------------SQL Server 企業(yè)管理器---------------------------為日志文件指定的文件名不正確。將創(chuàng)建新的日志文件。要繼續(xù)嗎?---------------------------是(Y)否(N)------------------------------------------------------------------------------------------------------------------------------Microsoft SQL-DMO (ODBC SQLState: 42000)---------------------------錯誤 1813: 未能打開新數(shù)據(jù)庫 'xxzx_discuz'。CREATE DATABASE 將終止。設(shè)備激活錯誤。物理文件名 'S:Program FilesMicrosoft SQL ServerMSSQLdataxxzx_discuz_Log.LDF' 可能有誤。---------------------------確定------------------------------------------------------------------------------------------------------------------------------
從而無法將數(shù)據(jù)庫正常附加到SQL Server 2000,正常情況下這樣操作是沒有問題的,SQL Server會重新生成日志文件,但是因?yàn)橹俺霈F(xiàn)了磁盤空間不足,日志文件不完整,從而造成了無法正常附加。
解決辦法如下(從網(wǎng)上找來的):
0.備份數(shù)據(jù)文件'xxzx_discuz_Log.MDF' 1.新建一個同名的數(shù)據(jù)庫'xxzx_discuz'; 2.再停掉sqlserver服務(wù)(注意不要分離數(shù)據(jù)庫)3.用原數(shù)據(jù)庫的數(shù)據(jù)文件'xxzx_discuz_Log.MDF' 覆蓋掉新建的數(shù)據(jù)庫
4.再重啟sqlserver服務(wù)5.此時打開企業(yè)管理器時會出現(xiàn)置疑,先不管,執(zhí)行下面的語句(注意修改其中的數(shù)據(jù)庫名)6.完成后一般就可以訪問數(shù)據(jù)庫中的數(shù)據(jù)了。這時,數(shù)據(jù)庫本身一般還有問題,解決辦法是:利用數(shù)據(jù)庫的腳本創(chuàng)建一個新的數(shù)據(jù)庫,然后通過DTS將數(shù)據(jù)導(dǎo)進(jìn)去就行了.SQL代碼use;master ;; go ;; sp_configure;'allow;updates',1;reconfigure;withoverride ;; go ;; updatesysdatabases;setstatus;=32768;wherename='置疑的數(shù)據(jù)庫名' go ;; sp_dboption;'置疑的數(shù)據(jù)庫名',;'single;user',;'true' go ;; dbcc;checkdb('置疑的數(shù)據(jù)庫名'); ;; go ;; updatesysdatabases;setstatus;=28;wherename='置疑的數(shù)據(jù)庫名' go ;; sp_configure;'allow;updates',;0;reconfigure;withoverride ;; go; ;; sp_dboption;'置疑的數(shù)據(jù)庫名',;'single;user',;'false' go;; 特別注意最后一步中的說明“這時,數(shù)據(jù)庫本身一般還有問題,解決辦法是:利用數(shù)據(jù)庫的腳本創(chuàng)建一個新的數(shù)據(jù)庫,然后通過DTS將數(shù)據(jù)導(dǎo)進(jìn)去就行了”參考文章:Sql Server附加數(shù)據(jù)庫出現(xiàn)1813錯誤的解決方法