主頁 > 知識庫 > SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法

SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法

熱門標(biāo)簽:電銷外呼系統(tǒng)違規(guī) 400電話怎么申請收費標(biāo)準(zhǔn) 高德地圖標(biāo)注生成 智能語音外呼系統(tǒng)打電話 寧夏外呼系統(tǒng)方案 400電話辦理2273649Z空間 濟南電銷外呼防封卡怎么樣 怎樣在地圖標(biāo)注自己的信息 南京外呼系統(tǒng)租用

實際工作中,有時會直接在數(shù)據(jù)庫中操作數(shù)據(jù),比如對數(shù)據(jù)進行delete或者update操作,當(dāng)進行這些操作的時候,如果沒有加上 where條件或者where條件不合理,那么導(dǎo)致的結(jié)果可想而知,如果操作的又是線上數(shù)據(jù)庫,那么這個后果將會非常嚴(yán)重。

當(dāng)事情發(fā)生后,我們要想辦法補救,針對于sqlserver2005數(shù)據(jù)庫,有個很出名的工具Log Exploer。具體操作使用大家可以自行搜索;針對于sqlserver2008也有這樣的工具,但是大多是需要付費的...我們嘗試用 sqlserver的事務(wù)日志來恢復(fù)這些受影響的數(shù)據(jù)。

用事務(wù)日志恢復(fù)數(shù)據(jù),需要兩個必要條件:

1、正確的完整數(shù)據(jù)庫的最后一次備份

如果沒有數(shù)據(jù)庫完整備份,是不能做事務(wù)日志備份的,所以建議創(chuàng)建數(shù)據(jù)庫時,恢復(fù)模式一項,應(yīng)當(dāng)選擇'完整'。

2、正確的即時點

即所要恢復(fù)到數(shù)據(jù)的時間點,這個時間點一般選擇誤操作發(fā)生時間往前一點的時間點,所以當(dāng)誤操作發(fā)生時,應(yīng)盡量記下這個時間點,不然可能導(dǎo)致恢復(fù)的數(shù)據(jù)不夠準(zhǔn)確。比如,

誤操作發(fā)生于16:00,這個時間點我們可以選擇15:59,如果選擇的太靠前,比如15:30,那么15:30--15:59這段時間內(nèi)的數(shù)據(jù)就不能被恢復(fù)了。

下面記錄具體的操作步驟:

首先新建一個數(shù)據(jù)庫dbtest,注意創(chuàng)建數(shù)據(jù)庫時恢復(fù)模式一項選擇'完整',在數(shù)據(jù)庫中新建一個Table_1,并插入一些數(shù)據(jù),然后對該數(shù)據(jù)庫做一個完整備份。

這個備份,主要是模擬實際工作中對數(shù)據(jù)庫的備份,實際中由于數(shù)據(jù)庫可能很大,所以一般備份是一天或者兩天進行一次。

備份成功后,接著再往Table_1中插入幾條數(shù)據(jù), 模擬在原數(shù)據(jù)庫基礎(chǔ)上新增加的數(shù)據(jù),然后執(zhí)行一個sql語句:delete from Table_1,模擬誤操作,并記錄下時間,比如16:00.誤操作發(fā)生后,我們要趕緊進行事務(wù)日志的備份,我們就是根據(jù)此備份來還原數(shù)據(jù)的。

事務(wù)日志備份完后,我們可以新建個數(shù)據(jù)庫dbtest1,然后把之前備份的數(shù)據(jù)庫在新建的數(shù)據(jù)中進行還原,之所以這么做,是因為用事務(wù)日志 恢復(fù)數(shù)據(jù)庫需要獲得數(shù)據(jù)庫的獨占訪問權(quán),如果在原庫上進行恢復(fù),那么這需要對原庫停止對外服務(wù),但是這樣,可能會導(dǎo)致線上系統(tǒng)不能正常運行,造成非常大的 影響,所以我們新建個數(shù)據(jù)庫用作數(shù)據(jù)的還原,而不影響線上系統(tǒng)的正常進行。最后把新庫中還原回來的數(shù)據(jù),再導(dǎo)入到原庫中。

對dbtest1進行還原時,注意"選項"的配置

數(shù)據(jù)庫還原成功后,此時dbtest1應(yīng)為正在還原的狀態(tài):,接著對數(shù)據(jù)庫進行還原:任務(wù)—>還原—>事務(wù)日志,

時間點選擇誤操作之前的一個時間點,比如15:59:59,然后確定,完成全部數(shù)據(jù)恢復(fù)操作?! ?/p>

下面的一段話源自其他帖子:

1、這是一般大型網(wǎng)站數(shù)據(jù)安全的一個辦法,因為數(shù)據(jù)庫比較大(可能有幾百G)數(shù)據(jù),做一次完整備份時間很長,而且影響數(shù)據(jù)庫服務(wù)器的性能, 為保證數(shù)據(jù)安全,大多采用完整備份+事務(wù)日志備份來保證數(shù)據(jù)安全。例如:一天做一次或者2天做一次完整備份,幾個小時內(nèi)做一次日志備份。(當(dāng)然可以用寫一 個job來實現(xiàn))

2、如SQL server 2005里的鏡像就是采用的這種事務(wù)日志同步的方法保證數(shù)據(jù)的同步。

3、如果恢復(fù)的日志數(shù)據(jù)出現(xiàn)”LSN“太早和太晚說明了事務(wù)日志間的不連續(xù)。這時要注意備份 的時間和順序。

參考文章:

SQL Server 2008數(shù)據(jù)庫誤刪數(shù)據(jù)如何進行數(shù)據(jù)恢復(fù)

SQL Server 2008及更高版本數(shù)據(jù)庫恢復(fù)方法之日志尾部備份

拯救你的數(shù)據(jù) 通過日志恢復(fù)MSSQL數(shù)據(jù)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

您可能感興趣的文章:
  • sqlserver中drop、truncate和delete語句的用法
  • sqlserver中delete、update中使用表別名和oracle的區(qū)別
  • SQLServer 2008中SQL增強之三 Merge(在一條語句中使用Insert,Update,Delete)
  • SQL Server 添加Delete操作回滾日志方式

標(biāo)簽:唐山 長白山 平頂山 仙桃 貴港 茂名 惠州 潛江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法》,本文關(guān)鍵詞  SqlServer2008,誤,操作,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章