Multitenant : Créer et Configurer une Pluggable Database (PDB

Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Multitenant : Créer et Configurer une
Pluggable Database (PDB) avec Oracle
Database 12c Release 1 (12.1)
L'option multitenant introduite avec Oracle Database 12c permet à un seul
conteneur database (CDB) d'avoir plusieurs pluggable databases (PDB). Cet
article présente les options disponibles pour créer une nouvelle pluggable
database dans un conteneur database.
Pour des articles spécifiques sur l'installation Oracle Database 12 c.
Cet article présente :
-
-
-
Oracle Universal Installer (OUI)
Avec Database Configuration Assistant (DBCA)
o Créer une Pluggable Database (PDB)
o Débrancher une Pluggable Database (PDB)
o Brancher une Pluggable Database (PDB)
o Supprimer une Pluggable Database (PDB)
o Configurer une Pluggable Database (PDB)
Manuellement (SQL*Plus)
o Créer une Pluggable Database (PDB) m
o Débrancher une Pluggable Database (PDB)
o Brancher une Pluggable Database (PDB)
o Cloner une Pluggable Database (PDB)
o Supprimer une Pluggable Database (PDB)
SQL Developer
Cloud Control
Autres articles :
-
Multitenant : Migrer d'un Non-Container Database (CDB) vers une
Pluggable Database (PDB) avec Oracle Database 12c Release 1 (12.1)
Multitenant : Configurer les paramètres d'instances et Modifier les
Conteneurs Databases et (CDB) et Pluggable Databases (PDB) avec
Oracle Database 12c Release 1 (12.1)
Oracle Universal Installer (OUI)
Dans un précédent article, nous avons présenté la création d'une pluggable
database (PDB) pendant la création d'un conteneur database (CDB) avec
l'installation du logiciel Oracle avec Oracle Universal Installer (OUI). Se
reporter à l'article car ces étapes ne sont pas reportées ici.
1
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Database Configuration Assistant (DBCA)
Dans un précédent article nous avons présenté la création d'un pluggable
database (PDB) avec la création d'un conteneur database (CDB) avec
Database Configuration Assistant (DBCA). Se reporter à l'article car ces
étapes ne sont pas reportées ici.
DBCA inclut une nouvelle option sur l'écran "Database Operation"
permettant de gérer les pluggable databases d'un conteneur database.
Sélectionnez l'option "Manage Pluggable Databases" et cliquez sur le bouton
"Next".
Vous pouvez voir sur l'écran résultant quelles opérations sont possibles avec
les pluggable databases.
2
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Les sections suivantes décrivent certaines de ces options.
Créer une Pluggable Database (PDB) avec DBCA
Sur l'écran "Manage Pluggable Databases", sélectionnez l'option "Create a
Pluggable Database" et cliquez sur le bouton "Next". Sur l'écran résultant,
sélectionnez le conteneur database pour abriter la nouvelle pluggable et
cliquez sur le bouton "Next".
3
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Sélectionnez l'option "Create a new Pluggable Database" et cliquez sur le
bouton "Next". Si vous branchez dans une database précédemment
débranchée, vous devez sélectionner l'Archive PDB ou les options de fichiers
PDB correspondant au format de fichiers contenant le PDB débranchée.
4
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Entrez le nom de la pluggable database, l'emplacement database et les
informations de connexion de l'administrateur, puis cliquez sur le bouton
"Next".
5
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Si vous êtes d'accord avec les informations du résumé, cliquez sur le bouton
"Finish".
Wait
Attendez que la pluggable database soit créée. Une fois terminée, cliquez sur
le bouton "OK" sur la boite de dialogue et sur le bouton "Close" de l'écran
principal.
6
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
La nouvelle pluggable database est créée en tant que clone database.
Débrancher une Pluggable Database (PDB) avec DBCA
Sur l'écran "Manage Pluggable Databases", sélectionnez l'option "Unplug a
Pluggable Database" et cliquez sur le bouton "Next". Sur l'écran résultant,
sélectionnez le conteneur database abritant la pluggable database à
débrancher et cliquez sur le bouton "Next".
7
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Sélectionnez la PDB à débrancher, choisissez d'utiliser une archive pluggable
database ou un ensemble de fichiers et entrez les détails d'emplacement
appropriés. Cliquez sur le bouton "Next" .
8
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Si vous êtes d'accord avec les informations du résumé, cliquez sur le bouton
"Finish".
Attendez que la pluggable database soit débranchée. Une fois terminée,
cliquez sur le bouton "OK" sur la boit de dialogue et sur le bouton "Close" de
l'écran principal.
9
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
La pluggable database est maintenant débranchée.
Brancher une Pluggable Database (PDB) avec DBCA
Sur l'écran "Manage Pluggable Databases", sélectionnez l'option "Create a
Pluggable Database" et cliquez sur le bouton "Next". Sur l'écran résultant,
sélectionnez le conteneur database pour abriter la nouvelle pluggable
database et cliquez sur le bouton "Next".
10
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Sélectionnez l'option "Create Pluggable Database From PDB Archive" ou
"Create Pluggable Database using PDB File Set" et entrez l'emplacement
des fichiers nécessaires. Vous pouvez rechercher les fichiers avec le bouton
"Browse".
11
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Entrez le nom de la pluggable database, l'emplacement database et les
informations de connexion pour l'administrateur, puis cliquez sur le bouton
"Next".
Si vous êtes d'accord avec les informations du résumé, cliquez sur le bouton
"Finish".
12
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Attendez que la pluggable database soit créée. Une fois terminée, cliquez sur
le bouton "OK" dans la boite de dialogue et sur le bouton "Close" sur l'écran
principal.
La pluggable database est branchée au conteneur database.
Supprimer une Pluggable Database (PDB) avec DBCA
Sur l'écran "Manage Pluggable Databases", sélectionnez l'option "Delete a
Pluggable Database" et cliquez sur le bouton "Next". Sur l'écran résultant,
sélectionnez le conteneur database qui abrite la pluggable database à
supprimer et cliquez sur le bouton "Next".
13
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Sélectionnez la PDB à supprimer et cliquez sur le bouton "Next".
Si vous êtes d'accord avec les informations du résumé, cliquez sur le bouton
"Finish".
14
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Attendez que la pluggable database soit supprimée. Une fois terminée, cliquez
sur le bouton "OK" sur le boite de dialogue et sur le bouton "Close" sur l'écran
principal.
15
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
La pluggable database est supprimée du conteneur database.
Configurer une Pluggable Database (PDB) avec DBCA
Sur l'écran "Manage Pluggable Databases", sélectionnez l'option "Configure a
Pluggable Database" et cliquez sur le bouton "Next". Sur l'écran résultant,
sélectionnez le conteneur database qui abrite la pluggable database à
configurer et cliquez sur le bouton "Next".
Sélectionnez la PDB à configurer et cliquez sur le bouton "Next".
16
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Sélectionnez les options supplémentaires à configurer et cliquez sur le bouton
"Next".
Si vous êtes d'accord avec les informations du résumé, cliquez sur le bouton
17
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
"Finish".
Attendez que la pluggable database soit configurée. Une fois terminée, cliquez
sur le bouton "OK" dans la boite de dialogue et sur le bouton "Close" dans
l'écran principal.
18
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
La pluggable database est configurée.
Manuel (SQL*Plus)
Il y a différentes variantes des commandes CREATE PLUGGABLE
DATABASE et ALTER PLUGGABLE DATABASE, aussi nous ne montrerons
ici que certaines reproduites dans DBCA.
Pour toutes les opérations listées ici, vous devez être connecté au CDB avec
le conteneur défini à root (par défaut). Habituellement vous êtes connectés
avec un utilisateur courant munis des privilèges SYSDBA ou SYSOPER.
Quand vous créez une nouvelle pluggable database, l'utilisateur doit avoir le
privilège système CREATE PLUGGABLE DATABASE.
Créer une Pluggable Database (PDB) manuellement
Pour créer une nouvelle pluggable database, tout ce que vous avez à faire et
d'indiquer à Oracle où le fichier sera placé. Vous pouvez le faire grâce à deux
méthodes. La première méthode utilise la clause FILE_NAME_CONVERT dans
l'ordre CREATE PLUGGABLE DATABASE.
CONN / AS SYSDBA
CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY Password1
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/cdb1/pdbseed/','/u01/app/oracle
/oradata/cdb1/pdb2/');
19
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Alternativement, vous pouvez spécifier le paramètre d'initialisation avant
d'appeler la commande sans utiliser la clause FILE_NAME_CONVERT.
CONN / AS SYSDBA
ALTER SESSION SET
PDB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/cdb1/pdbseed/','/u01/app/ora
cle/oradata/cdb1/pdb3/';
CREATE PLUGGABLE DATABASE pdb3 ADMIN USER pdb_adm IDENTIFIED BY Password1;
A chaque fois qu'il faut convertir l'emplacement des fichiers, ces deux
méthodes fonctionnent. Dans le reste de l'article nous utiliserons la méthode
FILE_NAME_CONVERT pour simplifier la présentation.
Vous pouvez vérifier la présence des PDB en interrogeant les vues DBA_PDBS
et V$PDBS.
COLUMN pdb_name FORMAT A20
SELECT pdb_name, status
FROM
dba_pdbs
ORDER BY pdb_name;
PDB_NAME
STATUS
-------------------- ------------PDB$SEED
NORMAL
PDB1
NORMAL
PDB2
NEW
PDB3
NEW
SQL>
SELECT name, open_mode
FROM
v$pdbs
ORDER BY name;
NAME
OPEN_MODE
------------------------------ ---------PDB$SEED
READ ONLY
PDB1
MOUNTED
PDB2
MOUNTED
PDB3
MOUNTED
SQL>
Les PDB sont créées avec un statut à 'NEW'. Elles doivent être ouvertes en
mode READ WRITE au moins une fois pour l'intégration de la PDB dans le
CDB.
ALTER PLUGGABLE DATABASE pdb2 OPEN READ WRITE;
ALTER PLUGGABLE DATABASE pdb3 OPEN READ WRITE;
SELECT pdb_name, status
FROM
dba_pdbs
ORDER BY pdb_name;
PDB_NAME
STATUS
-------------------- ------------PDB$SEED
NORMAL
20
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
PDB1
PDB2
PDB3
NORMAL
NORMAL
NORMAL
SQL>
SELECT name, open_mode
FROM
v$pdbs
ORDER BY name;
NAME
OPEN_MODE
------------------------------ ---------PDB$SEED
READ ONLY
PDB1
MOUNTED
PDB2
READ WRITE
PDB3
READ WRITE
SQL>
Note. Suivant la syntaxe utilisée, vous devez attribuer le rôle PDB_DBA aux
administrateurs locaux des PDB.
Débrancher une Pluggable Database (PDB) manuellement
Avant de tenter de débrancher une PDB, vous devez vérifier qu'elle soit
fermée. Pour débrancher la database utilisez la commande ALTER
PLUGGABLE DATABASE avec la clause UNPLUG INTO pour spécifier
l'emplacement du fichier de métadonnées XML.
ALTER PLUGGABLE DATABASE pdb2 CLOSE;
ALTER PLUGGABLE DATABASE pdb2 UNPLUG INTO
'/u01/app/oracle/oradata/cdb1/pdb2/pdb2.xml';
La pluggable database est encore présente mais ne peut pas être ouverte tant
que le fichier de métadonnées et tous les datafiles ne sont pas copiés ailleurs
correctement.
SELECT name, open_mode
FROM
v$pdbs
ORDER BY name;
NAME
OPEN_MODE
------------------------------ ---------PDB$SEED
READ ONLY
PDB1
MOUNTED
PDB2
MOUNTED
PDB3
READ WRITE
SQL>
You can delete the PDB, choosing to keep the files on the file system.
DROP PLUGGABLE DATABASE pdb2 KEEP DATAFILES;
SELECT name, open_mode
FROM
v$pdbs
ORDER BY name;
NAME
OPEN_MODE
------------------------------ ---------PDB$SEED
READ ONLY
PDB1
MOUNTED
21
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
PDB3
READ WRITE
SQL>
Brancher une Pluggable Database (PDB) manuellement
Brancher une PDB dans le CDB est similaire à créer une nouvelle PDB.
Vérifiez d'abord si la PBD est compatible avec le CDB en appelant la fonction
DBMS_PDB.CHECK_PLUG_COMPATIBILITY, en passant le fichier de
métadonnées XML et le nom de la PDB à créer.
SET SERVEROUTPUT ON
DECLARE
l_result BOOLEAN;
BEGIN
l_result := DBMS_PDB.check_plug_compatibility(
pdb_descr_file =>
'/u01/app/oracle/oradata/cdb1/pdb2/pdb2.xml',
pdb_name
=> 'pdb2');
IF l_result THEN
DBMS_OUTPUT.PUT_LINE('compatible');
ELSE
DBMS_OUTPUT.PUT_LINE('incompatible');
END IF;
END;
/
compatible
PL/SQL procedure successfully completed.
SQL>
Si la PDB est compatible, créez une nouvelle PDB en l'utilisant comme
source. Pour la créer avec un nouveau nom, par exemple :
CREATE PLUGGABLE DATABASE pdb5 USING
'/u01/app/oracle/oradata/cdb1/pdb2/pdb2.xml'
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/cdb1/pdb2/','/u01/app/oracle/or
adata/cdb1/pdb5/');
Au lieu de brancher la database dans le même conteneur, nous n'avons pas
besoin de copier les fichiers ou recréer le fichier temp, mais à la place :
CREATE PLUGGABLE DATABASE pdb2 USING
'/u01/app/oracle/oradata/cdb1/pdb2/pdb2.xml'
NOCOPY
TEMPFILE REUSE;
ALTER PLUGGABLE DATABASE pdb2 OPEN READ WRITE;
SELECT name, open_mode
FROM
v$pdbs
ORDER BY name;
NAME
OPEN_MODE
------------------------------ ---------PDB$SEED
READ ONLY
PDB1
MOUNTED
PDB2
READ WRITE
22
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
PDB3
READ WRITE
SQL>
Cloner une Pluggable Database (PDB) manuellement
Cloner une PDB locale existante est similaire à créer une nouvelle PDB depuis
la PDB, excepté que maintenant nous utilisons sans PDB comme source, à
identifier sur la clause FROM. Vérifiez que la source PDB est ouverte en mode
READ ONLY.
ALTER PLUGGABLE DATABASE pdb3 CLOSE;
ALTER PLUGGABLE DATABASE pdb3 OPEN READ ONLY;
CREATE PLUGGABLE DATABASE pdb4 FROM pdb3
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/cdb1/pdb3/','/u01/app/oracle/or
adata/cdb1/pdb4/');
ALTER PLUGGABLE DATABASE pdb4 OPEN READ WRITE;
-- Switch the source PDB back to read/write
ALTER PLUGGABLE DATABASE pdb3 CLOSE;
ALTER PLUGGABLE DATABASE pdb3 OPEN READ WRITE;
La syntaxe de clonage permet de cloner de databases distantes avec un
database link dans le CBD. Il y a quelques restrictions associées à cette
fonctionnalité :
-
le database link peut pointer directement sur le PDB distant ou un
utilisateur dans le CBD distant ayant la PDB distante.
- S'il pointe sur un utilisateur du CBD distant ayant la PDB distante ,cet
utilisateur doit avoir le privilège système CREATE PLUGGABLE
DATABASE.
- La source et la cible CDBs doivent avoir le même endians.
- La source et la cible CDBs doivent avoir les mêmes options installées.
- La source et la cible CDBs doivent avoir le même jeu de caractères et
jeu de caractères national.
Après avoir vérifié que la PDB distante est en mode READ ONLY, la
commande suivante est passée :
CREATE PLUGGABLE DATABASE pdb5 FROM remote_pdb5@remotecdb1
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/cdb1/remote_pdb5/','/u01/app/or
acle/oradata/cdb1/pdb5/');
ALTER PLUGGABLE DATABASE pdb4 OPEN READ WRITE;
Cette fonctionnalité ne marche pas correctement avec la version 12.1.0.1
database, mais devrait être fixée avec le premier patchset.
Supprimer une Pluggable Database (PDB) manuellement
Quand vous supprimez une pluggable database, vous devez décider de
conserver ou supprimer les fichiers associés. Les PDB doivent être fermées
23
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
avant d'être supprimées.
ALTER PLUGGABLE DATABASE pdb2 CLOSE;
DROP PLUGGABLE DATABASE pdb2 KEEP DATAFILES;
ALTER PLUGGABLE DATABASE pdb3 CLOSE;
DROP PLUGGABLE DATABASE pdb3 INCLUDING DATAFILES;
ALTER PLUGGABLE DATABASE pdb4 CLOSE;
DROP PLUGGABLE DATABASE pdb4 INCLUDING DATAFILES;
SELECT name, open_mode
FROM
v$pdbs
ORDER BY name;
NAME
OPEN_MODE
------------------------------ ---------PDB$SEED
READ ONLY
PDB1
MOUNTED
SQL>
SQL Developer
La section DBA de SQL Developer inclut trois nœuds appelés "Container
Database".
Par click droit sur le nœud "Container Database" le menu popup montre les
opérations disponibles.
24
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
Par click droit sur un nœud spécifique PDB un menu popup montre
uniquement les opérations pertinentes pour cette PDB.
Si vous comprenez l'approche DBCA et SQL*Plus pour gérer les PDB, les
écrans précédents sont très explicites.
Cloud Control
Cloud Control 12cR3 supporte la fonctionnalité pluggable database. Après
25
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
avoir cliqué sur le conteneur database, L'option du menu "Oracle Database
Control  Open/Close Pluggable Database" permet de contrôler l'état
des PDB appartenant au CDB.
L'option du menu "Oracle Database  Provision  Provision Pluggable
Database" permet d'effectuer d'autres opérations sur les PDB du CDB,
comme clonage, branchement entre autres.
Comme avec SQL Developer, si vous comprenez comment la fonctionnalité
pluggable database marche, les écrans Cloud Control s'expliquent par euxmêmes.
Pour plus d'informations, voir :
-
Introduction à l'Architecture Multitenant
Présentation de l'Architecture Multitenant
Gestion d'un Environnement Multitenant
CREATE PLUGGABLE DATABASE
ALTER PLUGGABLE DATABASE
DBMS_PDB
Oracle Enterprise Manager Cloud Control 12c Release 3 Installation on
Oracle Linux 5.9 and 6.4
26
Source : http://www.oracle-base.com/articles/12c/multitenant-create-andconfigure-pluggable-database-12cr1.php
-
Multitenant : Migrer d'un Non-Container Database (CDB) vers une
Pluggable Database (PDB) in Oracle Database 12c Release 1 (12.1)
27