Oracle默认是不使用归档日志模式的,这里介绍两种设置归档日志存储路径的方法,并说明如何开启归档日志模式。
环境: Orale 12c
步骤:
sql> alter system set log_archive_dest_1='location=/home/oracle/archlog/orcl' scope=both;
sql> alter system set log_archive_format='orcl_%t_%s_%r.arc' scope=spfile;
sql> show parameter log_archive_dest
NAME TYPE VALUE
---------------------- ---------- ------------------------------
log_archive_dest string
log_archive_dest_1 string location=/home/oracle/archlog/orcl
log_archive_dest_10 string
...
上面命令中的location就表示归档日志的位置。log_archive_format指定了日志格式,%t是线程号,%s是日志序列号,%r是Resetlogs ID,可以自定义格式。
sql> alter system set db_recovery_file_dest_size=20G scope=both;
sql> alter system set db_recovery_file_dest='/home/oracle/fra' scope=both;
sql> show parameter db_recovery_file_dest;
NAME TYPE VALUE
-------------------------- ----------- -----------------
db_recovery_file_dest string /home/oracle/fra
db_recovery_file_dest_size big integer 20G
那么日志只会归档到LOG_ARCHIVE_DEST_N指定的目录里,而不会归档到FRA目录里,如果想要两个地方都归档,可以如下设置
sql> alter system set log_archive_dest_1='location=/home/oracle/archlog/orcl' scope=both;
sql> alter system set log_archive_dest_2='location=USE_DB_RECOVERY_FILE_DEST';
Tip2: 已经设置了FRA的情况下,如何取消FRA?
sql> alter system reset db_recovery_file_dest;
sql> alter system reset db_recovery_file_dest_size;
sql> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /home/oracle/archlog/orcl
Oldest online log sequence 1
Current log sequence 3
或者使用select log_mode from v$database:
sql> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
sql> shutdown immediate;
sql> startup mount;
sql> alter database archivelog;
sql> alter database open;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/archlog/orcl
Oldest online log sequence 1
Next log sequence to archive 3
Current log sequence 3
在使用了一些日志之后,在/home/oracle/archlog/orcl目录下生成了两个归档文件,名子为orcl_1_3_968797779.arc和orcl_1_4_968797779.arc
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 2 Current log sequence 2 在使用了一些日志之后,生成了一个归档文件,全名为 /home/oracle/fra/ORCL/archivelog/2018_02_23/o1_mf_1_2_f906v40g_.arc ======= 当然,也可以不设置LOG_ARCHIVE_DEST_N或者FRA,直接开启归档模式,它有默认的目录。 参考资料 《深入理解Oracle 12c数据库管理》
原文链接:https://www.f2er.com/oracle/206410.html环境: Orale 12c
步骤:
1. 设置归档日志存储路径
设置归档日志存储路径有两种办法,使用LOG_ARCHIVE_DEST_N或者FRA1.1使用LOG_ARCHIVE_DEST_N
假定使用了spfile(如果没使用,需要手动配置init<SID>.ora文件),在sqlPlus里使用alter system命令:sql> alter system set log_archive_dest_1='location=/home/oracle/archlog/orcl' scope=both;
sql> alter system set log_archive_format='orcl_%t_%s_%r.arc' scope=spfile;
sql> show parameter log_archive_dest
NAME TYPE VALUE
---------------------- ---------- ------------------------------
log_archive_dest string
log_archive_dest_1 string location=/home/oracle/archlog/orcl
log_archive_dest_10 string
...
上面命令中的location就表示归档日志的位置。log_archive_format指定了日志格式,%t是线程号,%s是日志序列号,%r是Resetlogs ID,可以自定义格式。
1.2使用FRA
FRA是磁盘上设置的一块区域,不仅可以存储归档日志,还可以存放RMAN备份文件等。sql> alter system set db_recovery_file_dest_size=20G scope=both;
sql> alter system set db_recovery_file_dest='/home/oracle/fra' scope=both;
sql> show parameter db_recovery_file_dest;
NAME TYPE VALUE
-------------------------- ----------- -----------------
db_recovery_file_dest string /home/oracle/fra
db_recovery_file_dest_size big integer 20G
上面的命令将FRA路径设置为/home/oracle/fra,总大小最多20G
Tip1:如果两者(LOG_ARCHIVE_DEST_N和FRA)都设置了,会归档到哪里?那么日志只会归档到LOG_ARCHIVE_DEST_N指定的目录里,而不会归档到FRA目录里,如果想要两个地方都归档,可以如下设置
sql> alter system set log_archive_dest_1='location=/home/oracle/archlog/orcl' scope=both;
sql> alter system set log_archive_dest_2='location=USE_DB_RECOVERY_FILE_DEST';
Tip2: 已经设置了FRA的情况下,如何取消FRA?
sql> alter system reset db_recovery_file_dest;
sql> alter system reset db_recovery_file_dest_size;
2. 查看归档模式
archive log list命令可以看到,使用的是非归档模式:sql> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /home/oracle/archlog/orcl
Oldest online log sequence 1
Current log sequence 3
或者使用select log_mode from v$database:
sql> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
3. 启用归档模式
启用归档模式需要把数据库启动到mount状态,然后使用alter database archivelog命令开启:sql> shutdown immediate;
sql> startup mount;
sql> alter database archivelog;
sql> alter database open;
3.1 如果采用的是LOG_ARCHIVE_DEST_N,结果如下:
sql> archive log list;Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/archlog/orcl
Oldest online log sequence 1
Next log sequence to archive 3
Current log sequence 3
在使用了一些日志之后,在/home/oracle/archlog/orcl目录下生成了两个归档文件,名子为orcl_1_3_968797779.arc和orcl_1_4_968797779.arc
3.2 如果采用的是FRA,结果如下(另一个系统):
sql> archive log list;Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 2 Current log sequence 2 在使用了一些日志之后,生成了一个归档文件,全名为 /home/oracle/fra/ORCL/archivelog/2018_02_23/o1_mf_1_2_f906v40g_.arc ======= 当然,也可以不设置LOG_ARCHIVE_DEST_N或者FRA,直接开启归档模式,它有默认的目录。 参考资料 《深入理解Oracle 12c数据库管理》