Archivelog和Noarcivelog
Noarcivelog是指重做日志不进行备份可以覆盖使用的模式,它只能保护实例失败(恢复到最近备份),不能保护介质失败。
Noarcivelog特点:
a) 当检查点完成后,LGWR可覆盖原有重做日志内容
b) 如果在数据库备份之后的重做日志已被覆盖,当前数据文件出现介质失败只能恢复到过去的完全备份点
c) 数据库OPEN状态下,不能备份数据库
d) 执行备份时,必须使用shutdown normal,shutdown immediate,shutdown transaction 执行一致性关闭数据库
e) 必须备份所有数据及控制文件
Archivelog是指保留重做日志历史记录的日志操作模式。它既可保护实例失败也可保护介质失败。
arcivelog特点:
a) 当出现介质失败(文件损坏、磁盘损坏)可防止丢失数据;
b) 数据库处于OPEN状态时可正常备份数据库,不影响使用;
c) 数据文件出现介质失败时,除SYSTEM表空间,其他表空间的数据文件均可在OPEN状态下恢复
d) 执行数据库恢复时,不仅可以执行完全恢复,也可执行不完全恢复。
改变日志模式:
1) 查看当前数据库日志模式:
a. select log_mode from v$database;
b. archive log list
2) shutdwon immediate;
3) startup mount;
4) alter database archivelog;
5) alter database open;
查看进程会发现已自动启动ARCn进程,10G默认启动两个ARCn进程;在10G之前,要保证自动启动此进程,必须指定log_archive_start为true.
一些初始化参数:
默认情况下归档日志保存在快速恢复区,由参数db_recovery_file_dest指定,大小2G.
1. 归档日志的名称格式:
Unix下的缺省设置为LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf
%s: 日志序列号:
%S: 日志序列号(带有前导)
%t: 重做线程编号.
%T: 重做线程编号(带有前导)
%a: 活动ID号
%d: 数据库ID号
%r RESETLOGS的ID值.
此参数是静态参数,且必须指定%s, %t and %r,否则报以下错:SQL> startup
ORA-19905: log_archive_format must contain %s, %t and %r。如果归档存放在快速恢复区,则格式不受此参数限制。
2. 配置归档文件的位置:
可选用log_archive_dest、 log_archive_duplex_dest和log_archive_dest_n
区别:
a. log_archive_dest、 log_archive_duplex_dest仅能用于本地,log_archive_dest_n可用于本地也可用于网络;
b. log_archive_dest_n可配置10个,log_archive_dest、 log_archive_duplex_dest仅能配置两个;
c. 两参数是互斥的,不能同时配置。
log_archive_dest_n配置本地时使用location指定,远程时使用servicer指定。
Alter system set log_archive_dest_1=’location=/opt/app/oracle/archivelog1’;
Alter system set log_archive_dest_2=’location=/opt/app/oracle/archivelog2’
Alter system set log_archive_dest_3=’service=standby’ ---此处的standby需要在tnsnames.ora文件中配置
log_archive_dest_n的其他选项:
optional:默认选项,无论归档是否成功,都可以覆盖重做日志。
Mandatory:强制归档,只有在归档成功以后,重做日志才能被覆盖。
Reopen:用于指定重新归档的时间间隔,默认为300S,reopen属性必须跟在Mandatory选项后。
Alter system set log_archive_dest_1=’location=/opt/app/oracle/archivelog1 Mandatory’;
Alter system set log_archive_dest_1=’location=/opt/app/oracle/archivelog1 Mandatory reopen=400’;
3. 配置归档位置可用性:
通过修改log_archive_dest_state_n参数,enable默认值,defer禁用
禁用:alter system set log_archive_dest_state_1=DEFER;
开启:alter system set log_archive_dest_state_1=ENABLE;
4. 配置归档进程:
log_archive_max_processes参数默认为2,可手动修改些参数动态的改变归档进程的个数
alter system set log_archive_max_processes=3;
5. 配置归档成功的最小个数:
log_archive_min_succeed_dest参数默认为1.
alter system set log_archive_min_succeed_dest=2;
成功归档的个数小于2时,重做日志将不能被覆盖。
log_archive_dest、 log_archive_duplex_dest是为了兼容之前版本而设置,设置了两个参数后在log_archive_dest、 log_archive_duplex_dest位置会生成一模一样的两个备份。
Alter system set log_archive_dest=’ /opt/app/oracle/archivelog3’;
Alter system set log_archive_duplex_dest=’ /opt/app/oracle/archivelog4’;
相关视图:
V$archived_log:显示归档的详细信息:
SQL> col name format a65;
SQL> select name,sequence#,first_change# from v$archived_log;
v$archive_dest:显示归档位置:
SQL> col dest_name format a20;
SQL> col destination format a30;
SQL> select dest_name,destination,status from v$archive_dest;
V$loghist:显示历史信息:
v$archive_processes:显示归档的进程信息;