This was first published on https://blog.dbi-services.com/oracle-public-cloud-patch-conflict (2016-07-13)
Republishing here for new followers. The content is related to the the versions available at the publication date
This morning I wanted to test a patch (18633374) in the Oracle Cloud Service. The DBaaS was created as an ‘Enterprise Edition Extreme Performance’ which comes with all options, including multitenant option. I applied my patch. My test required to create a new tablespace but it failed with: ORA-65010: maximum number of pluggable databases created This is the kind of message we get when we try to use a feature that is not allowed in Standard Edition. But I was in Enterprise Edition here: First thing I did was to tweet a screenshot, in case someone encountered the issue already:
This is not exactly my definition of 'EE Extreme Perf'. WTF did I do? pic.twitter.com/y34JoX9mY3
— Franck Pachot (@FranckPachot) July 13, 2016
And second thing was to try to reproduce the issue because it’s a test environment where I did things quickly and I don’t remember all what was done. I create a new service in EE Extreme Performance:
Connected to: Oracle Database 12c EE Extreme Perf Release 12.1.0.2.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics and Real Application Testing optionscheck that I can create additional pluggable databases
SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB READ WRITE NO 4 DEMOS READ WRITE NO SQL> create pluggable database PDBNEW admin user admin identified by admin; Pluggable database created. SQL> create pluggable database PDBNEW1 admin user admin identified by admin; Pluggable database created.
I tried to do the same as I did (apply patch 18633374)
[oracle@CDBA 18633374]$ dbshut $ORACLE_HOME Processing Database instance "CDB": log file /u01/app/oracle/product/12.1.0/dbhome_1/shutdown.log $ORACLE_HOME/OPatch/opatch apply [oracle@CDBA 18633374]$ $ORACLE_HOME/OPatch/opatch apply Oracle Interim Patch Installer version 12.1.0.1.10 Copyright (c) 2016, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/12.1.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/12.1.0/dbhome_1/oraInst.loc OPatch version : 12.1.0.1.10 OUI version : 12.1.0.2.0 Log file location : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/18633374_Jul_13_2016_11_23_28/apply2016-07-13_11-23-28AM_1.log Verifying environment and performing prerequisite checks... Conflicts/Supersets for each patch are: Patch : 18633374 Conflict with 23192060 Conflict details: /u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a:kpdbc.o /u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a:krb.o /u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a:krbb.o /u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a:krbi.o /u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a:krbabr.o Following patches have conflicts: [ 18633374 23192060 ]
Yes, I remember that I had to de-install an interim patch that was there in my newly created DBaaS:
[oracle@CDBA 18633374]$ $ORACLE_HOME/OPatch/opatch lspatches 23192060; 22674709;Database PSU 12.1.0.2.160419, Oracle JavaVM Component (Apr2016) 22291127;Database Patch Set Update : 12.1.0.2.160419 (22291127)
Let’s do it:
[oracle@CDBA 18633374]$ $ORACLE_HOME/OPatch/opatch rollback -id 23192060 Oracle Interim Patch Installer version 12.1.0.1.10 Copyright (c) 2016, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/12.1.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/12.1.0/dbhome_1/oraInst.loc OPatch version : 12.1.0.1.10 OUI version : 12.1.0.2.0 Log file location : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/23192060_Jul_13_2016_11_24_49/rollback2016-07-13_11-24-49AM_1.log RollbackSession rolling back interim patch '23192060' from OH '/u01/app/oracle/product/12.1.0/dbhome_1' Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u01/app/oracle/product/12.1.0/dbhome_1') Is the local system ready for patching? [y|n] y User Responded with: Y Patching component oracle.oracore.rsf, 12.1.0.2.0... Patching component oracle.rdbms.rsf, 12.1.0.2.0... Patching component oracle.rdbms, 12.1.0.2.0... Deleting "kscs.o" from archive "/u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a" Deleting "kststqae.o" from archive "/u01/app/oracle/product/12.1.0/dbhome_1/lib/libserver12.a" Patching component oracle.rdbms.dbscripts, 12.1.0.2.0... RollbackSession removing interim patch '23192060' from inventory Log file location: /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/23192060_Jul_13_2016_11_24_49/rollback2016-07-13_11-24-49AM_1.log OPatch succeeded.
Then I check if I’m still able to create a new PDB:
[oracle@CDBA 18633374]$ dbstart $ORACLE_HOME Processing Database instance "CDB": log file /u01/app/oracle/product/12.1.0/dbhome_1/startup.log
Ok, I’ll not detail the following problem for the moment:
ORA-01078: failure in processing system parameters LRM-00101: unknown parameter name 'encrypt_new_tablespaces'
During my tests I removed that encrypt_new_tablespaces parameter from the spfile to continue.
[oracle@CDBA 18633374]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Wed Jul 13 11:34:57 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c EE Extreme Perf Release 12.1.0.2.0 - 64bit Production SQL> create pluggable database PDBNEW2 admin user admin identified by admin; create pluggable database PDBNEW2 admin user admin identified by admin * ERROR at line 1: ORA-65010: maximum number of pluggable databases created
Ok, issue reproduced. Interim patch 23192060 is required to be able to have EE Extreme Perf able to act as an Enterprise Edition.
No description, but from alert.log the list of bugs bundled there:
Patch Id: 23192060 Patch Description: Patch Apply Time: Bugs Fixed: 19366375,19665921,19770063,21281607,21470120,21923026,23072137
A lookup in MOS gives:
19366375 – CORRECT ELAPSED TIME CALCULATION AND ADD DIAGNOSTIC FOR BUG 18920073 19665921 – ENABLE HCC FOR DBCS REGARDLESS OF EXTREME PERFORMANCE OPTION OR OTHER OPTIONS 19770063 – GET INFO ABOUT CLOUD BUNDLE INTO V$INSTANCE TABLE 21281607 – TRANSPARENTLY ENCRYPT TABLESPACE AT CREATION IN CLOUD 21470120 – CLOUD BACKPORT FOR HCC AND VERSION CHANGES 21923026 – ORA-600 [OLTP COMPRESSION SANITY CHECK] 23072137 – TDE OFFLINE ENCRYPTION SHOULD NOT BE ALLOWED CONCURRENTLY DURING MRP
Several Oracle Public Cloud specifics here. The ‘encrypt_new_tablespaces’ to do TDE for all new user tablespace, the HCC which is possible in any EE on the Cloud, and info about cloud edition in v$instance…
Let’s check the edition now that I’ve de-installed the patch 19770063:
SQL> select edition from v$instance; EDITION ------- UNKNOWN
This value comes from x$ksuxsinst.ksuxsedition which is 0 there and the view knows only the value 8 for Enterprise Edition:
SQL> select ksuxsedition from x$ksuxsinst; KSUXSEDITION ------------ 0 SQL> select view_definition from v$fixed_view_definition where view_name='GV$INSTANCE'; VIEW_DEFINITION --------------- select ks.inst_id,ksuxsins,ksuxssid,ksuxshst,ksuxsver,ksuxstim,decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE','UNKNOWN'),decode(ksuxsshr,0,'NO',1,'YES',2,NULL),ksuxsthr,decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,'CHECKPOINT', 5,'REDO GENERATION'),decode(ksuxsdba,0,'ALLOWED','RESTRICTED'),decode(ksuxsshp,0,'NO','YES'),decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN'), decode(qui_state,0,'NORMAL',1,'QUIESCING',2,'QUIESCED','UNKNOWN'), decode(bitand(ksuxsdst, 1), 0, 'NO', 1, 'YES', 'NO'), ks.con_id, decode(ksuxsmode,2,'READ MOSTLY','REGULAR'), decode(ksuxsedition, 2, 'PO', 4, 'SE', 8, 'EE', 16, 'XE', 32, 'CS', 40, 'CE', 'UNKNOWN'), ksuxsfam from x$ksuxsinst ks, x$kvit kv, x$quiesce qu where kvittag = 'kcbwst'
No doubt, this meay lead to inaccesible EE features.
When you create a DBaaS in, wich includes the patch 2319206, you get the following for EE Extreme Performance:
SQL> host $ORACLE_HOME/OPatch/opatch lspatches 23192060; 22674709;Database PSU 12.1.0.2.160419, Oracle JavaVM Component (Apr2016) 22291127;Database Patch Set Update : 12.1.0.2.160419 (22291127) SQL> select edition from v$instance; EDITION ------- XP SQL> select ksuxsedition from x$ksuxsinst; KSUXSEDITION ------------ 256 SQL> select view_definition from v$fixed_view_definition where view_name='GV$INSTANCE'; VIEW_DEFINITION --------------- select ks.inst_id,ksuxsins,ksuxssid,ksuxshst,ksuxsver,ksuxstim,decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE','UNKNOWN'),decode(ksuxsshr,0,'NO',1,'YES',2,NULL),ksuxsthr,decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,'CHECKPOINT', 5,'REDO GENERATION'),decode(ksuxsdba,0,'ALLOWED','RESTRICTED'),decode(ksuxsshp,0,'NO','YES'),decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN'), decode(qui_state,0,'NORMAL',1,'QUIESCING',2,'QUIESCED','UNKNOWN'), decode(bitand(ksuxsdst, 1), 0, 'NO', 1, 'YES', 'NO'), ks.con_id, decode(ksuxsmode,1,'REGULAR',2,'READ MOSTLY','READ ONLY'), decode(ksuxsedition, 2, 'PO', 4, 'SE', 8, 'EE', 16, 'XE', 32, 'CS', 64, 'CE', 128, 'HP', 256, 'XP', 'UNKNOWN'), ksuxsfam, kjidtv from x$ksuxsinst ks, x$kvit kv, x$quiesce qu, x$kjidt where kvittag = 'kcbwst'
The Oracle Public Cloud is a strange PaaS: database is provisioned automatically but you can break everything you want later: you are DBA, SYSDBA and even root, as in IaaS. But it’s not because you can do everything that you should do everything. The Oracle Database software has been adapted for the Cloud and requires specific patches. After each PSU, those patches are merged to be applied over the PSU. And if you need to apply a new patch which conflicts with one of them, then you should request a merge that includes the Cloud fixes.
Having different patches for Cloud and for on-premises is not very nice. If the goal is to have dev and test in the public cloud and prod on-premises, then we want the same software and the same patching procedures. But don’t worry, this is because the cloud arrived after 12.1.0.2 release. Next generation will be stabilized on the cloud first. We complains about ‘cloud-first’?
I create an Extreme Performance service and did not have any issues creating additional pdbs..
But I must say I am surprised that the file system is ext4 and not ASM
Hi Fairlie, Yes, good remark. ‘extreme performance’ and ext4 looks paradoxical. I think that ‘performance’ just means ‘full of expensive options’ and most of these options have nothing to do with performance. Note that when you create a RAC service, filesystems are ACFS,.