SQL Server 數據恢復


1.從日志恢復數據庫

--創建測試數據庫   
  CREATE   DATABASE   Db   
  GO   
    
  --對數據庫進行備份   
  BACKUP   DATABASE   Db   TO   DISK='c:\db.bak'   WITH   FORMAT   
  GO   
    
  --創建測試表   
  CREATE   TABLE   Db.dbo.TB_test(ID   int)   
    
  --延時1秒鍾,再進行后面的操作(這是由於SQL   Server的時間精度最大為百分之三秒,不延時的話,可能會導致還原到時間點的操作失敗)   
  WAITFOR   DELAY   '00:00:01'   
  GO   
    
  --假設我們現在誤操作刪除了   Db.dbo.TB_test   這個表   
  DROP   TABLE   Db.dbo.TB_test   
    
  --保存刪除表的時間   
  SELECT   dt=GETDATE()   INTO   #   
  GO   
    
  --在刪除操作后,發現不應該刪除表   Db.dbo.TB_test   
    
  --下面演示了如何恢復這個誤刪除的表   Db.dbo.TB_test   
    
  --首先,備份事務日志(使用事務日志才能還原到指定的時間點)   
  BACKUP   LOG   Db   TO   DISK='c:\db_log.bak'   WITH   FORMAT   
  GO   
    
  --接下來,我們要先還原完全備份(還原日志必須在還原完全備份的基礎上進行)   
  RESTORE   DATABASE   Db   FROM   DISK='c:\db.bak'   WITH   REPLACE,NORECOVERY   
  GO   
    
  --將事務日志還原到刪除操作前(這里的時間對應上面的刪除時間,並比刪除時間略早   
  DECLARE   @dt   datetime   
  SELECT   @dt=DATEADD(ms,-20,dt)   FROM   #     --獲取比表被刪除的時間略早的時間   
  RESTORE   LOG   Db   FROM   DISK='c:\db_log.bak'   WITH   RECOVERY,STOPAT=@dt   
  GO   
    
  --查詢一下,看表是否恢復   
  SELECT   *   FROM   Db.dbo.TB_test   
    
  /*--結果:   
  ID                       
  -----------     
    
  (所影響的行數為   0   行)   
  --*/   
    
  --測試成功   
  GO   
    
  --最后刪除我們做的測試環境   
  DROP   DATABASE   Db   
  DROP   TABLE   # 

2.利用工具恢復

  ApexSQLLog2016破解版,但是破解版讀取Log文件時,容易崩潰,需要耐心的多試幾次(親測可用)。 

一、 不要備份數據庫,因為有些數據庫設置的‘簡單模式’,備份會刪除日志,導致恢復失敗。

二、 先分離數據庫

 

三、 找到數據庫文件路徑,拷貝一份備用。(為了保險,一定要備份)

 

 

 

 

四、 把分離的數據庫附加回去

五、安裝軟件運行環境,需要.NET 4.5。下面是官方路徑,可放心下載

https://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe

 

六、設置數據庫兼容等級為 100。下面是SQL語句

ALTER DATABASE [數據庫名稱] SET COMPATIBILITY_LEVEL = 100

 

七、開始使用軟件 ApexSQLLog2016 需要以管理員身份運行

 

 

 

 

八、選擇要恢復的SQL連接和數據庫

 

 

 

 

九、等待查找數據庫和日志

 

 

 

 

等一會兒 ,會出現下面界面

 

 

 

 

 

 

 

 

 

 

 

 

  建議另存為一個 .sql文件,然后打開進行操作。

  還原的數據中如果包含 單引號’’  ,語句執行是可能會有錯,手動改一下就好。

  鏈接:https://pan.baidu.com/s/1onssFmFuN7F21sSaM5JO1g
  提取碼:wujw

  在win7下面使用沒有問題,服務器server 2008無法使用,可能是C++環境問題,未能解決。

  服務器上下載正版可以用,但是正版使用功能受限制。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM