Tales from Demo Grounds part 1: Clone PDBs while open READ-WRITE

DISCLAIMER: I’ve got this information by chatting with Oracle developers at the Demo Grounds. The functionality is not documented yet and Oracle may change it at its sole discretion. Please refer to the documentation if/when it will be updated 😉

In one of my previous posts named “A PDB is cloned while in read-write, Data Guard loose its marbles (12.1.0.2, ORA-19729)” I’ve blogged about a weird behaviour:

The documentation states that you can create a pluggable database from another one only if the source PDB is open read-only.

Indeed, If I try to clone it when the source PDB is MOUNTED, I get error ORA-65036:

The weird behavior is that if you do it when the source is in read-write mode, it works from release 12.1.0.2 (onward?)

I’ve questioned the developers at the DEMO Grounds and they have confirmed that:

  • With the 12.1.0.2, they have initially planned to disclose this functionality (clone PDBS in READ-WRITE).
  • That they had problems in making it work with an Active Data Guard environment (a-ah! so my post was not completely wrong)
  • Finally they have released it as undocumented feature
  • In the next release “they will fix it, maybe” and document it
  • The process of cloning the PDB anyway freeze the transactions on the source

I hope that this update helps clarifying both the behavior and my previous post about this problem! 🙂

Cheers

Ludo

The following two tabs change content below.

Ludovico

Principal Product Manager at Oracle
Ludovico is a member of the Oracle Database High Availability (HA), Scalability & Maximum Availability Architecture (MAA) Product Management team in Oracle. He focuses on Oracle Data Guard, Flashback technologies, and Cloud MAA.

5 thoughts on “Tales from Demo Grounds part 1: Clone PDBs while open READ-WRITE

  1. Pingback: Clone remote pdb in-situ, across dB link | Notes and Musings

  2. .. freezing the database while cloning it makes the “improvement” almost useless.

    As you can “duplicate from active database” when using rman – this should be possible with PDBs, too.
    And – BTW – this can be a workaround (I must admit, I haven’t tried it): use rman to duplicate a CDB “from active database” – and exclude all PDBs, except the one you want to clone.
    After duplicating, unplug/move/plug the copied PDB.

    Cheers
    Markus

    • One month to find the time to reply. Shame on me, sorry.
      The architectural problem that Oracle is facing is quite complex, IMHO. They have chosen to use shared undo and redo stream (unlike SQL Server).
      Active duplicate requires recovery of log information in both data files and undo files, this is why it’s not so obvious to do it directly at the clone time, even if it’s local to the CDB.
      Your workaround should work, it’s really like a PDBPITR, so technically I do not expect any problem…

  3. Pingback: Tales from Demo Grounds part 1: Clone PDBs while open READ-WRITE - Ludovico Caldara - Blogs - triBLOG

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.