Single-/Multitenant

DBMS_PDB.DESCRIBE – Something to be aware of

When I wrote up my long blog post series about how to migrate to Multitenant, I came across an interesting behavior. I could create the XML manifest file to plugin without putting the database in read-only mode. But I learned afterwards that there are is a pitfall. Hence, this blog post will talk about DBMS_PDB.DESCRIBE – Something to be aware of.

DBMS_PDB.DESCRIBE - Something to be aware of

DBMS_PDB.DESCRIBE – why and when?

You will use the DBMS_PDB.DESCRIBE call for the sole purpose to create the so called XML manifest file. This file contains information about the non-CDB to plugin afterwards. You either generate it check …

Continue reading...

3 PDBs included with Oracle 19c and desupport of non-CDBs with 20c

It’s Oracle Open World week in San Francisco. and it is time for announcements of course.

3 PDBs included with Oracle 19c and desupport of non-CDBs with 20c

Photo by Aaron Burden on Unsplash

What has been announced?

Today at OOW 2019, Jenny Tsai-Smith and Dominic Giles announced in their talk that the non-CDB architecture will be desupported from Oracle 20c on. But VERY IMPORTANT, from Oracle 19c on you can have 3 user-created pluggable databases of any type without a Multitenant license. As soon as you have need for 4 or more PDBs within one container database, you will need a Multitenant license.

License Guide

You can find the update regarding …

Continue reading...

Database Migration from non-CDB to PDB – Migration with Data Pump

You may have realized that there are a few techniques missing describing how to do a Database Migration from non-CDB to PDB – Migration with Data Pump is one of them. I will explain the most simple approach of going to Single- or Multitenant. It isn’t the coolest – and it isn’t very fast as soon as your database has a significant size. But it is not complex. And it allows you to move even from very old versions directly into an Oracle 19c PDB – regardless of patch levels or source and destination platform.

Database Migration from non-CDB to PDB – Migration with Data Pump

High Level Overview

Endianness change
Continue reading...

Database Migration from non-CDB to PDB – The Minimal Downtime Challenge

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB – The Minimal Downtime Challenge

Database Migration from non-CDB to PDB – The Minimal Downtime Challenge

When we start to look at a migration from non-CDB to PDB for an important system, regardless of migrating on-prem or to the cloud, reducing the downtime is very important. In this blog post I’d like to highlight the different aspects …

Continue reading...

Database Migration from non-CDB to PDB – The Fallback Challenge

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB - The Fallback Challenge

Photo by Sebastian Grochowicz on Unsplash

Database Migration from non-CDB to PDB – The Fallback Challenge

As I work with customers on upgrades and migrations for a very long time, I know how important a proper fallback is.

When you attempt a migration from a non-CDB to PDB, you need to plan …

Continue reading...

Database Migration from non-CDB to PDB – Various Pitfalls

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB - Various Pitfalls

Photo by timJ on Unsplash

Database Migration from non-CDB to PDB – Various Pitfalls

In all the previous blog posts of this series I tried to explain specific pitfalls, and how you can workaround them. This article is meant to collect the “leftovers”, the minor issues and pitfalls which you may not …

Continue reading...

Database Migration from non-CDB to PDB – The Patch Level Pitfall

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB - The Patch Level Pitfall

Photo by Piron Guillaume on Unsplash

Database Migration from non-CDB to PDB – The Patch Level Pitfall

When you consolidate on a larger scale, it is very likely that you have different patch levels in your database environments. But when you attempt to plugin a non-CDB into a CDB, you may see …

Continue reading...

Database Migration from non-CDB to PDB – The Component Pitfall

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB - The Component Pitfall

Photo by Brett Jordan on Unsplash

The Component Pitfall

With component we mean the database component which you can find in DBA_REGISTRY – or CDB_REGISTRY. When Multitenant became available over 5 years ago, a decision had been made to make all options/components mandatory in a container database. This decision had to …

Continue reading...

Database Migration from non-CDB to PDB – The Time Zone Pitfall

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB - The Time Zone Pitfall

Photo by Allef Vinicius on Unsplash

Database Migration from non-CDB to PDB – The Time Zone Pitfall

