SQL>>
Database>
SQL>>
Database>
SQL>>
System>
SQL>> alter system archive log all
*
ERROR at line 1:
ORA-00271: there are no logs that need archiving --没有需要归档的日志
4.归档进程的调整
通过设置LOG_ARCHIVE_MAX_PROCESSES 参数,可以指定数据库规定所需初始化的进程数,缺省的归档进程数为2
一般情况下不需要修改该参数,Oracle会根据归档情况自动启动额外的归档进程
也可以动态的增加或减少归档进程数,比如有些业务在月底需要进行大量归档,平时则归档较少,对此可以动态修改
修改方法
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;
5.配置归档(两种归档位置配置方法)
a.归档到本机且少于等于两个归档位置
设置LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数
alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;
alter system set log_archive_duplex_dest = '/u01/app/oracle/archivelog2' scope = spfile;
b.归档到本机或远程主机
设置LOG_ARCHIVE_DEST_n 参数,n最大值为10
alter system set log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3';
alter system set log_archive_dest_2 = 'SERVICE=standby1';
对于远程归档位置,SERVICE选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置)
LOG_ARCHIVE_DEST_n的两个常用选项
MANADATORY | OPTIONAL:
MANADATORY表示归档必须成功复制到目的路径之后,联机重做日志才能被复用,OPTIONAL正好相反
REOPEN:
指定归档失败后指定间隔多少时间重试归案,缺省的为300秒
示例:
log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3 manadatory reopen = 600'
log_archive_dest_2 = 'SERVICE=standby1 manadatory reopen'
c.两种归档方法异同(前者log_archive_dest、log_archive_duplex_dest ,后者log_archive_dest_n)
两者都可以归档到本机,后者可以归档到远程主机,前者不支持该功能
前者最多配置两个归档位置,后者可以配置10个归档位置
两者互不兼容,要么使用前者,要么使用后者
使用后者归档到本地时需要增加LOCATION选项,备份到远程主机需要使用SERVICE选项
但上述两种方式未指定路径时,归档日志位于db_recovery_file_dest 缺省为$ORACLE_BASE/flash_recovey_area
d.归档日志命名格式
设置LOG_ARCHIVE_FORMAT参数,Unix下的缺省设置为LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf
%s: 日志序列号:
%S: 日志序列号(带有前导)
%t: 重做线程编号.
%T: 重做线程编号(带有前导)
%a: 活动ID号
%d: 数据库ID号
%r RESETLOGS的ID值.
alter system set log_archive_format = 'arch_%t_%s_%r.arc';
e.归档位置状态
Valid/Invalid --磁盘位置及服务名等是否有效
Enabled/Disabled --磁盘位置的可用状态及数据库能否使用该归档位置
Active/Inactive --访问归档目的地是否有异常
f.归档成功的最小个数(使用参数log_archive_min_succeed_dest = n)
alter system set log_archive_min_succeed_dest = 2; --缺省为1
联机重做日志组能够被覆盖的前提
所有强制路径归档位置成功实现归档
归档目的地的成功归档的个数大于或等于上述参数设定的值
当强制个数大于该参数设定的个数,则以强制个数为准
当强制个数小于该参数设定的个数,则可选的成功归档路径加上强制的归档路径个数至少等于该参数设定值
g.控制归档的可用性(使用参数log_archive_dest_state_n)
alter system set log_archive_dest_state_1 = enable | defer
enable -->缺省状态,可以在该归档位置进行归档
defer -->禁用该归档位置
h.演示归档路径配置及查看归档进程,归档位置状态
SQL> ARCHIVE LOG LIST; --查看日志是否处于归档状态
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
SQL> ho ps -ef | grep ora_arc --查看归档进程是否已启动
oracle 4062 1 0 11:43 ? 00:00:00 ora_arc0_orcl
oracle 4064 1 0 11:43 ? 00:00:00 ora_arc1_orcl
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
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_9 string enable
log_archive_duplex_dest string
log_archive_format string %t_%s_%r.dbf
log_archive_local_first boolean TRUE
log_archive_max_processes integer 2
log_archive_min_succeed_dest integer 1
log_archive_start boolean FALSE --该参数在9i中使用
log_archive_trace integer 0
remote_archive_enable string true
standby_archive_dest string ?/dbs/arch
SQL>>
System>
SQL>>
System>
SQL>> --设定完毕后需要重新启动实例,在此省略关闭启动信息
SQL> ho ls /u01/app/oracle/archivelog1 --查看归档路径下是否存在文件或文件夹
SQL> ho ls /u01/app/oracle/archivelog2 --查看归档路径下是否存在文件或文件夹
SQL>>
System> SQL> ho ls -l /u01/app/oracle/archivelog1 --在指定的文件夹archivelog1已产生归档日志
total 18224
-rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arc
SQL> ho ls -l /u01/app/oracle/archivelog2 --在指定的文件夹archivelog2已产生归档日志
total 18224
-rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arc
SQL> ho mkdir /u01/app/oracle/archivelog3 --创建新的归档路径
SQL> ho mkdir /u01/app/oracle/archivelog4 --创建新的归档路径
SQL>> 2 scope = spfile;
System> SQL> alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'
2 scope = spfile;
System> SQL> shutdown immediate; --关闭实例
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup --启动实例后,收到错误提示表明两种归档方式不兼容
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
--关于上述设置导致的错误处理请参照:又一例SPFILE设置错误导致数据库无法启动
SPFILE错误导致数据库无法启动
--下面是正确的处理办法,应当先将一种归档方式路径置空,此处是将log_archive_dest置空