如何通過日誌恢複SQL Server資料

來源:互聯網
上載者:User

  這段時間看了關於在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(將以前的資料庫改名),恢複資料庫

  這時我們看到,有兩個還原的Database Backup,因為我對zpDatabase Backup了兩次,兩次的備份的資料檔案都一樣。這裡我們選擇最近時間的備份

  預設在資料庫的設定如下:是追加到備份組裡,所以會有兩個備份,如下圖:

  同時,在”選項“裡設定”不復原“事務,

  注意:通過交易記錄還原資料庫,必須選擇"不復原"事務

  確定後:出現下面情況:

  這時發現,資料庫一直是”正在還原“,這時還原資料庫交易記錄,

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

  2,“選項”裡將恢複狀態設定為”復原未提交“事務

  確定後,查詢資料庫,探索資料回來了。

  總結:

  1, 這是一般大型網站資料安全的一個辦法,因為資料庫比較大(可能有幾百G)資料,為保證資料安全,大多採用完整備份+交易記錄備份來保證資料安全。

  2,如SQL server 2005裡的鏡像就是採用的這種交易記錄同步的方法保證資料的同步。

  3,如果恢複的日誌資料出現”LSN“太早和太晚"說明了交易記錄間的不連續。這時要注意備份的時間和順序。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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