ApexSQL Recover 恢復一個被drop的表的數據

沒有備份的狀況下恢復一個被drop的表的數據

ApexSQL Recover 恢復一個被drop的表的數據

轉自:https://solutioncenter.apexsql.com/zh/%E6%B2%A1%E6%9C%89%E5%A4%87%E4%BB%BD%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%81%A2%E5%A4%8D%E4%B8%80%E4%B8%AA%E8%A2%ABdrop%E7%9A%84%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE/html

 

若是你曾經意外地執行過一個 DROP 語句而且你以前有一個數據庫完整備份,在你drop掉表以前數據庫沒有發生任何改變,完整備份能讓你簡單地依靠覆蓋數據庫來恢復數據。 然而,事情並無那麼簡單,由於每每數據庫對象和數據在 DROP 語句執行以後都會發生變化又或者你沒有作合理的備份,那麼就沒有方法去還原你丟失的數據。sql

 

那就是說,每個 DROP 操做會被記錄在SQL Server的事務日誌裏。這表示事務日誌存儲裏足夠的信息去回滾事務,而且若是數據庫處於完整恢復模式下,對於 DROP 操做數據庫備份可以支持時點還原。數據庫

正由於 DROP 操做是被記錄到事務日誌的,若是它被包含在一個顯式,活動事務裏那麼是可以被回滾的。例如,下面的SQL 查詢:工具

DROP TABLE Customer SELECT * FROM Customer

會顯示出 Msg 208, Level 16, State 1 這樣的結果,錯誤消息 由於 Customer 表已經被drop掉了post

然而,下面的SQL 代碼:url

BEGIN TRAN DROP TABLE Customer ROLLBACK SELECT * FROM Customer

會返回 Customer 表全部的記錄行數由於 DROP 表操做被回滾了。spa

已經被 DROP 的表就不能回滾,很明顯這個表存儲的數據也會丟失。 那是否是說因爲 DROP 操做在沒有數據庫完整備份的狀況下你就不可以恢復丟失的數據了呢?翻譯

幸運的是,不是的,ApexSQL Recover在這裏就可以發揮它的做用日誌

ApexSQL Recover 恢復工具,可以恢復已刪除的,截斷了的(truncate,損壞的或者置疑的數據。它能恢復因爲drop操做而丟失的對象和數據而且
能夠還原刪除了的和在線BLOBs文件讓它可以像SharePoint 恢復那樣完美。code

要恢復因爲 DROP 操做而且沒有備份的數據丟失狀況,只須要按下面的來作:

  1. 啓動 ApexSQL Recover
  2. 選擇恢復因爲DROP操做致使丟失的數據
  3. 在Select the database to recover 的步驟:
    • 指定你想恢復數據的數據庫所在的SQL實例 在server下拉框旁邊
    • 指定SQL實例的驗證方法(若是你選擇SQL Server受權請選擇一個合法的證書)
    • 在數據庫下拉列表中指定數據庫名

    而後點擊「下一步」

  4. 在「 Are additional data sources available?」步驟, 選擇「No additional transaction logs are available 」選擇

  5. 在「Select a recovery action」步驟,選擇「Save recovery script to file」選項並指定一個T-SQL腳本文件保存的路徑,全部的已丟失數據都插入到這個腳本文件並保存起來

  6. 點擊「恢復」

就像那樣,你會獲取到全部的你所丟失的數據,在沒有一個單獨SQL數據庫備份的狀況下。

翻譯者: 林勇樺

 

 

  

 

July 2, 2015
相關文章
相關標籤/搜索