1. 程式人生 > >SQL SERVER 2008 資料庫檔案恢復方法

SQL SERVER 2008 資料庫檔案恢復方法



方法1:***成功案例***

--把備份的資料庫資料檔案(*.mdf)和日誌檔案(*.ldf)都拷貝到伺服器的一個目錄下,然後開啟SL Server uery (查詢分析器)進行操作。

--例如:D盤Hisense\SysDate\目錄下存有: DBtest_data.mdf,和DBtest_log.ldf備份的檔案。通過sl 語恢復

--為DBtest的資料庫名.(注:恢復為DBtest的資料庫名在sl server 企管管理器下必須是唯一的,即沒有DBtest數所庫名才可以恢復為DBtest的資料庫名)。

--操作步驟:

--1.開啟sl  server  下面的uery   Analyzer(即查詢分析器)

--2.輸入:

EXEC sp_attach_db @dbname = N'DBtest',

@filename1 = N'D:\data\DBtest_Data.MDF',

@filename2 = N'D:\data\DBtest _Log.LDF'

go

--按”F5”執行。

--3.以執行完成後,把第2步中的所有語句全部刪除,然後輸入如下語句:

USE DBtest

EXEC sp_updatestats

Go

--按”F5”執行。

--提示所有表已經恢復成功後,即可連線軟體了.

--另附:只恢復資料檔案(*.mdf)時,不恢復事務日誌檔案(*.ldf)的方法如下:

--首先在企業管理器下,建立一個數據庫名(如:@DBtest)

--然後,同樣開啟sl server 查詢分析器,然後輸入:

EXEC sp_attach_db @dbname = N'DBtest',@filename1 = N'D:\data\DBtest_Data.MDF'

EXEC sp_attach_single_file_db @dbname = DBtest, @physname = 'd:\Data\DBtest_data.mdf'

go

--按F5執行完後,再執行以下語句:

USE DBtest

EXEC sp_updatestats

Go

--這個語句的作用是僅僅載入資料檔案,日誌檔案可以由SL Server資料庫自動新增,但是原來的日誌檔案中記錄的資料就丟失了。

--注:DBtest是資料庫名

--檔名和路徑一定要根據實際資料為檔案(*.mdf)和事務日誌檔案(*.ldf)所在的目錄要對應,否則路徑輸入的不對,則無法恢復。

方法2:***成功案例***

