Those days, I was testing if it is possible to create a snapshot sparse clone in one database referencing a PDB on a lower release (like 19.11), and later applying datapatch on this cloned PDB to take it to the higher release (like 19.12).
Technically I couldn't see any constraint, given the Snapshot Copy requirements are already met. But nothing better than testing to check if something works.
So let's try it!
- Source DB:
-
- CDB: RJ1911
- PDB: PDB1911
- Target DB:
- CDB: RJ1912
- PDB: PDB1912
Preparing the source (19.11):
[oracle@exacs-c0gab1 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 9 18:01:44 2021 Version 19.11.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.11.0.0.0 SQL> CREATE PLUGGABLE DATABASE PDB1911 file_name_convert=('+DATAC1','+SPRC1') 2 ADMIN USER myadm IDENTIFIED BY password ROLES=(DBA); Pluggable database created. SQL> ALTER PLUGGABLE DATABASE PDB1911 OPEN; Pluggable database altered. SQL> CREATE USER c##pdb_clone_user IDENTIFIED BY "Rodrigo.12345" CONTAINER=ALL; User created. SQL> GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##pdb_clone_user CONTAINER=ALL; Grant succeeded. SQL> alter pluggable database PDB1911 close; Pluggable database altered. SQL> alter pluggable database PDB1911 open read only; Pluggable database altered. SQL>
Now connecting on the target (19.12):
[oracle@exacs-c0gab1 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 9 18:05:03 2021 Version 19.12.0.0.0 Copyright (c) 1982, 2021, Oracle. All rights reserved. Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.12.0.0.0 SQL> CREATE DATABASE LINK RJ1911 2 CONNECT TO c##pdb_clone_user IDENTIFIED BY "Rodrigo.12345" 3 USING 'exacs-c0gab-scan.x.x.oraclevcn.com:1521/RJ1911.x.x.oraclevcn.com'; Database link created. SQL> select * from dual@RJ1911; D - X SQL> CREATE PLUGGABLE DATABASE PDB1912 FROM PDB1911@RJ1911 snapshot copy create_file_dest='+SPRC1'; Pluggable database created. SQL> alter pluggable database PDB1912 open; Warning: PDB altered with errors. SQL> set lines 10000 pages 10000 tab off SQL> select * from pdb_plug_in_violations where name='PDB1912'; TIME NAME CAUSE TYPE ERROR_NUMBER LINE MESSAGE STATUS ACTION CON_ID ------------------------------- --------- ------------------------- --------- ------------ ---------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------- -------------------------------------------------- ---------- 09-SEP-21 06.08.13.722151 PM PDB1912 Parameter WARNING 0 1 CDB parameter wallet_root mismatch: Previous '/var/opt/oracle/dbaas_acfs/RJ1911/wallet_root' Current '/var/opt/oracle/dbaas_acfs/RJ1912/wallet_root' PENDING Please check the parameter in the current CDB 1 09-SEP-21 06.08.13.722715 PM PDB1912 Oracle Opatch WARNING 0 1 Oracle opatch mismatch: opatch 32490416 is missing in the CDB. PENDING Install the Oracle opatch in the CDB. 1 09-SEP-21 06.08.13.722850 PM PDB1912 Oracle Opatch WARNING 0 2 Oracle opatch mismatch: opatch 32399816 is missing in the CDB. PENDING Install the Oracle opatch in the CDB. 1 09-SEP-21 06.08.13.722926 PM PDB1912 Oracle Opatch WARNING 0 3 Oracle opatch mismatch: opatch 32579761 is missing in the CDB. PENDING Install the Oracle opatch in the CDB. 1 09-SEP-21 06.08.13.723071 PM PDB1912 Oracle Opatch WARNING 0 4 Oracle opatch mismatch: opatch 32545013 is missing in the CDB. PENDING Install the Oracle opatch in the CDB. 1 09-SEP-21 06.08.14.164498 PM PDB1912 SQL Patch ERROR 0 1 Interim patch 32876380/24269510 (OJVM RELEASE UPDATE: 19.12.0.0.210720 (32876380)): Installed in the CDB but not in the PDB PENDING Call datapatch to install in the PDB or the CDB 5 09-SEP-21 06.08.14.166400 PM PDB1912 SQL Patch ERROR 0 2 Interim patch 30310195/24121718 (DBSAT REPORTED DISABLED CONSTRAINTS FOR SHARDING STS_CHUNKS ON GSMADMIN_INTERNAL.SHARD_TS): Not installed in the CDB but installed in the PDB PENDING Call datapatch to install in the PDB or the CDB 5 09-SEP-21 06.08.14.167041 PM PDB1912 SQL Patch ERROR 0 3 Interim patch 32399816/24099425 (OJVM RELEASE UPDATE: 19.11.0.0.210420 (32399816)): Not installed in the CDB but installed in the PDB PENDING Call datapatch to install in the PDB or the CDB 5 09-SEP-21 06.08.14.167585 PM PDB1912 SQL Patch ERROR 0 4 '19.12.0.0.0 Release_Update 2107161418' is installed in the CDB but '19.11.0.0.0 Release_Update 2104130040' is installed in the PDB PENDING Call datapatch to install in the PDB or the CDB 5 09-SEP-21 06.08.14.168930 PM PDB1912 is encrypted tablespace? WARNING 28427 1 Tablespace SYSTEM is not encrypted. Oracle Cloud mandates all tablespaces should be encrypted. PENDING Encrypt the tablespace. 5 09-SEP-21 06.08.14.170047 PM PDB1912 is encrypted tablespace? WARNING 28427 2 Tablespace SYSAUX is not encrypted. Oracle Cloud mandates all tablespaces should be encrypted. PENDING Encrypt the tablespace. 5 09-SEP-21 06.08.17.622991 PM PDB1912 Sync Failure WARNING 4068 2 Sync PDB failed with ORA-04068 while performing 'DROP USER "C##PDB_CLONE_USER"' PENDING 5 13 rows selected. SQL>
Ok. So I could create it and the only issues I have while opening it seems to be related to datapatch. Let me run it:
[oracle@exacs-c0gab1 OPatch]$ ./datapatch -verbose SQL Patching tool version 19.12.0.0.0 Production on Thu Sep 9 18:16:59 2021 Copyright (c) 2012, 2021, Oracle. All rights reserved. Log file for this invocation: /u02/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_203590_2021_09_09_18_16_59/sqlpatch_invocation.log Connecting to database...OK Gathering database info...done Note: Datapatch will only apply or rollback SQL fixes for PDBs that are in an open state, no patches will be applied to closed PDBs. Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1) Bootstrapping registry and package to current versions...done Determining current state...done Current state of interim SQL patches: Interim patch 30310195 (DBSAT REPORTED DISABLED CONSTRAINTS FOR SHARDING STS_CHUNKS ON GSMADMIN_INTERNAL.SHARD_TS): Binary registry: Not installed PDB CDB$ROOT: Not installed PDB PDB$SEED: Not installed PDB PDB1912: Applied successfully on 21-APR-21 09.13.38.257725 AM Interim patch 32399816 (OJVM RELEASE UPDATE: 19.11.0.0.210420 (32399816)): Binary registry: Not installed PDB CDB$ROOT: Not installed PDB PDB$SEED: Not installed PDB PDB1912: Applied successfully on 21-APR-21 09.13.38.231464 AM Interim patch 32876380 (OJVM RELEASE UPDATE: 19.12.0.0.210720 (32876380)): Binary registry: Installed PDB CDB$ROOT: Applied successfully on 23-JUL-21 03.27.54.717269 PM PDB PDB$SEED: Applied successfully on 23-JUL-21 03.28.03.883772 PM PDB PDB1912: Not installed Current state of release update SQL patches: Binary registry: 19.12.0.0.0 Release_Update 210716141810: Installed PDB CDB$ROOT: Applied 19.12.0.0.0 Release_Update 210716141810 successfully on 23-JUL-21 03.27.54.713346 PM PDB PDB$SEED: Applied 19.12.0.0.0 Release_Update 210716141810 successfully on 23-JUL-21 03.28.03.879588 PM PDB PDB1912: Applied 19.11.0.0.0 Release_Update 210413004009 successfully on 21-APR-21 09.13.38.227152 AM Adding patches to installation queue and performing prereq checks...done Installation queue: For the following PDBs: CDB$ROOT PDB$SEED No interim patches need to be rolled back No release update patches need to be installed No interim patches need to be applied For the following PDBs: PDB1912 The following interim patches will be rolled back: 32399816 (OJVM RELEASE UPDATE: 19.11.0.0.210420 (32399816)) 30310195 (DBSAT REPORTED DISABLED CONSTRAINTS FOR SHARDING STS_CHUNKS ON GSMADMIN_INTERNAL.SHARD_TS) Patch 32904851 (Database Release Update : 19.12.0.0.210720 (32904851)): Apply from 19.11.0.0.0 Release_Update 210413004009 to 19.12.0.0.0 Release_Update 210716141810 The following interim patches will be applied: 32876380 (OJVM RELEASE UPDATE: 19.12.0.0.210720 (32876380)) Installing patches... Patch installation complete. Total patches installed: 4 Validating logfiles...done Patch 32399816 rollback (pdb PDB1912): SUCCESS logfile: /u02/app/oracle/cfgtoollogs/sqlpatch/32399816/24099425/32399816_rollback_RJ1912_PDB1912_2021Sep09_18_17_47.log (no errors) Patch 30310195 rollback (pdb PDB1912): SUCCESS logfile: /u02/app/oracle/cfgtoollogs/sqlpatch/30310195/24121718/30310195_rollback_RJ1912_PDB1912_2021Sep09_18_18_00.log (no errors) Patch 32904851 apply (pdb PDB1912): SUCCESS logfile: /u02/app/oracle/cfgtoollogs/sqlpatch/32904851/24343243/32904851_apply_RJ1912_PDB1912_2021Sep09_18_18_07.log (no errors) Patch 32876380 apply (pdb PDB1912): SUCCESS logfile: /u02/app/oracle/cfgtoollogs/sqlpatch/32876380/24269510/32876380_apply_RJ1912_PDB1912_2021Sep09_18_18_00.log (no errors) SQL Patching tool complete on Thu Sep 9 18:19:13 2021 [oracle@exacs-c0gab1 OPatch]$
And now if I try to reopen the PDB:
[oracle@exacs-c0gab1 OPatch]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 9 18:23:27 2021 Version 19.12.0.0.0 Copyright (c) 1982, 2021, Oracle. All rights reserved. Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.12.0.0.0 SQL> alter pluggable database PDB1912 close; Pluggable database altered. SQL> alter pluggable database PDB1912 open; Pluggable database altered. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 5 PDB1912 READ WRITE NO SQL>
And it worked! So creating snapshot clones between different RU releases can be a nice way for patching testing of your master copies.
Have you enjoyed? Please leave a comment or give a 👍!