今天筆者講講怎樣利用LDF文件還原數據方法,恢復過程是先創建數據TEST、創建表TEMP_01,在表TEMP_01中插入100條數據,接著備份現有的數據庫,再次向表TEMP_01中插入50條數據,記錄下當前正確數據的時間time1,二分鐘后模擬數據文件MDF損壞,備份數據庫尾日志,最后將數據庫恢復到time1 時間。
數據庫詳細還原步驟:
1) 創建數據TEST
CREATE DATABASE TEST
2) 創建表TEMP_01
CREATE TABLE TEMP_01
(ID [int] NOT NULL PRIMARY KEY,
NAME [datetime] NOT NULL,
ADDRESS varchar(50) NOT NULL)
3) 在表TEMP_01中插入100條數據
use TEST
declare @i int
set @i=1
while(@i<=100)
begin
INSERT INTO TEMP_01 VALUES (@i,getdate(),’ADDRESS ‘ + convert(varchar(50),@i))
set @i=@i+1
end
查看數據
select * from TEST
4) 備份現有的數據庫
--------做一次完整數據庫備份
backup database TEST to disk =N’f:\db-recovery\TEST.bak’
5) 再次向表TEMP_01 中插入50條數據
use TEST
declare @i int
set @i=101
while(@i<=150)
begin
INSERT INTO TEMP_01 VALUES (@i,getdate(),’ADDRESS ‘ + convert(varchar(50),@i))
set @i=@i+1
end
查看數據
select * from TEMP_01
6) 記錄下當前正確數據的時間time1
當前時間為:2009-8-21 15:18:33
7) 2分鐘后模擬數據文件損壞
停止SQL SERVER 服務 net stop mysqlserver
刪除TEST.mdf 文件
新建文本文件,并重命名為:TEST.mdf
啟動SQL SERVER 服務 net stop mysqlserver
數據庫TEST無法打開,證明已損壞
8) 備份數據庫尾日志
啟動 sqlcmd 管理工具
備份尾日志
backup log TEST to disk=N’f:\db-recovery\aaaa.bak’ with no_truncate
解釋一下no_truncate的作用:
如果數據庫處于離線狀態并且無法啟動。
嘗試執行尾日志備份。由于此時不會發生任何事務,所以 WITH NORECOVERY 是可選的。如果數據庫受損,請使用
WITH CONTINUE_AFTER_ERROR 或 WITH NO_TRUNCATE。
BACKUP LOG database_name TO [WITH { CONTINUE_AFTER_ERROR " NO_TRUNCATE }
重要提示:
除非數據庫受損,否則不建議使用 NO_TRUNCATE。
9) 將數據庫恢復到time1時間
–恢復最后一次正常配置
在sqlcmd中執行如下語句進行恢復
restore database test from disk=’f:\db-recovery\TEST.bak’ with norecovery
restore log test from disk=’f:\db-recovery\aaaa.bak’ with recovery
解釋一下 with norecovery 和 with recovery的作用
NORECOVERY:每當您準備對數據庫繼續執行還原操作時,請使用 NORECOVERY。NORECOVERY 使數據庫進入還原狀態。這確保了數據庫在尾日志備份后不會更改。
RECOVERY:將數據庫從恢復狀態改變到正常狀態
以上是數據庫恢復過程,是利用LDF文件將數據庫數據還原,希望對您有幫助!
由于我是個對磁盤空間過敏的人,每當磁盤空間少到幾百兆,就會想辦法刪掉不用的軟件,時...
1.查看磁帶中的目錄 #tar tvf /dev/st0 2.查看磁帶中的目錄,并輸出到一個文件中 #t...
當世界上規模最大的磁盤制造商上周聯合發布磁盤加密的單項標準后,迅速在用戶中間產生了...
首先我們先啟動EasyRecovery軟件,點擊左邊列表中的數據修復。 數據修復里面有六個選項...
很多的朋友都在使用U盤,用它進行數據存儲的工作,使用過U盤的朋友們也都會碰到如下的情...
主板架構,如下圖: 2011-3-1 21:30:31 上傳 下載附件 (52 KB) 上電時序: 2011-3-1...
錯誤操作導致高級格式化分區后的數據恢復在 DOS 時代有一個非常不錯工具稱為 UnFormat...