使用Log Explorer查看和恢復(fù)數(shù)據(jù)
創(chuàng)新互聯(lián)基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專(zhuān)業(yè)遂寧聯(lián)通機(jī)房報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專(zhuān)業(yè)成都idc公司。
Log Explorer 4.1.可用于SQL Server2005的日志查看工具
下載地址:
使用方法:
打開(kāi)Log Explorer - Attach Log File - 選擇SQL Server服務(wù)器和登陸方式 - Connect -
在Database Name中選擇數(shù)據(jù)庫(kù) - Attach- 左面對(duì)話框中Browse- View Log- 就可以看到log記錄了
想恢復(fù)的話: 右鍵Log記錄 Undo Transation- 選擇保存文件名和路徑- 然后打開(kāi)該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然后將此insert table的代碼放到查詢分析器里執(zhí)行.就可以恢復(fù)數(shù)據(jù).
----------------------------------------------------------------------
--如何恢復(fù)被delete/update的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫(kù)的Db
打開(kāi)log explorer 選擇 "file"-"attach log file"-選擇服務(wù)器和登陸方式-"connect"-選擇"數(shù)據(jù)庫(kù)"-"attach"
2 查看日志
在左面操作項(xiàng)目的對(duì)話框中選擇"browse"項(xiàng)目-"view log"-就可以看到當(dāng)前的Log記錄了
3 恢復(fù)數(shù)據(jù)
右鍵某一條log記錄,選擇"undo transation"-"選擇保存文件名和路徑"-然后打開(kāi)該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢復(fù)被drop table和truncate table后的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫(kù)的Db
操作同上
2 恢復(fù)方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對(duì)話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語(yǔ)句腳步的存放位置,condition選擇是droped還是truncated,
最后點(diǎn)擊"create" 就會(huì)生成insert語(yǔ)句,把生成的語(yǔ)句到查詢分析器里面執(zhí)行一下就可以了
2) 選擇"ViewDDL Commands"菜單-選"truncate table" 操作項(xiàng)-點(diǎn)擊"Salvage"-生成語(yǔ)句-查詢分析器里執(zhí)行
----------------------------------------------------------------------
--log explorer使用的幾個(gè)問(wèn)題
----------------------------------------------------------------------
1) 對(duì)數(shù)據(jù)庫(kù)做完全/差異/日志備份
備份時(shí)如果選用了刪除事務(wù)日志中不活動(dòng)的條目
再用Log explorer打試圖看日志時(shí),提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了
如果不選用了刪除事務(wù)日志中不活動(dòng)的條目
再用Log explorer打試圖看日志時(shí),就能看到原來(lái)的日志并做恢復(fù)
2) 修改了其中一個(gè)表中的部分?jǐn)?shù)據(jù),此時(shí)用Log explorer看日志,可以作日志恢復(fù)
3) 然后恢復(fù)備份,(注意:恢復(fù)是斷開(kāi)log explorer與數(shù)據(jù)庫(kù)的連接,或連接到其他數(shù)據(jù)上,
否則會(huì)出現(xiàn)數(shù)據(jù)庫(kù)正在使用無(wú)法恢復(fù))
恢復(fù)完后,再打開(kāi)log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日志記錄,所以無(wú)法做恢復(fù).
4) 不要用SQL的備份功能備份,搞不好你的日志就破壞了.
正確的備份方法是:
停止SQL服務(wù),復(fù)制數(shù)據(jù)文件及日志文件進(jìn)行文件備份.
然后啟動(dòng)SQL服務(wù),用log explorer恢復(fù)數(shù)據(jù)
SQLSERVER 2008誤刪除表,幾百萬(wàn)行數(shù)據(jù)沒(méi)了,怎么恢復(fù)
誤刪了數(shù)據(jù)可以用恢復(fù)軟件恢復(fù),你可以用 AneData全能文件恢復(fù)。格式化分區(qū)或者誤ghost到其他的分區(qū)數(shù)據(jù)丟失要恢復(fù),分區(qū)突然打不開(kāi)了提示未被格式化數(shù)據(jù)要恢復(fù),直接刪除或者清空了回收站,卸載軟件丟失的數(shù)據(jù)要恢復(fù)等等都可以恢復(fù)的,具有反刪除、反格式化、分區(qū)恢復(fù)、高級(jí)模式等掃描功能,可以恢復(fù)最常見(jiàn)的種種數(shù)據(jù)丟失的情況。
你好:
一、還原需要的條件設(shè)置
使用命令,是通過(guò)sqlserver的事務(wù)日志以及一個(gè)誤刪除前的數(shù)據(jù)庫(kù)的完整備份進(jìn)行還原,所以在sqlserver2012的維護(hù)計(jì)劃向?qū)е校⑼暾麄浞?,差異備份和事?wù)日志,具體如下
以及在數(shù)據(jù)庫(kù)屬性,選項(xiàng)設(shè)置中,設(shè)置為完整備份,具體如下圖
做好如上兩個(gè)設(shè)置,數(shù)據(jù)庫(kù)誤刪后找回?cái)?shù)據(jù)就會(huì)非常輕松,現(xiàn)在說(shuō)一下如何還原sqlserver數(shù)據(jù)到故障點(diǎn)。
二、還原命令
還原主要分為四步走:
1、出現(xiàn)故障后,首先執(zhí)行備份事務(wù)日志命令,這里以AdventureWorks作為數(shù)據(jù)庫(kù)名。命令如下:
BACKUP LOG AdventureWorks TO?DISK = 'C:\SQLServerBackups\AdventureWorks_transcationlog.bak'
WITH?NORECOVERY;
2、從完整備份還原數(shù)據(jù)
RESTORE ?DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak'
WITH ?NORECOVERY, REPLACE
3、從差異備份還原數(shù)據(jù)
RESTORE DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_diffbackup_2014_03_18_020002_0155764.bak' WITH NORECOVERY, REPLACE
4、從事務(wù)日志還原數(shù)據(jù),還原到某個(gè)時(shí)間點(diǎn)之前
DECLARE?@dt datetime
SELECT?@dt=DATEADD(HOUR,-16,GETDATE())
select?@dt
RESTORE LOG [QASupervision] FROM?DISK='C:\SQLServerBackups\AdventureWorks_transcationlog.bak'??WITH??STOPAT=@dt,RECOVERY
5、還原數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)提示正在還原中,則執(zhí)行此命令即可。
RESTORE DATABASE?AdventureWorks WITH?RECOVERY
SQL Server中誤刪除數(shù)據(jù)的恢復(fù)本來(lái)不是件難事,從事務(wù)日志恢復(fù)即可。但是,這個(gè)恢復(fù)需要有兩個(gè)前提條件:
1. 至少有一個(gè)誤刪除之前的數(shù)據(jù)庫(kù)完全備份。
2. 數(shù)據(jù)庫(kù)的恢復(fù)模式(Recovery mode)是“完整(Full)”。
針對(duì)這兩個(gè)前提條件,會(huì)有三種情況:
情況一、如果這兩個(gè)前提條件都存在,通過(guò)SQL語(yǔ)句只需三步就能恢復(fù)(參考文章),無(wú)需借助第三方工具。
a) 備份當(dāng)前數(shù)據(jù)庫(kù)的事務(wù)日志:BACKUP LOG [數(shù)據(jù)庫(kù)名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復(fù)一個(gè)誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫(kù)名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數(shù)據(jù)庫(kù)恢復(fù)至誤刪除之前的時(shí)間點(diǎn):RESTORE LOG [數(shù)據(jù)庫(kù)] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時(shí)間點(diǎn)' , RECOVERY
情況二、如果第1個(gè)前提條件不存在,第2個(gè)前提條件存在,需要借助第三方工具。
情況三、如果第2個(gè)前提條件不存在,無(wú)法恢復(fù)。所以,一定要將數(shù)據(jù)庫(kù)恢復(fù)模式設(shè)置為“完整(Full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開(kāi)始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來(lái)找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購(gòu)買(mǎi),Demo版并沒(méi)有數(shù)據(jù)恢復(fù)功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購(gòu)買(mǎi),但Demo版可以恢復(fù)數(shù)據(jù),只要數(shù)據(jù)庫(kù)文件不超過(guò)24Gb。幸好朋友的數(shù)據(jù)庫(kù)文件不大,用它完成了誤刪除數(shù)據(jù)的恢復(fù)。
下面分享一下用Recovery for SQL Server進(jìn)行恢復(fù)的操作步驟:
1. 運(yùn)行Recovery for SQL Server
2. 點(diǎn)擊菜單中的 File Recover,選擇要恢復(fù)的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(.mdf)
3. Next Next,進(jìn)入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復(fù)誤刪除的數(shù)據(jù))。
4. Next 進(jìn)入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復(fù)的數(shù)據(jù)庫(kù)的日志文件路徑(log file path)。
5. Next 并選擇目標(biāo)文件夾(Destination folder),用于存放恢復(fù)過(guò)程中生成的SQL語(yǔ)句與bat文件。
6. 點(diǎn)擊Start,開(kāi)始恢復(fù)操作(在上一步選擇的目標(biāo)文件夾中生成相應(yīng)的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復(fù)數(shù)據(jù)存放的目標(biāo)數(shù)據(jù)庫(kù)。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然后就完成數(shù)據(jù)的恢復(fù)!