PDB$SEED

Choose your desired time zone version (DST) upgrade

This morning I received a very reasonable question from a customer who has a time zone mismatch between source and target database. And he wants to transport into a PDB on Exadata. Even though, this sounds trivial at first sight, unfortunately it isn’t. But a bug fix done recently for a German automotive customer is very handy here. So let me show you how you can Choose your desired time zone version (DST) upgrade.

Choose your desired time zone version (DST) upgrade

Photo by Vince Veras on Unsplash

Where does the problem start?

In this particular – and not unusual case – the customer wants to migrate …

Continue reading...

Be aware when you use _ORACLE_SCRIPT in scripts

Recently I came across this when I gave a Multitenant workshop at a German customer. As part of the workshop I explained the _ORACLE_SCRIPT statements you will find in almost all scripts in ?/rdbms/admin. And one of the DBAs gave me a bright smile. He mentioned: “We use it already everywhere to avoid strange errors”. But be aware when you use _ORACLE_SCRIPT in scripts. I will explain, why this can be dangerous.

Be aware when you use _ORACLE_SCRIPT in scripts

Photo by Justin Chrn on Unsplash

What does _ORACLE_SCRIPT do?

First of all, this is an underscore parameter. Hence, you won’t find it in the Oracle …

Continue reading...

Why you should set _EXCLUDE_SEED_CDB_VIEW=FALSE

Why you should set _EXCLUDE_SEED_CDB_VIEW=FALSE

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 …

Continue reading...

How to patch all PDBs with the a new time zone file?

Yesterday I wrote about how to adjust the time zone setting in the PDB$SEED as by default the time zone scripts won’t touch the PDB$SEED when you execute them. And in addition, MOS Note:1509653.1 tells you, that the PDB$SEED can’t be adjusted. But this leads to a weird mix of time zone settings across a Multitenant deployment. Which I’d guess is not desired. Following a tweet reply by Marco Mischke I realized: I explained how to patch the PDB$SEED – but I didn’t explain how to patch all PDBs with the a new time zone file?

How to patch all PDBs with the a new time zone file?

Photo by Laureen

Continue reading...

How to speed up Multitenant CUSTOM database creation

Why has the PDB$SEED such a strange setup?I usually create my container databases for testing with the CUSTOM option of DBCA. That allows me to specify exactly the components I’d like to have – or not. But I realized two things during the CUSTOM creation: It takes very long. And in the alert.log I see resize operations especially with the PDB$SEED during dictionary view creation. I see heap warnings. And recompilations. I did ask myself how to speed up Multitenant CUSTOM database creation.

Background Information

The PDB$SEED is the – I call it – “blueprint” pluggable database. It’s sole purpose is to allow you fast provisioning of …

Continue reading...

Why EXCLUDE_SEED_CDB_VIEW is now an underscore in Oracle 12.2

Hiding information is not good - and exclude_seed_cdb_view is now an underscore in Oracle 12.2I have received several questions from customers in the past weeks using Oracle Multitenant about the parameter exclude_seed_cdb_view.It magically disappeared and morphed into _exclude_seed_cdb_view since Oracle Database 12.2.0.1. To be fair, the exclude_seed_cdb_view is listed in the list of obsolete parameters in Oracle Database 12.2.0.1.

What is EXCLUDE_SEED_CDB_VIEW?

This parameter hides everything belonging to the PDB$SEED from the usual queries. For instance you ran a query against CDB_DATA_FILES but you won’t see the data files belonging to PDB$SEED in the result set. Whether this is good or bad, at least RMAN (Recovery Manager) worked always correctly.

But I’m …

Continue reading...

Why does the upgrade of PDB$SEED always take longer?

Upgrading the PDB$SEED takes always longer than any other container.
What is the reason for an upgrade of the PDB$SEED taking so much longer in a real world environment?

How does an upgrade with Oracle Multitenant work?

Upgrading the PDB$SEED takes always longerI have written several blog posts in the past about the different techniques to upgrade an Oracle Multitenant environment:

  1. Upgrade Everything At Once
  2. Upgrade via Unplug/Plug/Upgrade

The interesting case happens in the “Everything At Once“. The PDB$SEED takes significantly longer to upgrade than any other container.

Upgrading the PDB$SEED takes always longer?

Quick recap: The PDB$SEED is the (I call it) blueprint

Continue reading...