重做日志(redo log file)搜LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的。就是说一个redo log file(group)写满后,才写下一个。
归档日志archive log是当数据库运行在归档模式下时,一个redo log file(group)写满之后,有ARCn进程将重做日志的内容备份到归档日志文件下,然后这个
redo log file(group)才能被下一次使用。
不管数据库是否是归档模式,重做日志是肯定要写的。而只有数据库在归档模式下,重做日志才会备份,形成归档日志。
一般来说,归档日志结合数据库的全备份,用于数据库出现问题后的恢复使用。
重做日志是循环使用的。比如说,有三个重做日志组A,B,C。那么,当A写满之后,系统调用ARCn进程,将A备份为归档日志,同时B已经开始使用了。
假如你只有A,B两个组,如果某种情况下A正在备份,未结束,还不能继续使用,而B也写满了,这个时候数据库就会出现挂起的现象。所以一般情况下,重做日志最好是
三个组或者再多一点,而且大小要适当。
归档日志和重做日志都是物理上的文件,只是存放的目录不同,而且重做日志文件的文件名不变,归档日志的文件名是备份时系统生成的。
重做日志备份为归档日志后,系统会把重做日志的内容清空,但文件依然存在,准备下一次使用。
重做日志记录了你所有做过的dml,重做日志循环使用,写满一轮后就要覆盖前面的。如果你是用热备模式,当重做日志写满一个后就将内容写入归档日志,以备将来
恢复数据用。
只有数据库运行在归档模式下,并且初始化参数ARCHIVE_LOG_START等于TRUE时,ARCn进程才能被启动,进行自动归档。