To clone a pluggable database, from an object storage backup, into a container database running in a dbsystem, proceed as follow.
#1 Install the backup library
#2 Merge the source wallet into the destination wallet
See this note for instructions
#3 Generate the XML file from the backup
python /home/oracle/bkp/lib/odbsrmt.py --mode=rman-listfile --credential='<username>'/'<auth token>' --host=https://swiftobjectstorage.<region>.oraclecloud.com/v1/<namnespace> --container=<oss bucket> --forcename=duplicate_db.xml --dir=/home/oracle/bkp --dbid=<dbid>
#4 Restart the database in NOMOUNT
srvctl stop database -d <dbu>
sqlplus / AS SYSDBA <<EOF
STARTUP NOMOUNT;
EOF
#5 run the duplicate command
This command will restore, into the container, the pdb “pdb1”
rman <<EOF
CONNECT AUXILIARY /
SET DECRYPTION IDENTIFIED BY 'welc0me0SC##';
run {
ALLOCATE AUXILIARY CHANNEL c1 DEVICE TYPE sbt PARMS 'SBT_LIBRARY=/home/oracle/bkp/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/oracle/bkp/config)';
ALLOCATE AUXILIARY CHANNEL c2 DEVICE TYPE sbt PARMS 'SBT_LIBRARY=/home/oracle/bkp/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/oracle/bkp/config)';
ALLOCATE AUXILIARY CHANNEL c3 DEVICE TYPE sbt PARMS 'SBT_LIBRARY=/home/oracle/bkp/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/oracle/bkp/config)';
ALLOCATE AUXILIARY CHANNEL c4 DEVICE TYPE sbt PARMS 'SBT_LIBRARY=/home/oracle/bkp/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/oracle/bkp/config)';
DUPLICATE DATABASE TO wcccdb PLUGGABLE DATABASE pdb1 , ROOT BACKUP LOCATION FROM FILE '/home/oracle/bkp/duplicate_db.xml';
}
EOF