SQL SERVER 9003錯誤解決方法

2022-09-29 13:09:10 字數 2146 閱讀 9686

sqlserver 9003錯誤解決程式設計客棧方法 只適用於sql2000

(只適用於sql2000)

"無法開啟新資料庫 'pos'。create database 中止。 (microsoft sql server,錯誤: 9003)"

看是9003錯誤,就想到可能是由於日誌檔案的原因,再看資料庫檔案可能損壞,於是想到dbcc checkdb指令.

方法如下:

1.我們使用預設方式建立乙個供恢復使用的資料庫(如pos)。可以在sql   server   enterprise   manager裡面建立。

2.停掉資料庫伺服器。

3.將剛才生成的資料庫的日誌檔案pos_log.ldf刪除,用要恢復的資料庫mdf檔案覆蓋剛才生成的資料庫資料檔案pos_data.mdf。

4.啟動資料庫伺服器。此時會看到資料庫pos的狀態為「置疑」。這時候不能對此資料庫進行任何操作。

5.設定資料庫允許直接作業系統表。此操作可以在sql   server   enterprise   manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設定」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。

use master

go exec sp_configure 'allow updates',1

go reconfigure with overriwww.cppcns.comde

go6.設定pos為緊急修復模式

update sysdatabases set status=-32768 where dbid=db_id('pos')

go此時可以在sql   server   enterprise   manager裡面看到該資料庫處於「唯讀\置疑\離線\緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表

7.下面執行真正的恢復操作,重建資料庫日誌檔案

dbcc rebuild_log('pos','d:\program files\microsoft sql server\mssql\data\pos_log.ldf')

go執行過程中,如果遇到下列提示資訊:

伺服器:   訊息   5030,級別   16,狀態   1,行   1

未能排它地鎖定資料庫以執行該操作。

dbcc   執行完畢。如果   dbcc   輸出了錯誤資訊,請與系統管理員聯絡。

說明您的其他程式正在使用該資料庫,如果剛才您在6步驟中使用sql   server   enterprise   manager開啟了pos庫的系統表,那麼退出sql   server   enterprise   manager就可以了。

正確執行完成的提示應該類似於:

警告:   資料庫   'pos'   的日誌已重建。已失去事務的一致性。應執行   dbcc   checkdb   以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌檔案。

dbcc   執行完畢。如果   dbcc &nbs 輸出了錯誤資訊,請與系統管理員聯絡。

此時開啟在sql   server   enterprise   manager裡面會看到資料庫的狀態為「只供dbo使用」。此時可以訪問資料庫裡面的使用者表了。

8.驗證資料庫一致性(可省略)

dbcc checkdb('pos')

go一般執行結果如下:

checkdb   發現了   0   個分配錯誤和   0   個一致性錯誤(在資料庫   'pos'   中)。

dbcc   執行完畢。如果   dbcc   輸出了錯誤資訊,請與系統管理員聯絡。

9.設定資料庫為正常狀態

exec sp_dboption 'pos','dbo use only','false'

go如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。

10.最後一步,我們要將步驟e中設定的「允許對系統目錄直接修改」一項恢復。因為平時直接作業系統表是一件比較危險的事情。當然,我們可以在sql   server   enterprise   manager裡面恢復,也可以使用如下語句完成

exec sp_configure 'allow sumqzqupdates',0

go reconfigu程式設計客棧re with override

go本文標題: sql server 9003錯誤解決方法

本文位址:

SQL Server錯誤處理

目錄 二 用try.catch發現錯誤 三 捕獲錯誤的系統函式 四 用 error捕獲上一條語句的錯誤 五 用raiserror反饋錯誤 回到頂部 sqlserver在每個資料庫的系統檢視sys.messages中儲存系統自定義 message id 50000 和使用者自定義 message id...

清除 SQL Server 錯誤日誌檔案

sql server 儲存 7 個 errorlog 檔案,名為 errorlog errorlog.1 errorlog.2 errorlog.3 errorlog.4 errorlog.5 errorlog.6 清除 sql server 錯誤日誌檔案 存檔 exec sp cycle erro...

SQL Server複製中錯誤處理

在sql server的複製中出現在錯誤 應用複製的命令時在訂閱伺服器上找不到該行 換上以前的做法就是刪除掉這個複製,然後再新建乙個複製,但是這次,我突然想baidu一下,看看別人是怎麼處理這個問題的,然後發現找到的文章都是從msdn上抄下來的,因此我決定把我的做法寫下來。首先查msdn,確定這個錯...