有两种模式:
一:日志模式,日志模式的设置分为Archive
Mode和No
Archive
Mode.
二:自动归档模式:自动归档模式的设置分为:Enabled和Disabled
可用可用archive
log
list命令来查看数据库的现行日志和自动归档模式的设置.
希望对你有帮助.
日志在写满以后会自动进行切换的,当然没有写满时也可以进行手工方式强制切换 alter system switch logfile;
我以一个简单的举例来说明,如果认真掌握了的话,理解就很容易了.
两个工人,A工人专门做事情,B工人专门负责记录事情,A做了一件工作,B就用铅笔在总共三个笔记本上记录下来.当笔记本记录完一本后,已经记录不下了,就需要换一本笔记本,这就是日志切换.当第三本笔记本已经记完了,就需要回到第一本笔记本开始记录,把里面内容用橡皮擦擦掉,直接写满或者人为的手工切换.
为什么?如果不记录A工作做了什么事情,那谁会知道呢,怎么来查呢,如果工作失败了,需要重头开始做,怎么又来重新做一遍呢?为了保证数据库的可恢复性,所以呢引入了日志记录.如果数据库开启了归档,就能把时间更久的操作记录存到一个地方,数据库出错了,也能够从更久的地方恢复回来.
在stand by中,也是靠传送日志记录来实现同步的.
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数 据等,对这些操作都会记录在联机重做日志里.
①归档日志模式和非归档日志模式的区别
非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.
用ARCHIVE LOG LIST 可以查看期模式状态时归档模式还是非归档模式.
①当设置归档并且不是自动归档的时候需要手动归档,一般都不会这么设置的,都是设置自动归档 .
以上都是纯手动情况.
显示归档日志信息
①.,使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.
SELECT name,log_mode FROM v$database;
Select name, swquence#, first_change# FROM v$archived_log;
Name用于表示Oracle归归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.
SELECT destination FROM v$archive dest;
SELECT * FROM v$loghist;
THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.
进行日志切换时,ARCH进程会自动将重做日志内容复制到Oracle归归档日志中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!
SELECT * FROM v$archive_processes;
Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动,STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态