12C之后的容器数据库下的PDB都共用CDB的归档模式,要么所有pdb为归档模式,要么都不归档。所以开启归档只能在CDB中操作。
1.确认当前CDB 归档模式
SQL> archive log list; #当前为非归档模式
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/19.3.0.0/db_1/dbs/arch
Oldest online log sequence 11
Current log sequence 13
2.将归档路径改到asm(如asm中没有相应路径可手动建)
SQL> alter system set log_archive_dest_1=‘location=+ARCH’ scope=spfile sid=‘*’;
#修改归档日志路径到asm
3.将两个节点的CDB-orcl都关掉
[grid@hisdb1 ~]$ srvctl stop database -d orcl
4.将节点一的cdb启动到mount状态
[grid@hisdb1 ~]$ srvctl start instance -d orcl -i orcl1 -o mount
5.在节点一上将CDB置于归档模式,并将节点一OPEN
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
6.然后在将节点二启动
[grid@hisdb1 ~]$ srvctl start instance -d orcl -i orcl2
7.验证
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +ARCH
Oldest online log sequence 601
Next log sequence to archive 602
Current log sequence 602
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 DBSERVER READ WRITE NO
SQL> alter system archive log current;
System altered.
Asm中已经产生归档
[grid@hisdb1 ~]$ asmcmd
ASMCMD> cd arch
ASMCMD> ls
ORCL/
ASMCMD> cd orcl
ASMCMD> ls
ARCHIVELOG/
ASMCMD> cd archivelog
ASMCMD> ls
2022_10_25/
ASMCMD> cd 2022_10_25
ASMCMD> ls
thread_1_seq_602.258.1119038599
thread_2_seq_799.256.1119038501
thread_2_seq_800.257.1119038599