原始位置:http://soft.zdnet.com.cn/software_zone/2007/0918/512409.sHtml
BCP恢復SQL Server 2000數據庫一(1)
SQL Server 2000在很多企業、電子商務網站的信息化平台得到了普遍的應用。可在日常運行中,因種種原因會造成SQL Server 2000運行出現故障,輕則出現“置疑”,重則數據庫系統崩潰。本文以圖示的方式,闡述某個大學的一次數據庫數據恢復過程。同時也詳細闡述了BCP實用工具的詳細用法,希望這個處理過程和處理方法能對大家有所啟示。
本文恢復數據使用PC環境如下:
1)Windows 2000 Server(簡體中文)+SP4
2)Microsoft SQL Server 2000企業版(簡體中文)+SP3a
故障現象
1)游泳館收費系統連接不上SQL Server 2000數據庫。
2)啟動SQL Server服務失敗。
3)打開企業管理器,啟動服務也是失敗(看不到數據庫樹目錄)。
要命的是當技術員發現問題,已經卸載SQL Server 2000後重新安裝過了,想利用master數據庫是不可能了。更要命的是,居然沒有2005年的備份數據庫,只有2004年6月的數據庫備份文件。
恢復嘗試
第一招:附加數據庫
拷貝SQL Server 2000數據文件zytk.mdf到d:recovery下。在企業管理器中,右鍵數據庫,選擇所有任務→附加數據庫。單擊浏覽("...")按鈕選擇要附加的數據庫mdf文件d:recoveryzytk.mdf,發現日志文件是錯誤的(如圖1)。
此時拷貝zytk.ldf到d:recovery目錄下,再進行上述步驟,日志文件仍是錯誤(就是那個可惡的紅叉叉)。單擊確定按鈕,提示日志文件錯誤(如圖2和圖3)。
歡迎光臨學網,收藏本篇文章 [1] [2] [3] $False$BCP恢復SQL Server 2000數據庫一(2)
發現提示的日志文件路徑是D:Microsoft sql servermssql data zytk_log.ldf。於是在D盤建立D:Microsoft SQL Servermssqldata目錄,並將zytk.mdf拷貝這個目錄下。繼續嘗試上述附加數據庫步驟,日志文件的路徑已經變化,仍舊沒能附加數據庫成功(錯誤1813)(如圖4與圖1相比)。
第二招:用T-SQL附加數據庫
在查詢分析器中執行SQL腳本
use master
EXEC sp_attach_db "ZYTK", "D:Microsoft sql servermssqldataZYTK.mdf","D:Microsoft SQL ServermssqldataZYTK_log.ldf"
查詢分析器提示:
服務器:消息5105,級別16,狀態4,行1
設備激活錯誤。物理文件名 ''D:Microsoft SQL Servermssql dataZYTK_log.ldf'' 可能有誤。
將D:recovery目錄下zytk.mdf改名zytk-old.mdf。在企業管理器中新建數據庫zytk,選擇數據庫文件路徑為D:recoveryZYTK_Data.MDF,日志文件路徑為D:recoveryZYTK_ log.LDF。在企業管理器中,右鍵停止,以便停止SQL Server服務。待SQL Server服務停止後將D:recoveryzytk.mdf改名zytk_data-new.mdf,同時將zytk-old.mdf改名為zytk_data.mdf,在企業管理器中啟動SQL Server服務。數據庫ZYTK將會置疑。
在查詢分析器中執行SQL腳本:
Use master
select * from SysDatabases
where name=''ZYTK''
看到數據庫的status=1073741840,下面我們的目標是要將這個值修改到32768(緊急模式)再到16(假正常模式,這是我在這個故障處理中的叫法)。