1. 归档和非归档的区别
1)归档会在日志切换时,备份历史日志,对于 OLTP 系统都应考虑归档模式,以便数据库能 支持热备,并提供数据库完全恢复和不完全恢复(基于时间点)
2)归档会启用 arcn 的后台进程、也会占用磁盘空间
3)非归档适用某种静态库、测试库、或者可由远程提供数据恢复的数据库。
非归档只能冷备, 且仅能还原最后一次全备。归档可以恢复到最后一次 commit
2. 路径及命名方法
2.1 查看归档模式
可以通过 archive log list 命令显示
SYS@PROD>archive log list
查看归档模式也可以查 v$database SYS@PROD>select name,log_mode from v$database;
2.2 归档路径选择
Oracle 判断归档目的地时按如下顺序优先择取
①log_archive_dest_n 值或 log_archive_dest 值 优先级最高
②db_recover_file_dest 参数指定的位置(快速恢复区)
③$ORACLE_HOME/dbs 参数指定的位置
SYS@PROD>show parameter log_archive_dest SYS@PROD>show parameter db_recovery_file_dest SYS@PROD>! echo $ORACLE_HOME/dbs
【log_archive_dest_1】
把历史日志归档到本机目录下: location 代表本机,service 代表远程,配置 DG 时有用。 SYS@PROD>show parameter log_archive_dest_1 SQL> alter system set log_archive_dest_2='service=standby'; 远程备份,把历史日志备份到网络连接符为 standby 的数据库上。
【log_archive_format】
log_archive_format 是定义命名格式的,一般考虑使用下面三个内置符号(模板) %t thread# 日志线程号 %s sequence 日志序列号 %r resetlog 代表数据库的周期 参数默认设定的格式如下: SYS@PROD>show parameter log_archive_format
3. 开归档 设置归档模式
3.1 创建目录 赋予权限
[oracle@jeames ~]$ mkdir -p /u01/app/oracle/arch [oracle@jeames ~]$ ls -ld /u01/app/oracle/arch
SYS@PROD>alter system set log_archive_dest_1='location=/u01/app/oracle/arch'; SYS@PROD>show parameter log_archive_dest_1 设置归档文件命名格式(静态参数,scope=spfile,重启后生效) SYS@PROD>alter system set log_archive_format='arch_PROD_%t_%s_%r.dbf' scope=spfile;
3.3 正常关库,启动到 mount 状态
SYS@PROD>shutdown immediate; SYS@PROD>startup mount; SYS@PROD>archive log list
3.4 开归档 开库
SYS@PROD>alter database archivelog; SYS@PROD>alter database open; SYS@PROD>archive log list;