Skip to content

Clonage d'un PDB

PhilippeLeroux edited this page May 13, 2017 · 10 revisions

Cloner un PDB entre 2 serveurs.

Serveur : srvplutot01 CDB PLUTOT (Pas de Grid Infra)

oracle@srvplutot01:PLUTOT:~> lspdbs

SQL*Plus: Release 12.2.0.1.0 Production on Tue May 9 09:40:38 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connecte a :
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


Instance   PDB name     Open mode  Open time         Size (Mb) RECOVERY RES State
---------- ------------ ---------- -------------- ------------ -------- --- --------------
PLUTOT     CDB$ROOT     READ WRITE 17/05/09 09:38            0 ENABLED  NO  NOT SAVED
PLUTOT     PDB$SEED     READ ONLY  17/05/09 09:38          774 ENABLED  NO  NOT SAVED
PLUTOT     PDB01        READ WRITE 17/05/09 09:38          844 ENABLED  NO  OPEN

Sur PDB01 les schémas de démos ont été installés pour faire un peu de volume.

Serveur : srvplutard01 CDB PLUTARD (Pas de Grid Infra)

oracle@srvplutard01:PLUTARD:~> lspdbs

SQL*Plus: Release 12.2.0.1.0 Production on Tue May 9 09:40:50 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connecte a :
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


Instance   PDB name     Open mode  Open time         Size (Mb) RECOVERY RES State
---------- ------------ ---------- -------------- ------------ -------- --- --------------
PLUTARD    CDB$ROOT     READ WRITE 17/05/09 09:38            0 ENABLED  NO  NOT SAVED
PLUTARD    PDB$SEED     READ ONLY  17/05/09 09:38          774 ENABLED  NO  NOT SAVED

2 lignes selectionnees.

But cloner le PDB01 de PLUTOT sur PLUTARD

  1. Ajout de l'alias pdb01_on_plutot sur le serveur srvplutard01 :

    J'utilise le service par défaut du PDB.

    oracle@srvplutard01:PLUTARD:admin> cat tnsnames.ora
    pdb01_on_plutot =
    	(DESCRIPTION =
    		(ADDRESS =
    			(PROTOCOL = TCP)
    			(HOST = srvplutot01)
    			(PORT = 1521)
    		)
    		(CONNECT_DATA =
    			(SERVER = DEDICATED)
    			(SERVICE_NAME = pdb01)
    		)
    	)
    

    Cet alias sera utilisé par le dblink.

  2. Test de connexion

    Se positionner dans le répertoire ~/plescripts/db/sql

    oracle@srvplutard01:PLUTARD:sql> sqlplus sys/Oracle12@pdb01_on_plutot as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production on Tue May 9 09:47:55 2017
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    
    Connecte a :
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    
    sys@pdb01> @lsdbrole
    
    DB name    UQ name    Open mode  DB role          Broker   CDB Flashback
    ---------- ---------- ---------- ---------------- -------- --- ----------
    PLUTOT     PLUTOT     READ WRITE PRIMARY          DISABLED YES YES
    
    1 ligne selectionnee.
    

    On est bien connecté sur le serveur srvplutot01.

  3. Sur le CDB PLUTARD création d'un dblink pointant sur le PDB pdb01 de PLUTOT

    Le compte pdbadmin et le mot passe Oracle12 sont ceux utilisés lors de la création de PDB01.

    sys@cdb$root> create database link pdb01_on_plutot
    connect to pdbadmin identified by Oracle12 using 'pdb01_on_plutot';
    
    Lien de base de donnees cree.
    
  4. Clonage du PDB

    sys@cdb$root> create pluggable database pdb01_cloned from pdb01@pdb01_on_plutot;
    
    Base de donnees pluggable creee.
    
    Ecoule : 00 :00 :52.27
    
  5. Validation

    sys@cdb$root> @lspdbs
    
    Instance   PDB name     Open mode  Open time         Size (Mb) RECOVERY RES State
    ---------- ------------ ---------- -------------- ------------ -------- --- --------------
    PLUTARD    CDB$ROOT     READ WRITE 17/05/09 09:38            0 ENABLED  NO  NOT SAVED
    PLUTARD    PDB$SEED     READ ONLY  17/05/09 09:38          774 ENABLED  NO  NOT SAVED
    PLUTARD    PDB01_CLONED MOUNTED    17/05/09 09:59            0 ENABLED      NOT SAVED
    
    3 lignes selectionnees.
    
  6. Ouverture du PDB :

    sys@cdb$root> alter pluggable database PDB01_CLONED open;
    
    Base de donnees pluggable modifiee.
    
    sys@cdb$root> alter pluggable database PDB01_CLONED save state;
    
    Base de donnees pluggable modifiee.
    
    sys@cdb$root> @lspdbs
    
    Instance   PDB name     Open mode  Open time         Size (Mb) RECOVERY RES State
    ---------- ------------ ---------- -------------- ------------ -------- --- --------------
    PLUTARD    CDB$ROOT     READ WRITE 17/05/09 09:38            0 ENABLED  NO  NOT SAVED
    PLUTARD    PDB$SEED     READ ONLY  17/05/09 09:38          774 ENABLED  NO  NOT SAVED
    PLUTARD    PDB01_CLONED READ WRITE 17/05/09 10:26          844 ENABLED  NO  OPEN
    
    3 lignes selectionnees.
    
  7. Liste des services :

    sys@cdb$root> @lssrv
    
    Name             Network name     Enabled  pdb
    ---------------- ---------------- -------- ----------------
    pdb01_oci        pdb01_oci        NO       PDB01_CLONED
    pdb01_java       pdb01_java       NO       PDB01_CLONED
    pdb01_cloned     pdb01_cloned     NO       PDB01_CLONED
    SYS$BACKGROUND                    NO       CDB$ROOT
    SYS$USERS                         NO       CDB$ROOT
    PLUTARDXDB       PLUTARDXDB       NO       CDB$ROOT
    PLUTARD          PLUTARD          NO       CDB$ROOT
    
    7 lignes selectionnees.
    

    Les services sont présents mais pas renommés, il faut donc les supprimer.

    Avec le Grid Infra, il faut les supprimer puis les recréer avec srvctl.

Clone this wiki locally