Interestingly, there is no issue with different time zone settings within a single CDB. Your CDB$ROOT can be on DST V.32 whereas a PDB you plugin can be already on DST V.33. But only

Continue reading...

Database Migration from non-CDB to PDB – The COMPATIBLE pitfall

There are several pitfalls when you plugin a non-CDB into a CDB environment. I’d like to highlight some of them – and show you potential workarounds as well. This is part of a series of blog posts to make your migration from non-CDB to PDB a bit smoother.

Database Migration from non-CDB to PDB - The COMPATIBLE pitfall

Database Migration from non-CDB to PDB – The COMPATIBLE pitfall

When you migrate your non-CDB to PDB, in most cases the COMPATIBLE setting of the non-CDB will be lower than the setting of the receiving CDB. But still in this case you may see warnings. I will explain how to deal with …

Continue reading...

Database Migration from non-CDB to PDB – Typical Plugin Issues and Workarounds

In the previous blog posts I showed different approaches on how to migrate your database on a same Endianness platform into Multitenant. Whether you prefer to upgrade first or plugin first is up to you. I recommend upgrading first as this allows you a seamless fallback. But regardless of which approach you prefer, you may take care on potential pitfalls. Hence, this blog post is about Database Migration from non-CDB to PDB – Typical Plugin Issues and Workarounds. It may not be complete when I publish it and I may extend it later on. Let me know if you have …

Continue reading...

Database Migration from non-CDB to PDB – Clone via NON$CDB, upgrade, convert

The third option for plugging in a non-CDB is called Database Migration from non-CDB to PDB – Clone via NON$CDB, upgrade, convert. As I showed already in this blog post a while ago, your source must be at least an Oracle 12.1 database. And this technique can be used also only for same-Endianness migrations but does not apply if you’d like to migrate from Big to Little Endian. If your source database matches already the receiving CDB, no upgrade is necessary.

Database Migration from non-CDB to PDB – Clone via NON$CDB, upgrade, convert

Photo by Samuel Chan on Unsplash

High Level Overview

Endianness change possible:
No
Source database versions: Oracle 12.1.0.2
Continue reading...

Database Migration from non-CDB to PDB – Plug in, upgrade, convert

This is my next blog post about Database Migration from non-CDB to PDB – Plug in, upgrade, convert. But what is different from the previous one? And why is it necessary? Since Oracle Database 12.2.0.1 you can plugin a non-CDB at first, the upgrade and convert it. And I’ll show you this technique here.

Database Migration from non-CDB to PDB – Plug in, upgrade, convert

Photo by Dan Freeman on Unsplash

High Level Overview

Endianness change possible: No
Source database versions: Oracle 12.2.0.1 or newer (or 12.1.0.2 when CDB has shared UNDO)
Characteristic: Plugin into CDB first
Upgrade necessary: Yes, after plugin
Downtime: Plugin, copy (optional), upgrade and noncdb_to_pdb.sql
Minimal
Continue reading...

Database Migration from non-CDB to PDB – Upgrade, plug in, convert

As first blog post of this series about Database Migration from non-CDB to PDB – Upgrade, plug in, convert I will explain the most straight forward approach of going to Single- or Multitenant. But you have other options as well. which I’ll showcase in the other blog posts. I demonstrated this technique on the blog already a while ago. But since Oracle 12.2.0.1, there are a few other options available.

Database Migration from non-CDB to PDB - Upgrade, plug in, convert

High Level Overview

Endianness change possible: No
Source database versions: Oracle 11.2.0.4 or newer
Characteristic: Upgrade non-CDB first
Upgrade necessary: Yes, before plugin
Downtime:
Upgrade, plugin, copy (optional) and
Continue reading...

Database Migration from non-CDB to PDB – Overview

Today I’ll start a blog post series of several “how to” articles about database migration from non-CDB to PDB – Overiew. You’ll find a quick introduction below. And of course, the links to all the other related blog posts.

Database Migration from non-CDB to PDB – Overview

When you plan to move from non-CDB, the Oracle term for regular database deployments, to a Pluggable Database (PDB), you will migrate your database. It will become a PDB and run as part of a Container Database (CDB). This is a well known concept for several years now called Oracle Multitenant. If you …

