{"id":2697,"date":"2013-07-04T05:00:00","date_gmt":"2013-07-04T03:00:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/"},"modified":"2013-07-04T05:00:00","modified_gmt":"2013-07-04T03:00:00","slug":"oracle-12c-pluggable-databases-not-that-isolated","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/","title":{"rendered":"Oracle 12c: Pluggable databases not that isolated"},"content":{"rendered":"<p><img decoding=\"async\" class=\"blog-image aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg\" alt=\"\" \/><\/p>\n<p>As you probably know, the multitenant databases is the new feature of Oracle 12c to solve the dilema of applications segregation. Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system downtime.<\/p>\n<h3>How it should always work<\/h3>\n<p>Let&#8217;s take a basic example with a container database CDBPROD1 in which we set up 2 pluggable databases<\/p>\n<ul>\n<li>PDBERP1<\/li>\n<li>PDBHR1<\/li>\n<\/ul>\n<p>So we have one database for the production ERP and one for the Human Resources application.<\/p>\n<p>&nbsp;<\/p>\n<p><a class=\"easyblog-thumb-preview\" title=\"12c-architecture.png\" href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/12c-architecture.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"12c-architecture.png\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/12c-architecture.png\" alt=\"12c-architecture.png\" width=\"207\" height=\"244\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select name,open_mode from v$containers;\nNAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OPEN_MODE\n------------- ------------------\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDB$SEED\u00a0\u00a0\u00a0\u00a0\u00a0 READ ONLY\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDBHR1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE<\/pre>\n<p>Being sure that an issue on one application won&#8217;t impact any other is a key point in such an architecture.<br \/>\nImagine that for some reasons, a data file of the ERP database gets lost or corrupted, what would happen?<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>NAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FILE_ID\u00a0\u00a0\u00a0 STATUS\n------------- ---------- ------------------\nPDBHR1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 12\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nPDBHR1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 13\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 CANNOT OPEN FILE\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 11\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nPDB$SEED\u00a0\u00a0\u00a0\u00a0\u00a0 5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nPDB$SEED\u00a0\u00a0\u00a0\u00a0\u00a0 7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NOT ACTIVE\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 6 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 NOT ACTIVE<\/pre>\n<p>So far the ROOT container as well as any other PDBs are still working fine.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; alter system archive log current;\nSystem altered.<\/pre>\n<p>Insofar as we have all necessary backup pieces, we can easily restore the file and get everything back to normal again (even several ways are possible).<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>oracle@vmoratest12c1:\/home\/oracle\/ [CDBPROD1] rman target sys@PDBERP1\nRecovery Manager: Release 12.1.0.1.0 - Production on Fri Jun 28 05:47:52 2013\nCopyright (c) 1982, 2013, Oracle and\/or its affiliates.All rights reserved.\ntarget database Password: \nconnected to target database: CDBPROD1 (DBID=1679079389)\nRMAN&gt; alter database datafile 10 offline;\nusing target database control file instead of recovery catalog\nStatement processed<\/pre>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">RMAN&gt; restore datafile 10;\nStarting restore at 28-JUN-13\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=26 device type=DISKchannel ORA_DISK_1: starting datafile backup set restore\nchannel ORA_DISK_1: specifying datafile(s) to restore from backup set\n\u2026\n\u2026\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:01\nFinished restore at 28-JUN-13\n\nRMAN&gt; recover datafile 10;\nStarting recover at 28-JUN-13\nusing channel ORA_DISK_1\nstarting media recovery\narchived log for thread 1 with sequence 11 is already on disk as file \/u90\/fast_recovery_area\/CDBPROD1\/archivelog\/2013_06_28\/o1_mf_1_11_8wsptjf4_.arc\narchived log for thread 1 with sequence 12 is already on disk as file \/u90\/fast_recovery_area\/CDBPROD1\/archivelog\/2013_06_28\/o1_mf_1_12_8wspv3ph_.arc\narchived log for thread 1 with sequence 13 is already on disk as file \/u90\/fast_recovery_area\/CDBPROD1\/archivelog\/2013_06_28\/o1_mf_1_13_8wszvlnc_.arc\n...\n...\nFinished recover at 28-JUN-13\n\nRMAN&gt; alter database datafile 10 online;\nStatement processed<\/pre>\n<p>That&#8217;s it! The ERP database is back to normal while no other PDB has been impacted.<\/p>\n<h3>Not always that easy!<\/h3>\n<p>Unfortunately, going deeper into our tests, I faced a tricky case where any single pluggable databse (PDB) can generate a downtime on the whole container!<br \/>\nLet&#8217;s see what happens if we loose the system tablespace of one of our two PDBs\u2026<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select name,open_mode from v$containers;\nNAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OPEN_MODE\n------------- -----------\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDB$SEED\u00a0\u00a0\u00a0\u00a0\u00a0 READ ONLY\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDBHR1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE<\/pre>\n<p>All containers (Root container and Pluggable databases) are currently up and running. But now we are going to delete the SYSTEM data file of the ERP pluggable database \/ application&#8230; yes I know, that&#8217;s bad! \ud83d\ude44<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@vmoratest12c1:\/u01\/oradata\/CDBPROD1\/PDBERP1\/ [CDBPROD1] rm -f system01.dbf<\/pre>\n<p>Of course, this has a huge impact on my ERP application.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@vmoratest12c1:\/u01\/oradata\/CDBPROD1\/PDBERP1\/ [CDBPROD1] sqlplus sys@PDBERP1 as sysdba\nSQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 28 13:04:39 2013\nCopyright (c) 1982, 2013, Oracle. All rights reserved.\nEnter password:\nConnected to:\nOracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production\nWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing options\nSQL&gt; select * from dba_data_files;\nselect * from dba_data_files\n *\nERROR at line 1:\nORA-00604: error occurred at recursive SQL level 1\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3<\/pre>\n<p>As expected, the data file 8, which is the SYSTEM data file for the PDBERP1, is missing.<br \/>\nHowever, this is only one pluggable database of my whole production environment. So I expect all other applications not to be impacted.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@vmoratest12c1:\/u01\/oradata\/CDBPROD1\/PDBERP1\/ [CDBPROD1] sqlplus \/ as sysdba\nSQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 28 13:08:25 2013\nCopyright (c) 1982, 2013, Oracle. All rights reserved.\nConnected to:\nOracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production\nWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing options\nSQL&gt; show CON_NAME\nCON_NAME\n--------------\nCDB$ROOT\n\nSQL&gt; alter system archive log current;\nSystem altered.\nSQL&gt; alter session set container=PDBHR1;\nSession altered.\nSQL&gt; select count(*) from dba_tables; COUNT(*)\n----------\n 2316<code><\/code><\/pre>\n<p>Basically it looks like that is the case, great!<br \/>\nI&#8217;m going to take the same way to solve my issue than before. I will simply try to restore my missing data file and get my pluggable database back to work.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@vmoratest12c1:\/u01\/oradata\/CDBPROD1\/PDBERP1\/ [CDBPROD1] rman target sys@PDBERP1\nRecovery Manager: Release 12.1.0.1.0 - Production on Fri Jun 28 13:12:14 2013\nCopyright (c) 1982, 2013, Oracle and\/or its affiliates. All rights reserved.\ntarget database Password: \nconnected to target database: CDBPROD1 (DBID=1679079389)\nRMAN&gt; alter database datafile 8 offline;\nusing target database control file instead of recovery catalog\nRMAN-00571: ===========================================================\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\nRMAN-00571: ===========================================================\nRMAN-03002: failure of sql statement command at 06\/28\/2013 13:12:30\nORA-01541: system tablespace cannot be brought offline; shut down if necessary<\/pre>\n<p>Ok it makes sense, I can&#8217;t simply set my SYSTEM data file offline while the database is still running. Alright then, I&#8217;m going to close my PDB.<\/p>\n<p>Remember that a PDB can&#8217;t be shutdown except if the whole container is taken down itself. In fact, with a shutdown command, a pluggable database is set back to mount status.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">RMAN&gt; alter pluggable database close;\nRMAN-00571: ===========================================================\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\nRMAN-00571: ===========================================================\nRMAN-03002: failure of sql statement command at 06\/28\/2013 13:15:43\nRMAN-00600: internal error, arguments [7530] [] [] [] []\n\u00a0\nRMAN&gt; shutdown immediate\nRMAN-00571: ===========================================================\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\nRMAN-00571: ===========================================================\nRMAN-03002: failure of shutdown command at 06\/28\/2013 13:15:53\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\n\u00a0\nRMAN&gt; shutdown abort\nRMAN-00571: ===========================================================\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\nRMAN-00571: ===========================================================\nRMAN-03002: failure of shutdown command at 06\/28\/2013 13:15:59\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3<\/pre>\n<p>Looks like RMAN can&#8217;t do it itself. Whatever I tried, I&#8217;m always getting an error. Sometimes, it even could come in RMAN itself.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@vmoratest12c1:\/u01\/oradata\/CDBPROD1\/PDBERP1\/ [CDBPROD1] rman target sys@PDBERP1\nRecovery Manager: Release 12.1.0.1.0 - Production on Fri Jun 28 13:40:16 2013\nCopyright (c) 1982, 2013, Oracle and\/or its affiliates. All rights reserved.\ntarget database Password: \nRMAN-00571: ===========================================================\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\nRMAN-00571: ===========================================================\nRMAN-00554: initialization of internal recovery manager package failed\nRMAN-04005: error from target database: \nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\nORA-00604: error occurred at recursive SQL level 2\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\nORA-00604: error occurr<\/pre>\n<p>So I moved to SQLPLUS, on a pluggable level, and took a chance again.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; alter pluggable database close;\nalter pluggable database close\n*\nERROR at line 1:\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\n\nSQL&gt; shutdown immediate\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\n\nSQL&gt; shutdown abort\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3<\/pre>\n<p>Same story there, as long as I&#8217;m connected to the pluggable database level, I can&#8217;t close it to run any restore operation. That&#8217;s not really surprising in fact, I have to do it on the ROOT container level.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; alter pluggable database PDBERP1 close;\nalter pluggable database PDBERP1 close\n*\nERROR at line 1:\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3\n\nSQL&gt; alter database datafile 8 offline;\nalter database datafile 8 offline\n*\nERROR at line 1:\nORA-01516: nonexistent log file, data file, or temporary file \"8\"\n\nSQL&gt; alter database datafile 8 offline drop;\nalter database datafile 8 offline drop\n*\nERROR at line 1:\nORA-01516: nonexistent log file, data file, or temporary file \"8\"<\/pre>\n<p>Now I&#8217;m seriously getting nervous, as I can&#8217;t get anything done on my PDB. It looks like the only way is to shutdown the whole production container to get rid of this issue\u2026<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; show CON_NAME\nCON_NAME\n------------------------------\nCDB$ROOT\n\nSQL&gt; shutdown immediate\nORA-01116: error in opening database file 8\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\nORA-27041: unable to open file\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 3<\/pre>\n<p>Here is the point: I can&#8217;t even take my whole container properly done! The only way to bring it down is to run a shutdown abort!<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; shutdown abort\nORACLE instance shut down.<\/pre>\n<p>This is definitively not a gentle way to get it done. The final point here, is that my container won&#8217;t even start anymore until I get the SYSTEM data file from my single PDB back!<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; startup\nORACLE instance started.\nTotal System Global Area 1636814848 bytes\nFixed Size 2288968 bytes\nVariable Size 989856440 bytes\nDatabase Buffers 637534208 bytes\nRedo Buffers 7135232 bytes\nDatabase mounted.\nORA-01157: cannot identify\/lock data file 8 - see DBWR trace file\nORA-01110: data file 8: '\/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf'\n\nSQL&gt; select name,open_mode from v$database;\nNAME\u00a0\u00a0\u00a0\u00a0\u00a0 OPEN_MODE\n--------- --------------------\nCDBPROD1\u00a0 MOUNTED<\/pre>\n<p>At that point I can go forward with the data file 8 restore and recover to get my database back.<\/p>\n<ul>\n<li>restore data file 8<\/li>\n<li>recover data file 8<\/li>\n<\/ul>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>RMAN&gt; connect target \/\nconnected to target database: CDBPROD1 (DBID=1679079389, not open)\n\u00a0\nRMAN&gt; restore datafile 8;\nStarting restore at 28-JUN-13\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=11 device type=DISKchannel ORA_DISK_1: starting datafile backup set restore\nchannel ORA_DISK_1: specifying datafile(s) to restore from backup set\nchannel ORA_DISK_1: restoring datafile 00008 to \/u01\/oradata\/CDBPROD1\/PDBERP1\/system01.dbf\n\u2026\n\u2026\n\u2026\n\nRMAN&gt; recover datafile 8;\nStarting recover at 28-JUN-13\nusing channel ORA_DISK_1starting media recoveryarchived log for thread 1 with sequence 11 is already on disk as file \/u90\/fast_recovery_area\/CDBPROD1\/archivelog\/2013_06_28\/o1_mf_1_11_8wsptjf4_.arc\narchived log for thread 1 with sequence 12 is already on disk as file \/u90\/fast_recovery_area\/CDBPROD1\/archivelog\/2013_06_28\/o1_mf_1_12_8wspv3ph_.arc\narchived log for thread 1 with sequence 13 is already on disk as file \/u90\/fast_recovery_area\/CDBPROD1\/archivelog\/2013_06_28\/o1_mf_1_13_8wszvlnc_.arc\n\u2026\n\u2026\n\u2026\nmedia recovery complete, elapsed time: 00:00:03\nFinished recover at 28-JUN-13\n\u00a0\nRMAN&gt; alter database open;\nStatement processed\n\u00a0\n\noracle@vmoratest12c1:\/u01\/oradata\/CDBPROD1\/PDBERP1\/ [CDBPROD1] sqlplus \/ as sysdba\nSQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 28 13:33:34 2013\nCopyright (c) 1982, 2013, Oracle. All rights reserved.\nConnected to:\nOracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production\nWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing options\n\u00a0\nSQL&gt; select name,open_mode from v$containers;\nNAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OPEN_MODE\n------------ ------------\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDB$SEED\u00a0\u00a0\u00a0\u00a0 READ ONLY\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0 MOUNTED\nPDBHR1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MOUNTED\n\u00a0\nSQL&gt; alter pluggable database all open;\nPluggable database altered.\n\u00a0\nSQL&gt; select name,open_mode from v$containers;\nNAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OPEN_MODE\n------------- -------------\nCDB$ROOT\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDB$SEED\u00a0\u00a0\u00a0\u00a0\u00a0 READ ONLY\nPDBERP1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE\nPDBHR1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE<\/pre>\n<p>Finally, we made it! Everything is back to normal and all databases are working fine.<br \/>\nAs a conclusion, I would say that multitenant databases are pretty interesting and offer nice enhancements in terms of consolidation.<br \/>\nHowever you need to know that a single PDB, even the least important one, can under certain conditions generate a complete system outage!<br \/>\nI hope that this will help!<br \/>\nIf you have any remark or experiences on such tests, feel free to comment.<br \/>\nCheers\u00a0\ud83d\ude00<\/p>\n<p>David<\/p>\n<p>PS: I also tried to restore the data file without setting anything offline or down as well as unplugging the PDB, but nothing helped. Restore fails as the data file can&#8217;t be locked and should be closed to unplug the PDB. Do see the vicious circle???<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you probably know, the multitenant databases is the new feature of Oracle 12c to solve the dilema of applications segregation. Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":2695,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198],"tags":[30,320,209,226,270],"type_dbi":[],"class_list":["post-2697","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-management","tag-data-file","tag-multitenant-database","tag-oracle-12c","tag-recovery","tag-rman"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle 12c: Pluggable databases not that isolated - dbi Blog<\/title>\n<meta name=\"description\" content=\"Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system outage!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle 12c: Pluggable databases not that isolated\" \/>\n<meta property=\"og:description\" content=\"Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system outage!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-07-04T03:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"406\" \/>\n\t<meta property=\"og:image:height\" content=\"100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David Hueber\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Hueber\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/\"},\"author\":{\"name\":\"David Hueber\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8873e20a98a02305870909f4e3d0088f\"},\"headline\":\"Oracle 12c: Pluggable databases not that isolated\",\"datePublished\":\"2013-07-04T03:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/\"},\"wordCount\":793,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_Oracle_Database_12c.jpg\",\"keywords\":[\"Data file\",\"Multitenant database\",\"Oracle 12c\",\"Recovery\",\"RMAN\"],\"articleSection\":[\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/\",\"name\":\"Oracle 12c: Pluggable databases not that isolated - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_Oracle_Database_12c.jpg\",\"datePublished\":\"2013-07-04T03:00:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8873e20a98a02305870909f4e3d0088f\"},\"description\":\"Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system outage!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_Oracle_Database_12c.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_Oracle_Database_12c.jpg\",\"width\":406,\"height\":100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-pluggable-databases-not-that-isolated\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle 12c: Pluggable databases not that isolated\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8873e20a98a02305870909f4e3d0088f\",\"name\":\"David Hueber\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g\",\"caption\":\"David Hueber\"},\"description\":\"David Hueber has ten years of experience in infrastructure operation &amp; management, engineering, and optimization. He is specialized in Oracle technologies (engineering, backup and recovery, high availability, etc.), Service Management standards and Oracle infrastructure operation processes (Service Desk, Change Management, Capacity Planning, etc.). David Hueber is ITILv3 Service Operation Lifecycle certified and Linux LPIC-1 certified. He received a university degree in Informatics and Networks at the IUT Mulhouse, France. He also studied Information Systems at the Conservatoire National des Arts et M\u00e9tiers in Mulhouse, France. His branch-related experience covers Financial Services \\\/ Banking, Chemicals &amp; Pharmaceuticals, Transport &amp; Logistics, Retail, Food, etc.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/david-hueber\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle 12c: Pluggable databases not that isolated - dbi Blog","description":"Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system outage!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/","og_locale":"en_US","og_type":"article","og_title":"Oracle 12c: Pluggable databases not that isolated","og_description":"Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system outage!","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/","og_site_name":"dbi Blog","article_published_time":"2013-07-04T03:00:00+00:00","og_image":[{"width":406,"height":100,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg","type":"image\/jpeg"}],"author":"David Hueber","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Hueber","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/"},"author":{"name":"David Hueber","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8873e20a98a02305870909f4e3d0088f"},"headline":"Oracle 12c: Pluggable databases not that isolated","datePublished":"2013-07-04T03:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/"},"wordCount":793,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg","keywords":["Data file","Multitenant database","Oracle 12c","Recovery","RMAN"],"articleSection":["Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/","name":"Oracle 12c: Pluggable databases not that isolated - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg","datePublished":"2013-07-04T03:00:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8873e20a98a02305870909f4e3d0088f"},"description":"Thanks to a multitenant container database, it allows to manage many databases as one taking advantage of resources consolidation. A perfect way to manage several applications in a single container. However are these plugglable databases that isolated as expected? Not exactly: As I will show in this posting, a single PDB can, under certain conditions, generate a complete system outage!","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_Oracle_Database_12c.jpg","width":406,"height":100},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-pluggable-databases-not-that-isolated\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle 12c: Pluggable databases not that isolated"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8873e20a98a02305870909f4e3d0088f","name":"David Hueber","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g","caption":"David Hueber"},"description":"David Hueber has ten years of experience in infrastructure operation &amp; management, engineering, and optimization. He is specialized in Oracle technologies (engineering, backup and recovery, high availability, etc.), Service Management standards and Oracle infrastructure operation processes (Service Desk, Change Management, Capacity Planning, etc.). David Hueber is ITILv3 Service Operation Lifecycle certified and Linux LPIC-1 certified. He received a university degree in Informatics and Networks at the IUT Mulhouse, France. He also studied Information Systems at the Conservatoire National des Arts et M\u00e9tiers in Mulhouse, France. His branch-related experience covers Financial Services \/ Banking, Chemicals &amp; Pharmaceuticals, Transport &amp; Logistics, Retail, Food, etc.","url":"https:\/\/www.dbi-services.com\/blog\/author\/david-hueber\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=2697"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2697\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/2695"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=2697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=2697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=2697"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=2697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}