程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 如何通過日志恢復SQL Server數據

如何通過日志恢復SQL Server數據

編輯:關於MYSQL數據庫

      這段時間看了關於在SQL server 中通過日志和時間點來恢復數據。也看了一些網上的例子,看如何通過日志來恢復數據。

      前提條件:

      數據庫的故障恢復改為非簡單模式,去掉自動關閉和自動收縮兩個選項

      如果是簡單模式: 類似下面的語句操作數據就不會記錄到日志中: select * into t from [表名]

      這時為保證數據的完整要將數據庫的恢復模式改成“完整”

      測試環境:

      1,建立數據庫和測試表

      create database zp

      create table [zping. com](

      id int,

      name varchar(20)

      )

      插入測試數據:

      insert into [zping.com](id,name)

      values(1,zping.com1)

      insert into [zping.com](id,name)

      values(2,zping.com2)

      insert into [zping.com](id,name)

      values(3,zping.com3)

      insert into [zping.com](id,name)

      values(4,zping.com4)

      備份數據庫,可以通過sql server的可視化操作,下面是生成的代碼:

      BACKUP DATABASE [zp] TO DISK = NC:k.bak WITH NOFORMAT, NOINIT,

      NAME = Nzp-完整 數據庫 備份, SKIP, NOREWIND, NOUNLOAD, STATS = 10

      GO

      查看數據:

      注意:這時我們做一個完整備份

      這時可能一不小心刪除了一些數據。我們模擬一下:(假定刪除了1,2的數據)

      delete from [zping.com] where (id=1 or id =2)

      注意:要記住大體的刪除時間

      這時發現刪除錯誤了,怎麼把數據找回來啊。方法有兩個:

      1,通過Log Explorer 查找進行恢復數據(我網站有此工具)

      2,另一種方法通過恢復日志(指定時間點恢復)來恢復數據。

      說明:第一個方法可以在線操作。

      第二個方法必須停止數據庫或者再另一個數據庫恢復(前提是必須有一個完全備份和日志備份)

      這裡我們來討論第二中方法指定時間點恢復:

      1、這時對數據庫事務日志做備份(注意,如果沒做個數據庫完整備份,是不能做事務日志備份的)

      這時新建一個數據庫zp(將以前的數據庫改名),恢復數據庫

      這時我們看到,有兩個還原的數據庫備份,因為我對zp數據庫備份了兩次,兩次的備份的數據文件都一樣。這裡我們選擇最近時間的備份

      默認在數據庫的設置如下:是追加到備份集裡,所以會有兩個備份,如下圖:

      同時,在”選項“裡設置”不回滾“事務,

      注意:通過事務日志還原數據庫,必須選擇"不回滾"事務

      確定後:出現下面情況:

      這時發現,數據庫一直是”正在還原“,這時還原數據庫事務日志,

      1,“常規”裡選擇時間,(剛刪除的時間)

      2,“選項”裡將恢復狀態設置為”回滾未提交“事務

      確定後,查詢數據庫,發現數據回來了。

      總結:

      1, 這是一般大型網站數據安全的一個辦法,因為數據庫比較大(可能有幾百G)數據,為保證數據安全,大多采用完整備份+事務日志備份來保證數據安全。

      2,如SQL server 2005裡的鏡像就是采用的這種事務日志同步的方法保證數據的同步。

      3,如果恢復的日志數據出現”LSN“太早和太晚"說明了事務日志間的不連續。這時要注意備份的時間和順序。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved