Category: Pluggable Database

  • Ultra-fast PDB thin clones on Exadata Exascale

    Ultra-fast PDB thin clones on Exadata Exascale

    Want to see how quick it is to create a clone of an Oracle 23ai PDB on Exadata Exascale?

    First a little background information.

    I have a “simple” database in the example, with a PDB – named DEMOPDB1.

    show pdbs
    
    SQL> show pdbs
    
       CON_ID CON_NAME    OPEN MODE     RESTRICTED
    _________ ___________ _____________ _____________
            2 PDB$SEED    READ ONLY     NO
            3 PDB1        READ WRITE    NO
            4 DEMOPDB1    READ WRITE    NO

    It’s approximately 2.4 TB in size (temp excluded).

    SQL> select p.name, sum(f.bytes)/1024/1024/1024 as total_gb
      2  from v$pdbs p, v$datafile f
      3  where p.con_id = f.con_id
      4* group by p.name;
    
    NAME                        TOTAL_GB
    ___________ ________________________
    PDB$SEED          10.625396728515625
    PDB1              14.718536376953125
    DEMOPDB1       2403.8817901611328125

    To create a clone of this PDB on Exascale, all we need to do is

    SQL> set timing on; <- so you can see how fast it is
    
    SQL> create pluggable database demopdb2 from demopdb1 snapshot copy;
    
    Pluggable database DEMOPDB2 created.
    
    Elapsed: 00:00:11.105 <- ~2.4 TB in under 12 seconds!!

    The keywords ‘SNAPSHOT COPY’ are important here. They’re instructing the database to use the space-efficient, thin-provisioned, redirect-on-write capabilities of Exascale to create

    Then, we’ll open it up.

    SQL> alter pluggable database DEMOPDB2 open instances=all;
    
    Pluggable database DEMOPDB2 altered.
    
    Elapsed: 00:00:10.897 <- opening the PDB on 2 instances in this case

    Check the size of the new PDB – spoiler alert, its the same size as the PDB I was cloning!

    SQL> select p.name, sum(f.bytes)/1024/1024/1024 as total_gb
      2  from v$pdbs p, v$datafile f
      3  where p.con_id = f.con_id
      4* group by p.name;
    
    NAME                        TOTAL_GB
    ___________ ________________________
    PDB$SEED          10.625396728515625
    PDB1              14.718536376953125
    DEMOPDB1       2403.8817901611328125
    DEMOPDB2       2403.8817901611328125 <- new PDB!

    And that’s it – less than 30 seconds and you have a thin clone of a PDB.

    How cool, and easy, is that!