归档模式archivelog&非归档模式noarchivelog

重做日志有两种类型,一种是归档模式,一种是非归档模式
书上是这么说的,归档模式就是保存所有的事务日志,相反非归档就是不保存旧事务日志。
我理解归档模式是这么工作的:当有对数据库有dml和其它的事务处理的时候,日志写进程LGWR会把你的语句写入到日志文件LOG-A中,然后数据库会把你需要该的数据调到内存中,等修改完成后(修改的事务也会被记录到LOG-A中),不知道在什么情况下,会把脏数据写回磁盘。等LOG-A被写满后,发生日志且换,此时CKPT会被触发,CKPT告知控制文件有日志且换发生,等CKPT工作完后,数据库又开始工作了,新产生的日志会被写到LOG-B中,等 LOG-B也被写满了,又要发生且换了,此时归档进程会被唤起,LOG-A中的数据要被copy到一个文件里面(我是这么想的,我不知道这个文件叫什么名字),然后数据库的事务日志又源源不断的写到LOG-A中,按照这种工作方式,你的数据库即使出现问题也会被回复到down机前的最后一刻的状态。
非归档是不保存就日志的,就是LOG-A满后且换到LOG-B(不知道此时脏数据会不会被写回磁盘?),LOG-B满后再且换回LOG-A此时,LOG- A中的旧数据会被覆盖。

 

查看当前的归档类型:

select  LOG_MODE  from v$database;

 

你可能感兴趣的:(工作,数据库,database,磁盘)