一、联机日志、联机日志组
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的内容