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>