ORACLE LOGFILE 和 SQL SERVER 2005 事務日誌管理和恢復的比較

luckyfriends發表於2014-11-12

原創,轉載請註明

   其實如果要說這類日誌的重要性,當然2個資料庫都知道它的重要性。也淡淡的說一下。日誌是進行資料庫恢復重要的組建。用於將資料庫恢復到故障點,也就是我們通常說的滾動,ORACLE叫他LOGFILE,而SQL SERVER 叫他事務日誌。

   ORACLE中有歸檔模式和非歸檔模式,而這對應了SQL SERVER 中的恢復模式的完整恢復模式和簡單恢復模式。完整恢復模式和歸檔模式都是支援恢復到故障點的,而非歸檔模式和簡單模式其實說白了都是不儲存各自資料庫的歷史LOGFILE和事務日誌,所以不能完成時間點恢復。

   在支援資料庫恢復到故障點上,也就是ORACLE的歸檔模式和SQL SERVER 完整恢復模式,ORACLE採用了多個LOGFILE GROUP,並且使用額外的進行ARCH來對logfile進行歸檔為ARCHIVE LOGFILELOGFILE GROUP是迴圈使用的。而SQL SERVER 沒有這樣靈活,SQL SERVER 中的事務日誌是在不段增長的。當然2者的思想其實是相同的。如果不對oracle ARCHIVE LOGFILE進行備份而刪除他那使用之前的備份是不能進行恢復的,而SQL SERVER也是一樣不過更狠,如果不進行事務日誌備份的話那事務日誌不會截斷,也就是不段增加,知道達到最大值。

   當進行基於時間點恢復的時候,ORACLE如果出現歸檔日誌斷點那將會出現錯誤,而SQL SERVER如果出現事務日誌備份斷點同樣不能恢復。

  

   下面是ORACLE RMAN恢復命令

   recover database until cancel;

   這個命令會自動使用控制檔案中最新的DATABASE backup。然後應用相應的歸檔日誌,知道最後一個。

   下面是SQL SERVER T-SQL恢復命令

   RESTORE DATABASE [mydw] FROM  DISK = N'D:\SQLSERVERTESTBAK\mydw.bak' WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  STATS = 10 用來恢復全備份

   GO

   RESTORE LOG [mydw] FROM  DISK = N'D:\SQLSERVERTESTBAK\mydwlogfile.bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 10 用來恢復事務日誌備份

   GO

  

  

  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-1329509/,如需轉載,請註明出處,否則將追究法律責任。

相關文章