oracle利用重做日志文件记录对数据库的操作。可是重做日志文件组是循环使用的,当所有的日志文件都被填满时,系统自己主动切换到第一组日志文件,当然数据库管理员也能够使用命令手工切换。而在循环使用日志文件时,日志文件里已经存在的日志文件的内容将会被覆盖。

为了完整的记录数据库的所有操作,orale提出了归档日志的概念。



    假设是非归档日志模式,则切换日志文件时,日志文件里的内容将被新的内容覆盖。假设是归档日志模式,则切换日志文件时。系统会首先对日志文件进行归档存储,之
后才同意向文件里写入新的日志内容。‘
 
oracle有两种日志模式,
       非归档日志模式(noarchivelog)
在非归档日志模式下,假设发生日志切换,则日志文件里原有的内容将新的内容覆盖。
       归档模式(archivelog)
在归档日志模式下,假设发生日志切换,则oracle系统将日志文件通过复制保存到指定的地方,这个过程叫“归档”。复制保存下来的日志文件叫做“归档日志”。然后才允
许向文件里写入新的日志内容。



设置数据库模式
    在安装oracle时,默认设置数据库执行于非归档模式,这样能够避免对创建数据库的过程中生成的日志进行归档,从而缩短数据库的创建时间。在数据库成功执行之后,数据库管理员能够依据须要改动数据库的执行模式。
    假设要改动数据库的执行模式,能够使用例如以下语句:
    alter database archivelog|noarchivelog;
    当中,archivelog表示归档模式,noarchivelog表示非归档模式。




详细的操作例如以下:
SQL> connect c##scott/tiger as sysdba;
已连接。
SQL> archive log list;                 --查询当前数据库的日志模式
数据库日志模式             非存档模式
自己主动存档             禁用
存档终点            D:\oracle\app\Administrator\product\12.1.0\dbhome_1\RDBMS
最早的联机日志序列     68
当前日志序列           71
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;                   --启动数据库实例。但不打开数据库
ORACLE 例程已经启动。
Total System Global Area 2550136832 bytes
Fixed Size                  3048872 bytes
Variable Size             671091288 bytes
Database Buffers         1862270976 bytes
Redo Buffers               13725696 bytes
数据库装载完成。
SQL> alter database archivelog;    //归档模式操作
数据库已更改。


SQL> alter database open;
数据库已更改。
SQL> archive log list;
数据库日志模式            存档模式
自己主动存档             启用
存档终点            D:\oracle\app\Administrator\product\12.1.0\dbhome_1\RDBMS
最早的联机日志序列     68
下一个存档日志序列   71
当前日志序列           71
SQL>