--如果是由於作業系統或sl server不能啟動,只有保留的資料為檔案(如:DBtest_data.mdf)和事務日誌檔案(DBtest_log.ldf)時,需重新安裝作業系統或重新安裝sl server時,一定要與上一次安裝的路徑相同(如: d:\Program Files\Microsoft SL Server\MSSL\Data\DBtest.mdf')
--(等同於在別的伺服器安裝一個新的資料庫,在新伺服器上建立同名DBtest,停止sql server服務,將保留原DBtest檔案拷貝過來進行替換)。

--作業系統或sl server安裝成功後,把sl server服務啟動後,在查詢分析器下面,建立與上次相同的資料庫名(如:DBtest),資料庫DBtest成功建立後,然後把sl server服務停止。

--然後把保留的資料為檔案(如:DBtest_data.mdf)和事務日誌檔案(DBtest_log.ldf)拷貝到,新建立的DBtest資料庫所在的目錄下進行覆蓋,然後重啟sql server服務:
--你會發現資料庫被標記為(緊急或者可疑),用以下方法把資料庫恢復;
--也可用以下SQL語句把資料庫改變為緊急狀態:
update master.dbo.sysdatabases set status='32768' ----置成Emergency Mode (應急狀態)
where name='DBtest' ----將DBtest替換為你已經損壞的資料庫名
--提示”不允許對系統目錄進行即席更新(可忽略,直接執行下面的語句)
--1、修改資料庫為緊急模式
 ALTER DATABASE DBtest SET EMERGENCY
 
--2、使資料庫變為單使用者模式
 
ALTER DATABASE DBtest SET SINGLE_USER
 
--3、修復資料庫日誌重新生成,此命令檢查的分配,結構,邏輯完整性和所有資料庫中的物件錯誤。當您指定“REPAIR_ALLOW_DATA_LOSS”作為DBCC CHECKDB命令引數,該程式將檢查和修復報告的錯誤。但是,這些修復可能會導致一些資料丟失。
DBCC CheckDB (DBtest, REPAIR_ALLOW_DATA_LOSS)
 ----重建資料庫日誌重新生成,這些修復可能會導致一些資料丟失。(非必要條件,可忽略本語句
DBCC CheckDB (DBtest,REPAIR_REBUILD)

--命令執行完成後可能會出現以下警告:
--警告: 資料庫 '庫名' 的日誌已重新生成。已失去事務的一致性。RESTORE 鏈已斷開,伺服器不再有以前的日誌檔案的上下文,因此您需要了解它們的內容。應執行 DBCC CHECKDB 驗證物理一致性。資料庫已置於 dbo-only 模式。在準備使資料庫可用時,需要重置資料庫選項,並刪除所有多餘的日誌檔案。
--此時可以不用理會此警告,關閉Microsoft SQL Server Management Studio。
 
--4、重新開啟Microsoft SQL Server Management Studio,使資料庫變回為多使用者模式
 
 ALTER DATABASE DBtest SET MULTI_USER

 --再次,開啟Sql Server 2008時被標記為“可疑”的資料庫已恢復正常狀態,此時資料庫已恢復成功。
 
--5、開始->執行->輸入cmd->開啟DOS命令視窗,輸入以下命令重啟資料庫服務
Net stop mssqlserver --停止服務
Net start mssqlserver --啟動服務

--序:如果還不能成功恢復,請另尋高明方法。

相關推薦

SQL SERVER 2008 資料庫檔案恢復方法

 方法1:***成功案例*** --把備份的資料庫資料檔案(*.mdf)和日誌檔案(*.ldf)都拷貝到伺服器的一個目錄下,然後開啟SL Server uery (查詢分析器)進行操作。 --例如:D盤Hisense\SysDate\目錄下存有: DBtest_data

sql server 2008資料庫檔案收縮的方法

sql server2008和2005差別較大,資料檔案收縮方法如下: ALTER DATABASE 資料庫 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 資料庫 SET RECOVERY SIMPLE --簡單模式

SQL SERVER 2008 資料庫日誌檔案收縮的方法

資料庫隨著業務量的增多,日誌檔案巨大(超過300G),造成磁碟空間不夠用,進而後來的訪問資料庫請求無法訪問。 網上類似的方法也很多,但不可行,如下是我實踐過,可行的,將日誌檔案收縮至任意指定大小的方法: 第一步: 在SQL SERVER Management Studio

SQL Server 2008 資料庫誤刪除資料的恢復

關鍵字:SQL Server 2008, recover deleted records 背景:誤刪除資料。 SQL Server中誤刪除資料的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件: 1. 至少有一個誤刪除之前的資料庫完全備份。 2. 資料庫的恢

SQL Server 2008資料庫被標記為“可疑”時的解決方法

SQL Server 2008,某些資料庫某些時候會被標記為可疑 解決方法一: 1、修改資料庫為緊急模式 ALTER DATABASE University SET EMERGENCY 2、使資料庫變為單使用者模式 ALTER DATABASE Univer

C# VS2010結合SQL server 2008資料庫程式設計方法

SQL Server 資料庫在C#程式設計中經常用到,如何實現在具體專案中資料庫和具體應用的結合是我們經常遇到的問題,我們這次主要針對如何使用SQL Server 資料庫展開,下面是具體的操作以及簡單的程式碼實現,希望對大家有幫助 。 環境: Windows 7 旗艦版 x

SQL Server 2008資料庫被標記為可疑的解決方法

在使用SQL Server 2008資料庫時發現資料庫被標記為可疑,多方搜尋,終於找到解決方法:    有兩種辦法: 1、相信大家想到了第一種:將資料庫刪掉,建立一個相同名字的資料庫(前提是之前有備份一模一樣的資料) 2、開啟資料庫裡的Sql 查詢編輯器視窗,執行

hibernate配置檔案如何連線sql server 2008資料庫

<hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property

sql server 2008資料庫日誌太大解決方法

 環境: 資料檔案.mdf為22G,日誌檔案.ldf為33G,用常規方法清除日誌檔案時,報錯: USE [master] GO ALTER DATABASE TestDB SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATAB

SQL server 2008資料庫的備份與還原

一、SQL資料庫的備份: 1、依次開啟 開始選單 → 程式 → Microsoft SQL Server 2008 → SQL Server Management Studio → 資料庫:Dsideal_school_db既是我們需要備份的學籍資料庫 圖(1)

sql server 2008 資料庫可疑的解決步驟

備份並新建同名數據庫,並替換原資料檔案   1 把問題資料庫備份後直接刪除   停掉SQLSERVER服務,把伺服器上出問題的資料庫, 假設名稱為 test的資料庫檔案及日誌檔案備份到其他目錄,然後直接將其刪除,把其資料庫檔案及日誌檔案也刪除 2 新建同名數據庫 &nb

Sql Server 2008 資料庫實時同步

            為了資料安全,我們都希望資料能得到及時備份,Sql Server 2008有自帶的完全備份和差異備份,但仍免不了恢復時丟失一些未來得及備份的資料。這裡講資料庫複製功能,可以做到實時備份。   機

SQL Server 2008安裝出錯解決方法

因為課程需要做實驗,需要安裝資料庫,以前安裝的時候沒有出現這麼多問題,基本上按照網上的安裝教程安裝的話都能成功。這幾天安裝資料庫的時候不知道怎麼了,不是資料庫引擎安裝不上就是服務也安裝不上,好不容易安裝成功了,又登不進資料庫,然後又卸了重灌,裝了又解除安裝,浪費時間。 1.

SQL Server 2008 資料庫_實驗二_SQL DDL 操作

SQL DDL 操作 什麼是SQL DDL 操作?   DDL是SQL定義語言,它主要包括三個關鍵字:create ,alter , drop(資料庫關鍵字不分大小寫 ),主要操作物件 有資料庫、表、索引、檢視等。    語句說明: 建立資料庫   create database

SQL Server 2008 資料庫_實驗一_SQL DDL 操作

SQL DDL 操作 什麼是SQL DDL 操作?   DDL是SQL定義語言,它主要包括三個關鍵字:create ,alter , drop(資料庫關鍵字不分大小寫 ),主要操作物件 有資料庫、表、索引、檢視等。    語句說明: 建立資料庫   create database

SQL Server 2008 資料庫_實驗三_SQL DDL 操作

SQL DDL 操作 什麼是SQL DDL 操作?   DDL是SQL定義語言,它主要包括三個關鍵字:create ,alter , drop(資料庫關鍵字不分大小寫 ),主要操作物件 有資料庫、表、索引、檢視等。    語句說明: 建立資料庫   create database

SQL Server 2008 資料庫_實驗五_SQL DDL 操作

SQL DDL 操作 什麼是SQL DDL 操作?   DDL是SQL定義語言,它主要包括三個關鍵字:create ,alter , drop(資料庫關鍵字不分大小寫),主要操作物件 有資料庫、表、索引、檢視等。    語句說明: 建立資料庫   create database

SQL Server 2008 資料庫_實驗四_SQL DDL 操作

SQL DDL 操作、 什麼是SQL DDL 操作?   DDL是SQL定義語言,它主要包括三個關鍵字:create ,alter , drop(資料庫關鍵字不分大小寫 ),主要操作物件 有資料庫、表、索引、檢視等。    語句說明: 建立資料庫   create databas

在Eclipse中連線SQL Server 2008資料庫

在連線資料庫之前必須保證SQL Server 2008是採用SQL Server身份驗證方式而不是windows身份驗證方式。如果在安裝時選用了後者,則重新設定如下: SQL Server 2008裝好後,預設協議是沒有開啟的,可開啟配置工具下的 SQL Serv

Eclipse 連線 SQL Server 2008資料庫,執行JAVA程式碼時出現:‘sa’使用者登入失敗

前幾天用Eclipse 連線 SQL Server 2008資料庫,執行JAVA程式碼時總是出現:‘sa’使用者登入失敗。 我的連線方法都是按照網上找的,一直在尋找錯誤的原因,網上說(1)sql server的密碼是否正確;(2).sql server是否設定的是混合登入;