一下内容都是从网上寻找到的资料,只是个人学习,多个资料合并成的。
和其他文档有相同的地方不要见怪。
Oracle数据库可以运行在两种模式下: 归档模式(archivelog)和非归档模式(noarchivelog).
归档模式&非归档模式区别 归档模式,可以在线|离线备份数据库,可以是全备份或者是部分备份(单个表空间|数据文件) 非归档模式,只能离线备份而且必须备份所有的数据文件,控制文件,日志文件 最大的区别是归档模式能够做到零数据丢失;当然归档会消耗一些存储和性能资源
归档模式工作方式:数据库有DML或其它事务处理时,日志写进程LGWR会把语句写入到日志文件LOG-A中, 然后数据库会把改的数据调到内存中,修改完成后(修改的事务也会被记录到LOG-A中),不知道在什么情况下,会把脏数据写回磁盘. LOG-A写满后切换日志:CKPT被触发,告知控制文件有日志且换发生,CKPT工作完成,数据库继续工作,新产生的日志会被写到LOG-B中,等LOG-B也被写满,切换日志,归档进程被唤起,LOG-A中的数据copy到一个文件里面(我是这么想的,我不知道这个文件叫什么名字)然后数据库的事务日志又源源不断的写到LOG-A中,按照这种工作方式,你的数据库即使出现问题也会被回复到down机前的最后一刻的状态
非归档模式不保存旧日志, LOG-A满后切换到LOG-B,LOG-B满后再切换回LOG-A,LOG-A中的旧数据会被覆盖.
1.查询系统当前归档模式sys@ora10g> archive log list;Database log mode Archive Mode (归档模式;如果是非归档模式,显示No Archive Mode)Automatic archival EnabledArchive destination /oracle/arch/ora10gOldest online log sequence 1525Next log sequence to archive 1527Current log sequence 1527
系统现处于归档模式
2.重新启动数据库到mount状态sys@ora10g> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.sys@ora10g> startup mount;ORACLE instance started.
Total System Global Area 209715200 bytesFixed Size 2071640 bytesVariable Size 125830056 bytesDatabase Buffers 75497472 bytesRedo Buffers 6316032 bytesDatabase mounted.
3.在mount状态下直接调整数据库到非归档模式sys@ora10g> alter database noarchivelog;
Database altered.
如果想从非归档模式调整到归档模式sys@ora10g> alter database archivelog;
4.OPEN数据库验证数据库归档模式sys@ora10g> alter database open;
Database altered.
sys@ora10g> archive log list;Database log mode No Archive Mode (非归档模式;如果是归档模式,显示Archive Mode)Automatic archival DisabledArchive destination /oracle/arch/ora10gOldest online log sequence 1525Current log sequence 1527
OK,此时系统已运行在非归档模式。