當前位置:首頁 » 數據倉庫 » mdf刪掉資料庫恢復
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mdf刪掉資料庫恢復

發布時間: 2022-05-05 12:53:00

① 如何恢復/修復MS sql資料庫的MDF文件

或者在查詢分析器中輸入:sp_attach_db "資料庫名稱","路徑\文件名.ldf","路徑\文件名.MDF"SQL Server資料庫備份有兩種方式,一種是使用BACKUP DATABASE將資料庫文件備份出去,另外一種就是直接拷貝資料庫文件mdf和日誌文件ldf的方式。下面將主要討論一下後者的備份與恢復。本文假定您能熟練使用SQL Server Enterprise Manager(SQL Server企業管理器)和SQL Server Quwey Analyser(SQL Server查詢分析器)1、正常的備份、恢復方式正常方式下,我們要備份一個資料庫,首先要先將該資料庫從運行的數據伺服器中斷開,或者停掉整個資料庫伺服器,然後復制文件。卸下資料庫的命令:Sp_detach_db 資料庫名連接資料庫的命令:Sp_attach_db或者sp_attach_single_file_dbs_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16]sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name'使用此方法可以正確恢復SQL Sever7.0和SQL Server 2000的資料庫文件,要點是備份的時候一定要將mdf和ldf兩個文件都備份下來,mdf文件是資料庫數據文件,ldf是資料庫日誌文件。例子:假設資料庫為test,其數據文件為test_data.mdf,日誌文件為test_log.ldf。下面我們討論一下如何備份、恢復該資料庫。卸下資料庫:sp_detach_db 'test'連接資料庫:sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf'2、只有mdf文件的恢復技術由於種種原因,我們如果當時僅僅備份了mdf文件,那麼恢復起來就是一件很麻煩的事情了。如果您的mdf文件是當前資料庫產生的,那麼很僥幸,也許你使用sp_attach_db或者sp_attach_single_file_db可以恢復資料庫,但是會出現類似下面的提示信息設備激活錯誤。物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有誤。已創建名為 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日誌文件。但是,如果您的資料庫文件是從其他計算機上復制過來的,那麼很不幸,也許上述辦法就行不通了。你也許會得到類似下面的錯誤信息伺服器:消息 1813,級別 16,狀態 2,行 1未能打開新資料庫 'test'。CREATE DATABASE 將終止。設備激活錯誤。物理文件名 'd:\test_log.LDF' 可能有誤。怎麼辦呢?別著急,下面我們舉例說明恢復辦法。A.我們使用默認方式建立一個供恢復使用的資料庫(如test)。可以在SQL Server Enterprise Manager裡面建立。B.停掉資料庫伺服器。C.將剛才生成的資料庫的日誌文件test_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data.mdf。D.啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。E.設置資料庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。以下為引用的內容: use mastergosp_configure 'allow updates',1goreconfigure with override
go F.設置test為緊急修復模式update sysdatabases set status=-32768 where dbid=DB_ID('test')此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於「只讀\置疑\離線\緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表G.下面執行真正的恢復操作,重建資料庫日誌文件dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')執行過程中,如果遇到下列提示信息:伺服器:消息 5030,級別 16,狀態 1,行 1未能排它地鎖定資料庫以執行該操作。DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。說明您的其他程序正在使用該資料庫,如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了test庫的系統表,那麼退出SQL Server Enterprise Manager就可以了。正確執行完成的提示應該類似於:警告:資料庫 'test' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌文件。DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。

② 我不小心把SQL SERVER 2000裡面的mdf的資料庫文件刪除了,怎麼恢復啊高手救命啊

那個是安裝SQL SERVER 2000就會默認安裝的,你把你現在需要的資料庫的資料備份出來保存,然後重新安裝SQL SERVER .在安裝你需要的資料庫,把資料導回去.這樣最穩定

③ SQL恢復master資料庫方法 只有mdf文件的資料庫如何恢復

