When trying to create PDB snapshots in 18c I ran into the ORA-12754 and below is how I resolved by enabling “_exadata_feature_on” parameter.
[oracle@3d9c27cdf1af ~]$ sqlplus '/as sysdba'
SQL*Plus: Release 18.0.0.0.0 - Production on Wed Apr 24 15:23:54 2019
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB18C READ WRITE NO
SQL> alter session set container = pdb18c;
Session altered.
SQL> select snapshot_mode,snapshot_interval/60 from dba_pdbs;
SNAPSH SNAPSHOT_INTERVAL/60
------ --------------------
MANUAL
SQL> alter pluggable database snapshot mode every 2 hours;
alter pluggable database snapshot mode every 2 hours
*
ERROR at line 1:
ORA-12754: Feature PDB SNAPSHOT CAROUSEL is disabled due to missing capability
.
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 18.0.0
noncdb_compatible boolean FALSE
SQL> alter session set container=cdb$root;
Session altered.
SQL> alter system set "_exadata_feature_on"=true scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 1610612704 bytes
Fixed Size 8896480 bytes
Variable Size 520093696 bytes
Database Buffers 1073741824 bytes
Redo Buffers 7880704 bytes
Database mounted.
Database opened.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB18C READ WRITE NO
SQL> alter session set container = pdb18c;
Session altered.
SQL> alter pluggable database snapshot mode every 2 hours;
Pluggable database altered.
SQL> select snapshot_mode,snapshot_interval/60 from dba_pdbs;
SNAPSH SNAPSHOT_INTERVAL/60
------ --------------------
AUTO 2
SQL> set linesize 200
SQL> col con_name format a10
SQL> col snapshot_name format a30
SQL> col full_snapshot_path format a80
SQL> select con_id, con_name, snapshot_name, snapshot_scn as snap_scn, full_snapshot_path from dba_pdb_snapshots order by snap_scn;
CON_ID CON_NAME SNAPSHOT_NAME SNAP_SCN FULL_SNAPSHOT_PATH
---------- ---------- ------------------------------ ---------- --------------------------------------------------------------------------------
3 PDB18C SNAP_2457449251_1006442953 2051964 /u01/app/oracle/oradata/ORCL18/PDB18C/snap_2457449251_2051964.pdb
SQL> COLUMN pdb_name FORMAT A10
SQL> COLUMN snapshot_mode FORMAT A15SQL>
SQL> SELECT p.con_id, p.pdb_name, p.snapshot_mode, p.snapshot_interval
FROM cdb_pdbs p
ORDER BY 1;
CON_ID PDB_NAME SNAPSHOT_MODE SNAPSHOT_INTERVAL
---------- ---------- --------------- -----------------
2 PDB$SEED MANUAL
3 PDB18C AUTO 120
SQL> alter session set container=PDB18C;
Session altered.
# Create a manual snapshot
SQL> ALTER PLUGGABLE DATABASE SNAPSHOT my_snapshot;
Pluggable database altered.
SQL> set linesize 200
SQL> col con_name format a10
SQL> col snapshot_name format a30
SQL> col full_snapshot_path format a80
SQL> select con_id, con_name, snapshot_name, snapshot_scn as snap_scn, full_snapshot_path from dba_pdb_snapshots order by snap_scn;SQL> SQL> SQL> SQL>
CON_ID CON_NAME SNAPSHOT_NAME SNAP_SCN FULL_SNAPSHOT_PATH
---------- ---------- ------------------------------ ---------- --------------------------------------------------------------------------------
3 PDB18C SNAP_2457449251_1006442953 2051964 /u01/app/oracle/oradata/ORCL18/PDB18C/snap_2457449251_2051964.pdb
3 PDB18C MY_SNAPSHOT 2055024 /u01/app/oracle/oradata/ORCL18/PDB18C/snap_2457449251_2055024.pdb