Page 2 of 2

Oracle 18c – Duplicate a PDB to an existing CDB

Starting with Oracle Database Release 18c, RMAN enables you to use the DUPLICATE command to duplicate a PDB to an existing CDB. This is very useful feature which will allow the CDBs in your environment to duplicate PDBs, instead of having to create additional CDBs for deduplication tasks.

There are some restrictions on PDB duplication to an existing CDB:

  • Only active database duplication is supported.
  • You can’t duplicate PDB to a standby CDB.
  • One PDB can duplicated at a time.
  • You can’t skip exclude specific tablespace during PDB duplications. Means partial duplication is not allowed.
  • PDB with TDE- Encrypted tablespaces is not supported.
  • Only few clauses of the duplicate commands are supported like DB_FILE_NAME_CONVERT, SECTION SIZE etc… some clauses like FARSYNC, LOG_FILE_NAME_CONVERT is not supported. Check oracle documentation for more detail.


My environment is set up as below and It’s all ready to test the scenario. Check my other blogs, how to install and create 18c database from here.

  18c Env.
CDB Name PDB Name
Source CDB18 PDB18
Destination CDB_dest PDB_dest

The example assumes the following scenario:

  • Both Source CDB, CDB18 and destination CDB, CDB_dest are on same VM machine and both CDB’s are 18c compatible.
  • The PDB being duplicate PDB18,  is in read-write mode.
  •  Both source and destination CDB’s are open in read write mode with archiving enabled.

Continue reading → Oracle 18c – Duplicate a PDB to an existing CDB

Oracle 18c – Run database without ORA-12754

In my last post, I installed the Oracle 18c binaries on Oracle Linux 7. Now next step is to create the database. But you’ll be stuck with error “ORA-12754” when you trying to create database with exadata binaries.


The library which is causing the problem is “libserver18”. It’s really hard to troubleshoot this library. So I thought to copy this library from Oracle cloud environment. I deployed the 18c database from my free trail cloud account. You need to wait at least 10-15 mins before the database service is ready for you.


Once database is ready, make an SSH connection which is explained here.

Now I replaced the library from my OPC environment to VM machine and relink the libraries again. Without relink, you’ll receive the same error. Continue reading → Oracle 18c – Run database without ORA-12754

Oracle 18c – Install binaries on Oracle Linux 7

In this blog, I’ll go through oracle 18c installation on oracle Linux 7.4. Oracle 18c is not officially announced for on-premises database. But for study purpose, I thought to use Oracle 18c binaries from oracle edelivery which is available for Oracle Exadata. Other option is to try 18c on Oracle SQL live which I explained here.

My environment is all ready to go. I am using Oracle virtual box 5.2.2 with Oracle Linux 7.4, 4GB memory and extra disk for oracle binaries and data files.

Oracle recommends that when you install Oracle Linux 6 or Oracle Linux 7 and use Oracle Preinstallation RPM to configure your operating systems for Oracle Database and Oracle Grid Infrastructure installations. The Oracle Preinstallation RPM will automatically creates standard (not role-allocated) Oracle installation owner and groups, and sets up other kernel configuration settings as required for Oracle installations. 18c preinstall rpm is not available yet so used 12R2 as its compatible with 18c. Continue reading → Oracle 18c – Install binaries on Oracle Linux 7

Oracle 18c – Private Temporary Tables

Oracle 18c introduced, Private temporary tables concept which are temporary database objects that are dropped at the end of a transaction or session. Private temporary tables are stored in memory and each one is visible only to the session that created it.

The “CREATE PRIVATE TEMPORARY TABLE” statement to create a private temporary table. The ON COMMIT clause indicates if the data in the table is transaction-specific (the default) or session-specific.

Here is my explanation on Oracle Live SQL.

This statement creates a private temporary table that is transaction specific: Continue reading → Oracle 18c – Private Temporary Tables

Oracle 18c – Get it started

Oracle 18c already released and it’s time to upgrade your skills with latest version. As 18c is only available on the Oracle cloud and Oracle engineered systems so how to get familiar with new version if you don’t have oracle cloud account. Don’t worry, you can try oracle 18c on Live SQL.

“Oracle Database 18c” as “Oracle Database 12c Release 2” with some new features. The change in the naming to reflect the year in which the product is released hence the skip of 6 releases. New naming convention is more for simplicity of yearly release model and the patching process.

Another important thing to note, Oracle Database 18c is not an Autonomous database but it’s a cloud service that has new features that makes it easier to build an autonomous database. The on-premises 18c (when released) won’t be autonomous. DBA’s need to script it up to automate the build process etc…

Now it time to start playing with Oracle 18c and here is how you can quickly fire some sql commands on oracle 18c database.
Continue reading → Oracle 18c – Get it started