首先先和大家講一講SQL
Server恢復master資料庫方法,具體步驟如下
第一步:復制model.mdf、mastlog.ldf、model.mdf、modellog.ldf、msdbdata.mdf、msdblog.ldf文件。
從X:\Program
Files\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates
至X:\Program
Files\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
註:以上「X:\Program
Files\Microsoft
SQL
Server」為SQL
Server的安裝目錄。以下的「C:\Program
Files\Microsoft
SQL
Server」為系統盤下的目錄
第二步:定位並執行安裝命令
1.
首先找到安裝命令:C:\Program
Files\Microsoft
SQL
Server\100\Setup
Bootstrap\Release\setup.exe
2.
執行命令
如果只是Windows身份驗證模式,只需要如下語法即可:
復制代碼
代碼如下:setup
/ACTION=REBUILDDATABASE
/QUIET
/INSTANCENAME=<instance
name>
/SQLSYSADMINACCOUNTS=<accounts>
如果是復合身份驗證模式,則需要使用/SAPWD參數提供sa的密碼:
復制代碼
代碼如下:setup
/ACTION=REBUILDDATABASE
/QUIET
/INSTANCENAME=<instance
name>
/SQLSYSADMINACCOUNTS=<accounts>
/SAPWD=<sa
password>
我安裝時設置的是復合認證模式,SQL
Server系統管理員帳號是administrators組,sa密碼是123456。並且就一個默認實例:MSSQLSERVER。
所以在命令行執行如下命令:
復制代碼
代碼如下:setup
/ACTION=REBUILDDATABASE
/QUIET
/INSTANCENAME=MSSQLSERVER
/SQLSYSADMINACCOUNTS=administrators
/SAPWD=123456
第三步:執行完畢後沒有任何提示信息(不管成功與否),但是可以馬上在C:\Program
Files\Microsoft
SQL
Server\100\Setup
Bootstrap\Log\Summary.txt中查看安裝日誌。
最後,在Sql
Server
Configuration
Manager中啟動SQL
Server服務成功。
在處理過程中出現了這種情況SQL恢復資料庫又該怎麼辦?只有mdf文件時,應當如何進行恢復,即有log文件的資料庫如何恢復
SQL恢復資料庫具體實現步驟:
1、新建一個同名資料庫。
2、停止資料庫服務,覆蓋新建的資料庫主文件(小技巧:最好放在同一個磁碟裡面,把新建的資料庫主文件刪掉或移開,再把要恢復的資料庫主文件剪切過去,這樣就可以節省時間。)
3、啟動資料庫服務,資料庫變為置疑或可疑狀態。然後在查詢分析器中運行:
alter
database
無日誌文件的資料庫名稱
set
emergency
設置為緊急狀態。
4、再運行:
alter
database
無日誌文件的資料庫名稱
set
single_user
或者:
Sp_dboption
'無日誌文件的資料庫名稱',
'single
user',
'true'
設置為單用戶模式。
5、檢查並重建日誌文件,運行:
dbcc
checkdb('無日誌文件的資料庫名稱',REPAIR_ALLOW_DATA_LOSS)
這個時間比較長。耐心等待!如果有錯誤提示,再運行:
dbcc
checkdb('無日誌文件的資料庫名稱',REPAIR_REBUILD)
進行修復。如果沒有錯誤,可以跳過。
6、恢復成多用戶模式
alter
database
無日誌文件的資料庫名稱
set
multi_user
或者:
Sp_dboption
'無日誌文件的資料庫名稱',
'single
user',
'false'
刷新資料庫,你就可以看到已經修復好的資料庫了。
以上就是為大家分享的SQL恢復資料庫方法,希望對大家恢復資料庫有所幫助。

④ 如何恢復sql server mdf資料庫文件

在sql server 2005 資料庫中,一次誤操作,分離資料庫後,直接將日誌文件刪除掉了,後進行附加出錯,無法附加上去,經過如下解決方案,資料庫附加成功,操作如下: 第一步:先建立一個同名資料庫,停止SQL SERVER2005,將原來的.mdf資料庫文件覆蓋剛新建的.mdf資料庫文件,重新啟動資料庫。 第三步:在查詢分析器中運行如下代碼: alter database 你的.mdf文件名 set emergency '--將資料庫設置為緊急狀態use masterdeclare @databasename varchar(255) set @databasename='你的.mdf文件名' '--你的.mdf文件文件名 exec sp_dboption @databasename, N'single', N'true' --將目標資料庫置為單用戶狀態 dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false'--將目標資料庫置為多用戶狀態

⑤ 只有mdf文件,怎麼恢復SQLSERVER資料庫

1、開啟資料庫
2、從企業管理器,建一個同名的資料庫
3、停止sql
server
4、用原mdf文件覆蓋新建庫的資料庫文件
5、重啟sql
server(這時資料庫應該是置疑)
6、修改伺服器設置:允許對系統目錄進行直接修改
sp_configure
'allow
updates',1
reconfigure
with
override
7、將資料庫置為緊急狀態:
update
master.dbo.sysdatabases
set
status
=
32768
where
name
=
'資料庫名'
8、刪除新的ldf文件,重建日誌:
dbcc
rebuild_log('資料庫名',
'f:\資料庫名_log_new.ldf')--假設把新日誌在f盤
9、update
master.dbo.sysdatabases
set
status
=
16
where
name
=
'資料庫名'
10、修改伺服器設置:取消
允許對系統目錄進行直接修改
sp_configure
'allow
updates',
0
reconfigure
with
override
11、再使用檢查工具修復錯誤
use
[資料庫名]
alter
database
[資料庫名]
set
single_user
with
rollback
immediate
dbcc
checkdb
('資料庫名',REPAIR_ALLOW_DATA_LOSS)
alter
database
[資料庫名]
set
multi_user
執行完畢之後,如果還有錯誤,重復執行11,直到沒有錯誤為止。

