Oracle9i中有2种日志,一种称为 Redo Log(重做日志),另一种叫做Archive Log(归档日志)
重做日志redo log file是LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的。就是说一个redo log file(group) 写满后,才写下一个。
归档日志archive log是当数据库运行在归档模式下时,一个redo log file(group)写满后,由ARCn进程将重做日志的内容备份到归档日志文件下,然后这个redo log file(group)才能被下一次使用。不管数据库是否是归档模式,重做日志是肯定要写的。而只有数据库在归档模式下,重做日志才会备份,形成归档日志。
归档日志结合全备份,用于数据库出现问题后的恢复使用。
redolog也称为联机日志
日志文件分为重做日志文件(redo log file)和归档日志文件(archive log file)。
sql> select group#,status,member from v$logfile;
GROUP# STATUS MEMBER
---------- ------- --------------------------------------------------------------------------------
3 C:\ORACLE\ORADATA\ORCL\REDO03.LOG
2 C:\ORACLE\ORADATA\ORCL\REDO02.LOG
1 C:\ORACLE\ORADATA\ORCL\REDO01.LOG
redo log fiel有多个组group构成。一个group中能包括不止一个log file,日志信息是写到group的每个logfile中,所以一个group中的log file存储着一样的信息。当一个group写满之后就转到下一个group中,称之为日志切换。
当所有group都写满了后,就重头开始从第一个group开始,原来的内容将被覆盖丢失。如果不想被丢失,可以采用归档模式,即将数据保存到archive log file中。归档模式会给系统带来一定的性能问题。
查看database采用哪种模式:
sql> select dbid,name,log_mode from v$database;
DBID NAME LOG_MODE
---------- --------- ------------
1232416663 ORCL NOARCHIVELOG
归档日志路径由SPFILE的log_archive_dest参数确定。
sql> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
警告日志文件alert_sid.log保存着例行的信息和错误信息,它的路经是:
sql> select value from v$parameter where name='background_dump_dest';
VALUE
--------------------------------------------------------------------------------
c:\oracle\diag\rdbms\orcl\orcl\trace
sql> show parameter background_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string c:\oracle\diag\rdbms\orcl\orcl\trace
用户跟踪文件是oracle出现异常时自动创建的文本文件,它与警告文件一起构成了完整的故障信息描述体系。
sql> select value from v$parameter where name='user_dump_dest';
VALUE
--------------------------------------------------------------------------------
c:\oracle\diag\rdbms\orcl\orcl\trace
sql> show parameter user_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string c:\oracle\diag\rdbms\orcl\orcl\trace
出处:http://zhidao.baidu.com/question/359244586.html
==============================================================================================ORACLE数据库ARCHIVELOG,NOARCHIVELOG模式转换简单总结
档redolog并不是没有redolog。
archivelog,noarchivelog模式之间切换有几点要注意的地方。
1:是不是归档redolog有一个重要的开关
alterdatabasearchivelog;
alterdatabasenoarchivelog;
这个打开archivelog状态的语句必须在mount状态运行。
shutdownimmediate
startupmount
alterdatabasearchivelog
alterdatabaSEOpen
2:打开开关之后并不是就可以让系统自动归档,还有一个控制点,自动还是手动归档。
archivelogstart自动
archivelogstop手动
这个操作会改变
log_archive_start=true
这个参数控制 数据库 实例启动时是否启动归档过程通常为ora_arc0_sid,这个参数可以通过archivelog
start,或archivelogstop打开或关闭。
3:如果手动归档那么
altersystemswitchlogfile后系统并不自动把switch之前的log归档而是要手工归档。
altersystemarchivelogall
4:手工归档下要注意的问题
如果系统在几次日志组切换后,日志还没有归档,所有的onlineredologgroup都在未归档状态,那么
切换日志组的过程会挂住。这时要打开一个另一个窗口手工归档。看系统的log的常用语句
select*fromv$log
select*fromv$logfile