ORACLE数据库ARCHIVELOG,NOARCHIVELOG模式转换简单总结,Redo Log(重做日志)Archive Log(归档日志)

前端之家收集整理的这篇文章主要介绍了ORACLE数据库ARCHIVELOG,NOARCHIVELOG模式转换简单总结,Redo Log(重做日志)Archive Log(归档日志)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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也称为联机日志
archivelog 为归档日志,是把redolog归档而来。先有redolog再有archivelog
oracle恢复时需要redolog和archivelog

日志文件分为重做日志文件(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模式转换简单总结

首先,什么是archivelog,noarchivelog模式。简单点说就是redolog是否归档。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

猜你在找的Oracle相关文章