ORACLE LOGFILE 和 SQL SERVER 2005 事务日志管理和恢复的比较

原创,转载请注明

   其实如果要说这类日志的重要性,当然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

  

  

  

上一篇:9.3磁盘及文件系统管理详解


下一篇:Zookeeper服务注册与发现