Continue reading...

Transportable Tablespace PDB Migration and Local Undo

Transportable Tablespace PDB Migration and Local Undo

Photo by Steve Johnson on Unsplash

Sometimes it is necessary to warn you about known pitfalls to avoid frustration. In this particular case I decided not to blog about it simply because I thought this won’t happen to too many other people. Well, yesterday my good friend Philippe Fierens dropped me a message about an issue he ran into with a Transportable Tablespace PDB Migration and Local Undo. And I immediately knew what caused him trouble – and I regret that I didn’t blog about it (sorry Philippe!). We’ve seen the same problem with a large ExaCC migration project …

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...

Does the PDB$SEED get “time zone” patched or not?

Today I received a question from a very experienced Oracle ACS engineer whether the PDB$SEED get time zone patched or not when a time zone patch gets applied. I’d say spontaneously “Of course, it does” but after thinking for a few seconds I started having doubts. Question is: Does the PDB$SEED get “time zone” patched or not?

Does the PDB$SEED get "time zone" patched or not?

Photo by Luis Cortes on Unsplash

Time zone scripts are in ?/rdbms/admin since Oracle 18c

First of all, since Oracle Database 18c the scripts to adjust time zone settings of the database are in ?/rdbms/admin. If you did our Hands-On Lab already …

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...

Cloning with Pluggable Databases in Oracle 18c

We had several discussions on the internal mailing lists the other day about cloning with Pluggable Databases in Oracle 18c (or 12.2.0.1). And I blogged about this topic a while ago but realized I may need to refresh this a bit.

Cloning with Pluggable Databases in Oracle 18c

My example from the old blog post still works fine. But I realized that I switched my database into read-only mode. Hence, I like to repeat it and check different options.

Cloning a 12.1 PDB into Oracle 18c

In the source CDB1 I create a fresh PDB first, then open it and create a cloning user with the necessary …

Continue reading...

Oracle 18.3.0 Multitenant: Compatibility Check does not work

Oracle 18.3.0 Multitenant: Compatibility Check does not workWhen I changed our Hands-On Lab to Oracle 18c, I encountered one strange issue in case I upgraded the UPGR database to 18.3.0 and wanted to plug it in afterwards. Before plugin I usually do a compatibility check. But this seems to fail. I checked my file, my paths, everything. But I couldn’t find the root cause. And yesterday I received an email from a customer who has a case open for over a week encountering a similar problem. And we both came to the conclusion for Oracle 18.3.0 Multitenant: Compatibility Check does not work under certain circumstances.…

Continue reading...

Creating CDBs and non-CDBs with less options

Creating CDBs and non-CDBs with less optionsI wanted to write up this blog post a long time ago. When Helen Vanderheide did ask me a few weeks ago if she can omit catoctk.sql during the creation of the database, I realized that I should update my previous blog posts about Creating CDBs and non-CDBs with less options. And of course, the following is usable with non-CDBs as well.

You’ll find an example and especially the component dependency matrix below as well as many links to related blog posts at the end. If you don’t want to read all this, just scroll down to the Summary

Continue reading...

Drop a tablespace in a PDB with a Guaranteed Restore Point being active

Drop a tablespace in a PDB with a Guaranteed Restore Point being activeThis was an interesting question I received from Alain Fuhrer a couple of weeks ago: “Why can’t I drop a tablespace in a PDB whit a Guaranteed Restore Point being active?”. It’s important to note that the GRP is not active in the same but in another PDB.

An SR resolved the issue. But in case you face the same situation, here’s the solution.

Drop a tablespace in a PDB with a Guaranteed Restore Point being active

Simple test scenario. These are my PDBs:

show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 
Continue reading...

Be aware of database options selections for PDBs in DBCA

I did blog about several things-to-know with DBCA (Database Configuration Assistant) in the past. And one issue came up in our internal mailing list the other day. Be aware of database options selections for PDBs in DBCA. Missing one or the other “click” may bring you in trouble later on. I blogged about this already a while ago but this was only part of a larger post: Create Multitenant Databases with DBCA – Things to Know.

Be aware of database options selections for PDBs in DBCA

When you create a custom container database with DBCA you will see this …

Continue reading...