SQLServer資料庫誤刪資料找回

來源:互聯網
上載者:User

標籤:sql命令   命令   pat   幸好   select   誤刪   library   plain   arc   

記一次SQLServer資料庫誤刪資料找回

 昨天 同事在本機清理資料庫表時,串連到了生產機,誤刪了二十幾張表,幸好是晚上加班的時候刪除的,生產機上當時是一天一備份,還原備份是最後的策略,最關鍵的還是要找回資料。

        生產機環境是server2008 R2、 sqlserver2012,使用delete語句刪除的表現在開始還原,還原可參考dudu的這篇文章(連結),其中使用Recovery for SQL Server工具還原,發現還原的資料欄位值為demo,所以最後還是用sql命令去還原的,用sql命令,微軟官方給的比較明細(連結)。

一、還原需要的條件設定

        使用命令,是通過sqlserver的交易記錄以及一個誤刪除前的資料庫的完整備份進行還原,所以在sqlserver2012的維護計劃嚮導中,要建立完整備份,差異備份和交易記錄,具體如下

以及在資料庫屬性,選項設定中,設定為完整備份,具體如

做好如上兩個設定,資料庫誤刪後找回資料就會非常輕鬆,現在說一下如何還原sqlserver資料到故障點。

二、還原命令

還原主要分為四步走:

1、出現故障後,首先執行備份交易記錄命令,這裡以AdventureWorks作為資料庫名。命令如下:

12 BACKUP LOG AdventureWorks TO DISK = ‘C:\SQLServerBackups\AdventureWorks_transcationlog.bak‘    WITH NORECOVERY;

2、從完整備份還原資料

RESTORE  DATABASE [QASupervision] FROM DISK=‘M:\Database\OA\AdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak‘ WITH  NORECOVERY, REPLACE 

3、從差異備份還原資料

RESTORE DATABASE [QASupervision] FROM DISK=‘M:\Database\OA\AdventureWorks_diffbackup_2014_03_18_020002_0155764.bak‘ WITH NORECOVERY, REPLACE 

4、從交易記錄還原資料,還原到某個時間點之前

1234 DECLARE @dt datetime   SELECT @dt=DATEADD(HOUR,-16,GETDATE())   select @dtRESTORE LOG [QASupervision] FROM DISK=‘C:\SQLServerBackups\AdventureWorks_transcationlog.bak‘  WITH  [email protected],RECOVERY

5、還原資料庫,如果資料庫提示正在還原中,則執行此命令即可。

1 RESTORE DATABASE AdventureWorks WITH RECOVERY

SQLServer資料庫誤刪資料找回

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.