There usually a philosophic battle happening when it comes to underscore parameters. The official statement is more or less: It’s an underscore, hence it is undocumented and you shouldn’t touch it unless Oracle Support advises you to do so. I agree in many cases. But in this specific one, I don’t. And in this post I will explain why you should set _EXCLUDE_SEED_CDB_VIEW=FALSE
in all your singe- and Multitenant environments. Always!
A bit of history
At first, a little bit of a history excursion. This parameter wasn’t an underscore in Oracle 12.1. You can find it as EXCLUDE_SEED_CDB_VIEW
in 12.1.0.1 and 12.1.0.2. The idea of the parameter is to hide objects, files etc belonging to the “untouchable” PDB$SEED
. While I can see the intention, I was never a fan of hiding any file extensions on whatever OS I was working on. Windows is famous for introducing a big backdoor for numerous virus issues by hiding extensions by default. And my Mac OSX has a similar option.
Anyway, this parameter morphed into an underscore parameter since Oracle Database 12.2.0.1. I blogged about it a while ago:
A real world example
Arun Gupta informed me that there’s an issue with the Jan 2019 RU. When you apply it, your PDB$SEED
may not return into regular READ ONLY
mode but stays in MOUNT
. Thanks Arun!
That is not nice. Actually the bug 29250821 for this issue is a duplicate of bug 25107334 which is fixed since Oracle 12.2.0.1. As a result of this issue, the datapatch run does not complete for PDB$SEED
, and hence future PDBs cloned from the seed my lack the correct SQL pieces.
But regardless of this issue, I’ve had a discussion with a German customer a while ago about checking the correct run of datapatch in ALL containers, including PDB$SEED
. For this purpose you need to set EXCLUDE_SEED_CDB_VIEW=FALSE
in Oracle 12.1 or _EXCLUDE_SEED_CDB_VIEW=FALSE
since Oracle 12.2.
Otherwise your scripts won’t detect the missing changes in PDB$SEED
.
A recommendation
I recommend to all the customer I’m working with or who attend one of our workshops where we speak about Oracle Multitenant to set _EXCLUDE_SEED_CDB_VIEW=FALSE
in all their Multitenant environments. And if you set it in a non-CDB environment, it does not do any damage, no worries.
This avoids that you may oversee an important thing regarding the PDB$SEED
giving you trouble afterwards.
For me this is another perfect example where “hiding” something does not make things easier but increases the potential for failures and mistakes. You’ll find it always set to FALSE
in our hands-on lab environments. Please don’t hesitate to do the same in your environments.
–Mike
Hi Mike,
I have an issue after setting parameter _EXCLUDE_SEED_CDB_VIEW=FALSE, that you may not know.
Issue occurs when you create a dbca template from that DB, it duplicates datafiles for PDB$SEED in Template.dbc file, and if you try to create a new database from that template it will fail with error
ORA-01503: CREATE CONTROLFILE failed
ORA-01167: two files are the same file/group number or the same file
Looking to the *.dbc file you see in Datafile sction the duplicate entries:
{ORACLE_HOME}/assistants/dbca/templates/DT_acsutf8_manual.dfb
acsutf8
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/audsys.281.1062769407
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux.282.1062264371
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system.320.1062264365
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs1.383.1062264375
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users.378.1062768371
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/{PDB_NAME}/sysaux.305.1062264373
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/{PDB_NAME}/sysaux.305.1062264373
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/{PDB_NAME}/system.326.1062264367
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/{PDB_NAME}/system.326.1062264367
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/{PDB_NAME}/undotbs1.369.1062264377
{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/{PDB_NAME}/undotbs1.369.1062264377
If you set parameter again to TRUE, the problem does not occur.
Hi Iratxe,
this is interesting as I have had another issue with this parameter (it happened in auditing).
Does your customer has an SR for this?
I’d like to investigate this further.
Would you mind dropping me an email?
Cheers,
Mike
Hi Mike,
I’ve already sent you an email to your oracle account, on March 25th, with subject “Issue creating DBCA template after setting parameter _EXCLUDE_SEED_CDB_VIEW”.
My customer didn’t open SR as setting the parametr back to true resolved the issue.
Regards,
Iratxe