重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
1、開啟數據庫
網站建設公司,為您提供網站建設,網站制作,網頁設計及定制網站建設服務,專注于企業網站建設,高端網頁制作,對成都茶樓設計等多個行業擁有豐富的網站建設經驗的網站建設公司。專業網站設計,網站優化推廣哪家好,專業成都網站營銷優化,H5建站,響應式網站。
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',
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,直到沒有錯誤為止。
SQL Server中誤刪除數據的恢復本來不是件難事,從事務日志恢復即可。但是,這個恢復需要有兩個前提條件:
1. 至少有一個誤刪除之前的數據庫完全備份。
2. 數據庫的恢復模式(Recovery mode)是“完整(Full)”。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過SQL語句只需三步就能恢復(參考文章),無需借助第三方工具。
a) 備份當前數據庫的事務日志:BACKUP LOG [數據庫名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復一個誤刪除之前的完全備份:RESTORE DATABASE [數據庫名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數據庫恢復至誤刪除之前的時間點:RESTORE LOG [數據庫] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時間點' , RECOVERY
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要借助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將數據庫恢復模式設置為“完整(Full)”。
我現在面臨的是第二種情況,需要找第三方工具。
開始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購買,Demo版并沒有數據恢復功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業軟件,需要購買,但Demo版可以恢復數據,只要數據庫文件不超過24Gb。幸好朋友的數據庫文件不大,用它完成了誤刪除數據的恢復。
下面分享一下用Recovery for SQL Server進行恢復的操作步驟:
1. 運行Recovery for SQL Server
2. 點擊菜單中的 File Recover,選擇要恢復的數據庫的數據文件(.mdf)
3. Next Next,進入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復誤刪除的數據)。
4. Next 進入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復的數據庫的日志文件路徑(log file path)。
5. Next 并選擇目標文件夾(Destination folder),用于存放恢復過程中生成的SQL語句與bat文件。
6. 點擊Start,開始恢復操作(在上一步選擇的目標文件夾中生成相應的SQL文件與Bat文件),然后,出現 SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復數據存放的目標數據庫。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然后就完成數據的恢復!
--1、修改數據庫為緊急模式ALTER DATABASE Stock SET EMERGENCY--2、使數據庫變為單用戶模式ALTER DATABASE Stock SET SINGLE_USER --3、修復數據庫日志重新生成,此命令檢查的分配,結構,邏輯完整性和所有數據庫中的對象錯誤。當您指定“REPAIR_ALLOW_DATA_LOSS”作為DBCC CHECKDB命令參數,該程序將檢查和修復報告的錯誤。但是,這些修復可能會導致一些數據丟失。DBCC CheckDB (Stock, REPAIR_ALLOW_DATA_LOSS)--4、使數據庫變回為多用戶模式ALTER DATABASE Stock SET MULTI_USER1:重新建立一個,一樣的數據庫,路徑名稱,文件都一樣哈;2:關掉SQLSERVER服務;3:把源文件COPY過來;4:開啟SQLSERVER服務;5:執行上面的1到4步。OK
最近在網上看到破解版本的SQL SERVER 的數據庫修復軟件越來越多,在
閑時,下載了所有的試用版本及已經破解版本,找到以前保留的損壞MDF,進
行一番比較。斷斷續續經過幾天的比較,這些軟件的功能與特點基本上了解清楚,
寫出來,與大家共享。
RecoveryToolboxForSQLServer(產地:俄國)
特點:數據恢復效果較好,對于庫結構恢復較正常。
使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。
或者保存成SQL 腳本文件。
SysTools SQL Recovery(產地不詳)
特點:顯示數據時,對中文不支持,只顯示出UniCode,在運行時容易程度中
斷直接退出;此軟件有些像RecoveryToolboxForSQLServer
使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。
或者保存成SQL 腳本文件。
officerecovery 中的 Recovery for SQL Server(產地:美國)
特點:支持BAK,LOG 文件,但修復后的數據容易丟失,庫結構提較取較完整。
使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。
或者保存成SQL 腳本文件。
Kernel for SQL Database(產地:印度)
特點:恢復效果好,但日期的顯示,它是用國外的方式,庫結構提取一般。
使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。
或者保存成SQL 腳本文件。
Stellar Phoenix SQL Recovery (產地:印度)
特點:數據恢復效果較好,程序運行時易不正常退出,庫結構提取不出來。
使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。
無法保存成SQL 腳本。
上述軟件都已經有破解版本或者免費版本,大家在選擇時應該有所了解。
說明:庫結構提取不完整,修復后的數據雖然可以在SQL SERVER 中附加,查
看,導出,備份,但在應用軟件下是無法連接此數據庫的,經過對上述軟件修復后的數據庫文件進行研究,已經找到解決MDF 文件加軟件的辦法,有此修復需
最近在網上看到破解版本的SQL SERVER 的數據庫修復軟件越來越多,在\x0d\x0a閑時,下載了所有的試用版本及已經破解版本,找到以前保留的損壞MDF,進\x0d\x0a行一番比較。斷斷續續經過幾天的比較,這些軟件的功能與特點基本上了解清楚,\x0d\x0a寫出來,與大家共享。\x0d\x0aRecoveryToolboxForSQLServer(產地:俄國)\x0d\x0a特點:數據恢復效果較好,對于庫結構恢復較正常。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aSysTools SQL Recovery(產地不詳)\x0d\x0a特點:顯示數據時,對中文不支持,只顯示出UniCode,在運行時容易程度中\x0d\x0a斷直接退出;此軟件有些像RecoveryToolboxForSQLServer\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aofficerecovery 中的 Recovery for SQL Server(產地:美國)\x0d\x0a特點:支持BAK,LOG 文件,但修復后的數據容易丟失,庫結構提較取較完整。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aKernel for SQL Database(產地:印度)\x0d\x0a特點:恢復效果好,但日期的顯示,它是用國外的方式,庫結構提取一般。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aStellar Phoenix SQL Recovery (產地:印度)\x0d\x0a特點:數據恢復效果較好,程序運行時易不正常退出,庫結構提取不出來。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復結果直接輸出到SQLSERVER 中。\x0d\x0a無法保存成SQL 腳本。\x0d\x0a上述軟件都已經有破解版本或者免費版本,大家在選擇時應該有所了解。\x0d\x0a說明:庫結構提取不完整,修復后的數據雖然可以在SQL SERVER 中附加,查\x0d\x0a看,導出,備份,但在應用軟件下是無法連接此數據庫的,經過對上述軟件修復后的數據庫文件進行研究,已經找到解決MDF 文件加軟件的辦法,有此修復需
1、確保備份下的master數據庫與要恢復的SQL SERVER的版本一致性。
2、關閉打開SQL Server Management Studio,打開服務器管理器,點擊“配置”-“服務”,找到SQL SERVER服務,右鍵點擊出快捷菜單。點擊“停止”停止MSSQLSERVER服務。
3、以管理員賬戶打開cmd,輸入以下的命令:net start mssqlserver?/m。
4、打開SQL Server Management Studio,出現連接到服務器的窗口,點擊取消。
5、點擊“新建查詢”,出現連接到服務器的窗口,點擊確定。因為是單用戶模式,因此只能有一個鏈接進入。
6、在查詢窗口輸入以下的命令。
7、重新啟動SQL SERVER(MSSQLSERVER)服務,右鍵點擊出快捷菜單。點擊“啟動”啟動服務就可以了。