SQL利用資料庫日誌恢復資料到時間點的操作 -- 轉自網路
1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進進行一次日誌備份(如果為了不讓日誌檔案變大而置trunc. log on chkpt.選項為1那你就死翹了)
backup log dbName to disk='fileName'
也可以在誤操作之後先進行全庫備份,然後進行日誌備份。例如:
backup database click to disk='d:clickdb.bak' ---資料庫備份
backup log click to disk='d:clicklog.dbf' ----日誌備份
這裡要注意庫備份和日誌備份的先後順序,顛倒順序會出錯:
伺服器: 訊息 4326,級別 16,狀態 1,行 1
此備份集中的日誌終止於 LSN 27000000033600001,該 LSN 太早,無法應用到資料庫。包
LSN27000000033800001 的較新的日誌備份可以還原。
2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢復
restore database dbName from disk='fileName' with norecovery
例如:
restore database click from disk=''d:clickdb.bak' with norecovery
3,恢復最後一個日誌備份即剛做的日誌備份,指定恢復時間點到誤操作之前的時刻
restore log dbName from disk='fileName' with stopat='date_time'
例如:
restore log click from disk='d:clicklog.dbf' width recovery,stopat='2007-06-27 12:15:50'
現在已經將日誌前滾到合適的時間點,並使資料庫可供使用。請注意,STOPAT在資料庫正在執行大容量日誌時禁止執行
另外注意:執行時可能會提示
1、恢復模式不對,當前模式為簡單,要用alter database修改恢復模式的錯誤(第3步錯誤提示)
解決辦法 :
企業管理器--->當前資料庫右鍵--->屬性--->選項--->故障還原裡的模型選非簡單模式
2、伺服器: 訊息 3101,級別 16,狀態 1,行 1
因為資料庫正在使用,所以未能獲得對資料庫的排它訪問權(第2步錯誤提示)
解決辦法:
因為當前的資料庫正在使用,所以先連線到Master 資料庫,斷開要恢復的資料庫的所有連線(無法段開的就用kill),然後在Master 中再執行restore database click及第3步restore log click
例項:
1.進行一次完整備份
backup database test to disk='d:test.bak'
2.刪除test2表中的內容 時間是 2008-05-12 15:53:50
delete from test..test2
3.備份操作後的事務日誌
backup log test to disk='d:testlog.trn'
4.恢復開始的完整備份
restore database test from disk='d:test.bak' with norecovery
5.恢復刪除操作後的事務日誌,時間指定到刪除前的某個時間 2008-05-12 15:53:45
restore log test from disk='d:testlog.trn' with recovery,stopat='2008-05-12 15:53:45'
轉自網路:http://hi.baidu.com/wferp/blog/item/a5775013c2ff3c0b5aaf5331.html
http://hi.baidu.com/anydb/blog/item/5e1ac6ed512df8e4cf1b3e60.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/789833/viewspace-1039965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server無日誌資料庫恢復模式SQLServer資料庫模式
- Sql server日誌損壞後的資料恢復(轉)SQLServer資料恢復
- 通過事務日誌恢復SqlServer資料庫到一個特定的時間點SQLServer資料庫
- 利用binlog日誌恢復mysql資料MySql
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- SQL Server 2005資料庫日誌丟失的恢復SQLServer資料庫
- RMAN基於時間點恢復Oracle資料庫Oracle資料庫
- (個人)利用日誌挖掘恢復誤操作
- Mysql之binlog日誌說明及利用binlog日誌恢復資料操作記錄MySql
- 教你自動恢復MySQL資料庫的日誌檔案(binlog)MySql資料庫
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- oralce資料庫日誌檢視方法(整理轉載自網路)資料庫
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- ORACLE資料庫基於時間點的不完全恢復Oracle資料庫
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 利用undo進行資料的恢復操作
- 恢復到特定點(時間點、scn、日誌序列號),rman不完全恢復
- 利用MySQL日誌模擬恢復資料變化軌跡IIMySql
- MySQL重做日誌恢復資料的流程MySql
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- oracle歸檔日誌丟失後的資料庫恢復Oracle資料庫
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- RAC 資料庫恢復到單例項下並且基於時間點恢復資料庫單例
- Oracle叢集資料庫中恢復歸檔日誌Oracle資料庫
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 最佳化Oracle停機時間及資料庫恢復(轉)Oracle資料庫
- 資料誤操作,刪庫跑路?教你使用ApexSQLLog工具從 SQLServer日誌恢復資料!SQLServer
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- DM7使用DMRMAN恢復資料庫到指定時間點/LSN資料庫
- 利用RMAN恢復整個資料庫資料庫
- 利用日誌挖掘 oracle 不完全恢復 恢復誤刪除的表/資料/檢視等Oracle
- 大事務導致資料庫恢復時間長資料庫
- 無歸檔日誌恢復rman資料