您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么通過日志恢復MSSQL數據,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1、建立數據庫和測試表
create database zpcreate table [zping.com]( id int, name varchar(20))
2、插入測試數據
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的可視化操作,下面是生成的代碼:[code]BACKUP DATABASE [zp] TO DISK = N'C:\k.bak' WITH NOFORMAT, NOINIT, NAME = N'zp-完整 數據庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO[code]
查看數據:
注意:這時我們做一個完整備份
這時可能一不小心刪除了一些數據。我們模擬一下:(假定刪除了1,2的數據)
deletefrom[zping.com]where(id=1orid=2)
注意:要記住大體的刪除時間
這時發現刪除錯誤了,怎么把數據找回來啊。方法有兩個:
1、通過Log Explorer 查找進行恢復數據(我網站有此工具)
2、另一種方法通過恢復日志(指定時間點恢復)來恢復數據。
說明:第一個方法可以在線操作。
第二個方法必須停止數據庫或者再另一個數據庫恢復(前提是必須有一個完全備份和日志備份)
這里我們來討論第二中方法指定時間點恢復:
1、這時對數據庫事務日志做備份(注意,如果沒做個數據庫完整備份,是不能做事務日志備份的)
這時新建一個數據庫zp(將以前的數據庫改名),恢復數據庫
這時我們看到,有兩個還原的數據庫備份,因為我對zp數據庫備份了兩次,兩次的備份的數據文件都一樣。這里我們選擇最近時間的備份。
默認在數據庫的設置如下:是追加到備份集里,所以會有兩個備份,如下圖:
同時,在”選項“里設置”不回滾“事務。
注意:通過事務日志還原數據庫,必須選擇"不回滾"事務。
確定后,出現下面情況:
這時發現,數據庫一直是”正在還原“,這時還原數據庫事務日志,
1、“常規”里選擇時間,(剛刪除的時間)
2、“選項”里將恢復狀態設置為”回滾未提交“事務
確定后,查詢數據庫,發現數據回來了。
總結:
1、這是一般大型網站數據安全的一個辦法,因為數據庫比較大(可能有幾百G)數據,做一次完整備份時間很長,而且影響數據庫服務器的性能,為保證數據安全,大多采用完整備份+事務日志備份來保證數據安全。例如:一天做一次或者2天做一次完整備份,幾個小時內做一次日志備份。(當然可以用寫一個job來實現)
2、如SQL server 2005里的鏡像就是采用的這種事務日志同步的方法保證數據的同步。
3、如果恢復的日志數據出現”LSN“太早和太晚說明了事務日志間的不連續。這時要注意備份的時間和順序。
關于怎么通過日志恢復MSSQL數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。