oracle体系-8-归档日志

归档日志:archive log

1.归档日志和非归档日志的区别

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

 

2)归档会启用ARCn的后台进程、也会占用磁盘空间

 

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

2.归档进程

 

$ ps -ef |grep ora_arc

 

oracle    1215  2435  0 13:26 pts/2    00:00:00 grep ora_arc

 

oracle   31796     1  0 13:00 ?        00:00:00 ora_arc0_

 

oracle   31798     1  0 13:00 ?        00:00:00 ora_arc1_

 

ARCn就是归档进程,n最多可达30个,由log_archive_max_processes参数指定。

 

3.手动切换日志

 

第一种:SQL> alter system switch logfile;   仅切换当前实例,适用归档和非归档。

SYS@ prod>select name from v$archived_log

NAME
---------------------------------------------------------------------
/u01/arch/arch_1_880581688_10.log
/u01/arch/arch_1_880581688_11.log
/u01/arch/arch_1_880581688_12.log
/u01/arch/arch_1_883490264_1.log
/u01/arch/arch_1_883490264_2.log
/u01/arch/arch_1_883490264_3.log
/u01/arch/arch_1_883490264_4.log
/u01/arch/arch_1_883490264_5.log
/u01/arch/arch_1_883490264_6.log
/u01/arch/arch_1_883490264_7.log
/u01/arch/arch_1_883490264_8.log
/u01/arch/arch_1_883490264_9.log   ##切换后可以看到sequence号不断增长

 

第二种:SQL> alter system archive log current;   RAC下切换所有实例,仅适用于归档模式。

4.如何设置归档模式

 

1SQL> shutdown immediate   一定要干净的关闭数据库

 

2SQL> startup mount   启动到mount

 

3SQL> alter database archivelog;  ##归档模式     alter database no archivelog;##非归档模式            

 

4SQL> archive log list;   查看归档状态

    Database log mode           Archive Mode
    Automatic archival           Enabled
    Archive destination          /u01/arch/
    Oldest online log sequence      8
    Next log sequence to archive     10
    Current log sequence          10

 

5SQL> alter database open;   打开数据库

 

5.归档日志存放路径和优先级

1 log_archive_dest_n    手工指定归档目录

2 db_recover_file_dest   闪回区  (缺省是USE_DB_RECOVERY_FILE_DEST,其含义是采用参数db_recovery_file_dest参数的定义,即闪回恢复区)

  SQL> show parameter db_recovery

  oracle体系-8-归档日志_第1张图片

3$oracle_home/dbs     参数文件存放区

其中,这三种的优先级:log_archive_dest_n > db_recover_file_dest > $oracle_home/dbs

查看archive log 存放位置

oracle体系-8-归档日志_第2张图片

 

 

 

采用参数log_archive_dest_nlog_archive_dest指定的路径

 

SQL> show parameter archive

 

NAME                                  TYPE         VALUE

 

------------------------------------ ----------- --------------------------------------

 

archive_lag_target                   integer     0

 

log_archive_config                   string

 

log_archive_dest                     string

 

log_archive_dest_1                   string      location=/u01/arch

 

log_archive_dest_10                  string

 

log_archive_dest_2                   string

 

log_archive_dest_3

 

...

 

log_archive_duplex_dest           string

 

log_archive_format                   string      arch_%t_%r_%s.log

 

首先来看这两个参数:

log_archive_dest_n

log_archive_format

log_archive_dest_nn:1-10) 表示可以有10个目标路径存放归档日志(镜像关系),即可以多路复用10个归档日志的备份。如上显示我只使用了log_archive_dest_1,也就是说只有一套归档日志,没有做镜像。

参数设定的格式如下:

SQL> alter system set log_archive_dest_1='location=/u01/arch';

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

SQL> alter system set log_archive_dest_2='service=standby';

远程备份,把历史日志备份到网络连接符为standby的数据库上。(service 代表远程),配置DG时有用。

log_archive_format 是定义命名格式的,一般考虑使用下面三个内置符号(模板)

%t   thread# 日志线程号

%s   sequence 日志序列号

%r   resetlog 代表数据库的周期

参数设定的格式如下:

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

4)再来看看这两个参数:

log_archive_dest

log_archive_duplex_dest

这两个参数已经弃用了,它们能完成两路复用(镜像)但只能指定本机location,无法指定远程。

一旦使用log_archive_dest_nlog_archive_dest参数就失效了。

 

你可能感兴趣的:(oracle体系-8-归档日志)