從日誌回覆資料庫

2022-02-28 00:53:09 字數 1467 閱讀 6126

--建立測試資料庫  

create   database   db  

go  

--對資料庫進行備份  

backup   database   db   to   disk='c:\db.bak'   with   format  

go  

--建立測試表  

create   table   db.dbo.tb_test(id   int)  

--延時1秒鐘,再進行後面的操作(這是由於sql   server的時間精度最大為百分之三秒,不延時的話,可能會導致還原到時間點的操作失敗)  

waitfor   delay   '00:00:01'  

go  

--假設我們現在誤操作刪除了   db.dbo.tb_test   這個表  

drop   table   db.dbo.tb_test  

--儲存刪除表的時間  

select   dt=getdate()   into   #  

go  

--在刪除操作後,發現不應該刪除表   db.dbo.tb_test  

--下面演示了如何恢復這個誤刪除的表   db.dbo.tb_test  

--首先,備份事務日誌(使用事務日誌才能還原到指定的時間點)  

backup   log   db   to   disk='c:\db_log.bak'   with   format  

go  

--接下來,我們要先還原完全備份(還原日誌必須在還原完全備份的基礎上進行)  

restore   database   db   from   disk='c:\db.bak'   with   replace,norecovery  

go  

--將事務日誌還原到刪除操作前(這裡的時間對應上面的刪除時間,並比刪除時間略早  

declare   @dt   datetime  

select   @dt=dateadd(ms,-20,dt)   from   #     --獲取比表被刪除的時間略早的時間  

restore   log   db   from   disk='c:\db_log.bak'   with   recovery,stopat=@dt  

go  

--查詢一下,看表是否恢復  

select   *   from   db.dbo.tb_test  

/*--結果:  

id                      

-----------    

(所影響的行數為   0   行)  

--*/  

--測試成功  

go  

--最後刪除我們做的測試環境  

drop   database   db  

drop   table   #  

oracle 刪除表以及回覆資料

找回刪除的表 select object name,original name,partition name,type,ts name,createtime,droptime from recyclebin where original name t wx account info flashbac...

通過日誌恢復資料庫

建立測試資料庫test create database test onprimary name test data.mdf filename d test data.mdf logon name test data.ldf filename d test data.ldf 建立測試表 create ...

binlog日誌檔案 恢復資料庫

檢視資料庫是否開啟binlog日誌 show variables like log bin 如果 log bin off 則在my.ini檔案加入如下命令 路徑為自己mysql下位置所在 d wamp bin mariadb mariadb10.4.10 bin log 自己所建立檔案 mysql ...