1 归档和非归档的区别

归档会在redo 日志切换时,备份历史记录,对于oltp系统都应考虑归档模式,以便数据库能支持热备,并提供数据库完全恢复和不完全恢复的时间点。

归档会启用arcn的后台进程,也会占用磁盘空间

非归档适用某种静态库,测试库,或者可由远程提供数据恢复的数据库,非归档只能冷备,且仅能还原最好一次全备




2. 如何设置归档模式

一定要干净的关闭数据库,shutdown immediate

启动到mount 下  startup mount

设置归档方式  alter database archivelog

打开数据库 alter database open



3.路径及命名方法

当开启归档后,oracle 判断归档的的目的地时按照如下顺序选取

 1 log_archive_dest_n 值 或者是 log_archive_dest

 2 db_recover_file_dest 参数指定的位置

 3 $oracle_home/dbs 位置


路径可以通过archive log list 显示

oracle_体系第五章归档日志_第1张图片


archive destination(存档终点) 有两种情形 

 1  缺省是USE_DB_RECOVERY_FILE_dest,其含义是采用参数db_recover_file_dest 参数的定义,即闪回恢复区

 2 采用参数log_archive_dest_n 或log_archive_dest 指定的路径


show parameter archive


oracle_体系第五章归档日志_第2张图片


 首先看着两个参数,log_archive_dest  log_archive_foramt

log_archive_dest_n 表示可以有10个目标路径存放归档日志,即可多路复用10个归档日志的备份,如图显示 log_archvie_dest_1 也就是说只有一套归档日志,没有做镜像。

参数设定的格式如下


alter system set log_archive _dest_1='location=/u01/arch';


把历史日志归档到本机目录下,location 代表本机


alter system set log_archive_dest_2='server=standby';

这是远程备份,把历史日志备份到网络连接符为standby的数据库上,service 代表远程,配置DG 是使用


log_archvie_format 是定义命名格式的,一般考虑使用下面桑内置符合(模板)

%t thread 日志线程号

%s sequence 日志序列号

%r resetlog 代表数据库的周期



参数的设定格式如下:


alter system set log_archive_format='arch_%t_%r_%s.log scope=spfile;



还有两个参数 log_archive_dest 和log_archive_duplex_dest

这两个参数已经弃用了,他们能完成两路复用镜像,单 只能指定本地的location,无法指定远程

一旦使用log_archive_dest_n  log_archive_dest 参数就已经失效了


4 日志的进程和手动切换


归档进程是Arcn 在shell里执行 ps -ef | grep ora_arc 可以看到活动的进程

归档进程最多可达30个,有log_archive_max_processes 参数设定


手动切换日志

alter system switch logfile;

alter system archive log current (在rac下切换所有实列),仅适用于归档模式