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也写满了,这个时候,数据库就会出现挂起的情况。所以一般情况下,重做日志最好是三个组或者再多一点,而且大小要适当。
实际上,一个重做日志组满了后,就开始写入归档日志。不是等ABC都写满了,再归档,这样肯定就是出现挂起的情况了,Oracle不是这样的,归档日志和重做日志都是物理上的文件,只是存放的目录不同,而且重做日志的文件名不变,而归档日志的文件名是备份时系统生成的。
重做日志备份为归档日志后,系统就会把重做日志的内大绝容清空,但文件依然存在,准备下一次使用。
重做日志纪录了你所有做过的dml语句,重做日志循环使用,写满一轮后就要覆盖前面的。如果你是用热备模式,当重做日志写满一个后就将内容写入归档日志,以备将来恢复数据用。
只有数据库运行在归档模式并且初始化参数ARCHIVE_LOG_START等于TRUE时,ARCn进程才能被启动,进行自动归档。
如果数据库运行在归档模式但ARCHIVE_LOG_START等于FALSE时,需要DBA手工归档。
重做日志文件也叫联机日志文件,一般数据库有几个日志文件(例如有三个,编号分别为1,2,3)先写1,当1满时再写2,当2满时再写3,当3满时1就归
档出来,产生一个文件写到磁盘上,这个文件就叫归档日志文件.1归档出来后,新的联机日志文件又写到1中,将原来的覆盖,(即联机日志是循环使用的).一
般当产生一个检查点或联机日志写满一定程度时会产生一个归档日志文件.
一、NO ARCHIVELOG数据库有联机重做日志,这个日志是记录对数据库所做的修改,比腔猜如插入,删除,更新数据等,对这些 *** 作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
二、ARCHIVELOG
基本情况和上面是一致的,唯一不同在于,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
他们的区别在于一个归档,一个不归档。数据库使用归档方式运行时才可以进行侍圆雀灾难性恢复。老早
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)