Oracle原理: 归档方式和日志文件

一、联机日志、联机日志组

oracle联机重做日志放在了 /oracle/oradata/orcl下,有3个REDO.log,记录了对数据库的所有的操作。用户在对数据库进行操作时,后台进程LGWR就会把日志缓冲区的重做条目就会写到重做日志里面。当数据库意外宕机重启后,重做日志就能派上用场了。数据库启动时,先前滚,再回滚。达到了宕机前已提交了事物都不会丢失,未提交的事物都不会保留。

 归档日志文件就是联机重做日志文件的备份,联机重做日志文件又称为在线日志文件,联机日志文件。

日志是通过联机日志组来组织,一个oracle会打开两个日志文件组,一个日志组有很多可写的日志文件,当一个日志组写满时就会切换到下一个日志组继续写日志。全部写满时,有会开始写第1个日志组,循环进行。 v$log 动态视图可看日志文件组信息。同一个日志组下的日志文件大小相同,不同日志组的大小可以不同。

二、归档方式和非归档方式的含义 

 当数据库为非归档方式时:当联机日志组切换时,写满的联机日志组(被切换的日志组)中的日志信息就会呗丢弃。缺少了日志的部分就会无法进行数据库信息恢复。此方式可以避免实例故障,如宕机,但是没法避免介质故障,如硬盘损坏。

当数据库为归档模式时:那么所有的日志都会被保留下来,写满的日志组会被后台进程ARCH归档到归档目录。用户可以再次模式下完全恢复数据库。默认的归档日志文件路径为..\flash_recovery_area\orcl\ONLINELOG  。手动切换归档日志:alter system switch logfile; 

三、Oracle归档方式的调整

----角色为SYSDBA----
archive log list; ---查看数据库归档状态
shutdown immediate;   --关闭数据库
startup mount;        --装载数据库
alter database archivelog; --设置归档模式,非归档为noarchivelog
alter database open;  --打开数据库
archive log list;

四、日志文件、日志文件组、归档信息的查询

select * from v$log  ; --查询日志组
select * from v$logfile;   --查询日志
select * from v$archived_log --查询已归档的日志

alter database add logfile member 'D:\ORACLE\ORADATA\ORCL\REDOTEST.LOG' to group 1;  --添加日志文件到组
alter database add logfile group 4 'D:\ORACLE\ORADATA\ORCL\REDOTEST.ora' size 10M;  --添加日志组
SHOW PARAMETERS log_archive_dest; --查看归档日志位置信息


archive log list; ---查看数据库归档状态
alter system switch logfile; --手动切换归档日志
 alter system set  log_archive_dest_1 = 'location=D:\oracle\testlog'; --更改归档日志路径位置

alter system set  log_archive_dest_state_9 = 'defer'; --停用归档日志9,允许用enable

当组状态为INACTIVE时日志文件组可以被清除,清除后状态变成Unused;

alter database clear logfile group 2; --清空日志组2的内容

猜你喜欢

转载自blog.csdn.net/superSmart_Dong/article/details/106737770