RAC开启数据库归档:

首先要确定归档存放的路径:

1.切换至grid用户下使用asmcmd命令查看要把归档存放到那个路径下

在节点1上执行上执行
[root@yang1 ~]#su - grid
[grid@yang1 ~]$sqlplus / as sysasm

SQL>select name from v$asm_diskgroup;

NAME
------------------------------
DATA
OCR
FRA


SQL>alter system set log_archive_dest_1='LOCATION=+RECOC1/yang/archivelog' scope=spfile sid='yang1';
Diskgroup altered.

SQL>alter system set log_archive_dest_1='LOCATION=+RECOC1/yang/archivelog' scope=spfile sid='yang2';
Diskgroup altered.

2. 使用shutdown immediate命令关闭节点的两个实例

节点yang1上执行

SQL>shutdown immediate

节点yang2上执行

SQL>shutdown immediate

3.开启归档模式

在yang1上执行

SQL>startup mount
SQL>alter database archivelog
Database altered.

SQL>archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination +RECOC1/yang/archivelog

Oldest online log sequence 48

Next log sequence to archive 50

Current log sequence 50

在节点一上修改成功。

节点yang2上执行执行

SQL>startup mount
SQL>alter database archivelog
Database altered.

SQL>archive log list

Database log mode No Archive Mode

Automatic archival Disabled

Archive destination +RECOC1/yang/archivelog

Oldest online log sequence 53

Current log sequence 55

4.打开数据库

节点yang1,yang2上分别执行
SQL>alter database open


5.验证归档文件成功生成在目标位置

节点yang1上执行

SQL>alter system switch logfile;
System altered.

[oracle@yang1 ~]$su - grid
[grid@yang1 ~]$asmcmd

ASMCMD>cd yang/archivelog/2018_11_29

ASMCMD> pwd

+RECOC1/RISKDB/archivelog/2018_11_29

ASMCMD> ls

thread_1_seq_55.41248.993493281

thread_1_seq_56.41243.993493295

thread_2_seq_49.41922.993492943

thread_2_seq_50.40857.993493383

thread_2_seq_51.41798.993493589

可以使用同样的方法验证节点是否成功。




按照此方法在节点yang2上执行alter system switch logfile并且多切换几次确定每次切换都有相对应的归档日志生成.

说明一点关于归档的路径问题:

如果在grid用户下没有设置归档的路径

oracle用户会把归档放在db_recovery_file_dest 会使用db_recovery_file_dest_size ,如果归档db_recovery_file_dest_size的大小满了,数据库会hang住。

db_recovery_file_dest string +RECOC1

db_recovery_file_dest_size big integer 5000000M