⑥ SQL2008分離後的數據文件刪掉了mdf文件只有ldf文件,沒有備份文件,怎麼才能重新還原資料庫

那樣就沒辦法恢復的,如果只有mdf文件也許還可以還原,存放數據的主要是mdf文件,刪除掉就沒辦法恢復的,看看以前有沒有備份的吧;沒有備份就趁著記憶,趕緊恢復吧;

⑦ 只有MDF文件如何恢復資料庫

??????
如果您的mdf文件是當前資料庫產生的,那麼很僥幸,也許你使用sp_attach_db或者sp_attach_single_file_db可以恢復資料庫,但是會出現類似下面的提示信息
??????
設備激活錯誤。??????
物理文件名
'C:\Program
Files\Microsoft
SQL
Server\MSSQL\data\test_Log.LDF'
可能有誤。
??????
已創建名為
'C:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\test_log.LDF'
的新日誌文件。????????
但是,如果您的資料庫文件是從其他計算機上復制過來的,那麼很不幸,也許上述辦法就行不通了。你也許會得到類似下面的錯誤信息
??????
伺服器:
消息
1813,級別
16,狀態
2,行
1
??????
未能打開新資料庫
'test'。CREATE
DATABASE
將終止。
??????
A.我們使用默認方式建立一個供恢復使用的資料庫(如test)。可以在SQL
Server
Enterprise
Manager裡面建立。??????
B.停掉資料庫伺服器。??????
C.將剛才生成的資料庫的日誌文件test_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data.mdf??????
D.啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。????????
E.設置資料庫允許直接操作系統表。此操作可以在SQL
Server
Enterprise
Manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。
??????
use
master
??????
go
??????
sp_configure
'allow
updates',1
??????
go
??????
reconfigure
with
override
??????
go??????
F.設置test為緊急修復模式
??????
update
sysdatabases
set
status=-32768
where
dbid=DB_ID('test')??????
此時可以在SQL
Server
Enterprise
Manager裡面看到該資料庫處於「只讀\置疑\離線\緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表
??????
G.下面執行真正的恢復操作,重建資料庫日誌文件
??????
dbcc
rebuild_log('test','C:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\test_log.ldf')??????
執行過程中,如果遇到下列提示信息:
??????
伺服器:
消息
5030,級別
16,狀態
1,行
1
??????
未能排它地鎖定資料庫以執行該操作。
??????
DBCC
執行完畢。如果
DBCC
輸出了錯誤信息,請與系統管理員聯系。
??????
說明您的其他程序正在使用該資料庫,如果剛才您在F步驟中使用SQL
Server
Enterprise
Manager打開了test庫的系統表,那麼退出SQL
Server
Enterprise
Manager就可以了。
??????
正確執行完成的提示應該類似於:
??????
警告:
資料庫
'test'
的日誌已重建。已失去事務的一致性。??????
應運行
DBCC
CHECKDB
以驗證物理一致性。??????
將必須重置資料庫選項,並且可能需要刪除多餘的日誌文件。??????
數據恢復
sql資料庫修復
密碼恢復??????
sql資料庫恢復
硬碟異響
壞道修復
文件恢復??????
sql
server修復
文件修復??????
raid數據恢復
sql資料庫修復??????
raid磁碟陣列
sql恢復
sql
server恢復??????
硬碟數據恢復
硬碟壞道修復
硬碟數據修復
數據修復
??????
DBCC
執行完畢。如果
DBCC
輸出了錯誤信息,請與系統管理員聯系。??????
此時打開在SQL
Server
Enterprise
Manager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。??????
H.驗證資料庫一致性(可省略)
??????
dbcc
checkdb('test')??????
一般執行結果如下:
??????
CHECKDB
發現了
0
個分配錯誤和
0
個一致性錯誤(在資料庫
'test'
中)
??????
DBCC
執行完畢。如果
DBCC
輸出了錯誤信息,請與系統管理員聯系。????????
I.設置資料庫為正常狀態
??????
sp_dboption
'test','dbo
use
only','false'
??????
如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。????????
J.最後一步,我們要將步驟E中設置的「允許對系統目錄直接修改」一項恢復。因為平時直接操作系統表是一件比較危險的事情。當然,我們可以在SQL
Server
Enterprise
Manager裡面恢復,也可以使用如下語句完成
??????
sp_configure
'allow
updates',0??????
go