Oracle数据库启用归档日志模式

Oracle认是不使用归档日志模式的,这里介绍两种设置归档日志存储路径的方法,并说明如何开启归档日志模式。

环境: Orale 12c

步骤:

1. 设置归档日志存储路径

设置归档日志存储路径有两种办法,使用LOG_ARCHIVE_DEST_N或者FRA

1.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数据库管理》

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...