程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> BCP恢復SQL Server 2000數據庫 一

BCP恢復SQL Server 2000數據庫 一

編輯:關於SqlServer

原始位置: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)。

靠BCP恢復SQL Server 2000數據庫一(1)

 

此時拷貝zytk.ldf到d:recovery目錄下,再進行上述步驟,日志文件仍是錯誤(就是那個可惡的紅叉叉)。單擊確定按鈕,提示日志文件錯誤(如圖2和圖3)。

靠BCP恢復SQL Server 2000數據庫一(1)

歡迎光臨學網,收藏本篇文章 [1] [2] [3]

$False$

靠BCP恢復SQL Server 2000數據庫一(1)

BCP恢復SQL Server 2000數據庫一(2)

發現提示的日志文件路徑是D:Microsoft sql servermssql data zytk_log.ldf。於是在D盤建立D:Microsoft SQL Servermssqldata目錄,並將zytk.mdf拷貝這個目錄下。繼續嘗試上述附加數據庫步驟,日志文件的路徑已經變化,仍舊沒能附加數據庫成功(錯誤1813)(如圖4與圖1相比)。

靠BCP恢復SQL Server 2000數據庫一(2)



第二招:用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(假正常模式,這是我在這個故障處理中的叫法)。



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved