En Oracle Database, les operations de "Pluggable Database" (PDB) concernent
principalement la gestion des bases de données conteneurs (CDB) et des bases de données
enfichables (PDB). Voici les opérations essentielles :
1️⃣ Création d'une PDB
a) À partir du modèle PDB$SEED
CREATE PLUGGABLE DATABASE pdb_test
ADMIN USER pdb_admin IDENTIFIED BY password
ROLES = (DBA)
FILE_NAME_CONVERT = ('/pdbseed/', '/pdb_test/');
b) À partir d'un fichier XML (exporté)
CREATE PLUGGABLE DATABASE pdb_test USING
'/path_to_xml/pdb_test.xml'
COPY FILE_NAME_CONVERT = ('/old_path/', '/new_path/');
2️⃣ Ouverture et fermeture d'une PDB
a) Ouvrir une PDB en mode lecture-écriture
ALTER PLUGGABLE DATABASE pdb_test OPEN;
b) Ouvrir toutes les PDBs
ALTER PLUGGABLE DATABASE ALL OPEN;
c) Fermer une PDB
ALTER PLUGGABLE DATABASE pdb_test CLOSE;
3️⃣ Connexion à une PDB
ALTER SESSION SET CONTAINER = pdb_test;
Ou via SQL*Plus :
CONNECT user/password@pdb_test
4️⃣ Déplacer une PDB vers une autre CDB
a) Déconnecter la PDB de la CDB actuelle
ALTER PLUGGABLE DATABASE pdb_test CLOSE;
ALTER PLUGGABLE DATABASE pdb_test UNPLUG INTO
'/path_to_xml/pdb_test.xml';
b) Connecter la PDB à une nouvelle CDB
CREATE PLUGGABLE DATABASE pdb_test USING
'/path_to_xml/pdb_test.xml'
MOVE FILE_NAME_CONVERT = ('/old_path/', '/new_path/');
5️⃣ Supprimer une PDB
a) Déconnecter et supprimer
ALTER PLUGGABLE DATABASE pdb_test CLOSE IMMEDIATE;
DROP PLUGGABLE DATABASE pdb_test INCLUDING DATAFILES;
6️⃣ Sauvegarde et restauration d'une PDB
a) Sauvegarder avec RMAN
BACKUP PLUGGABLE DATABASE pdb_test;
b) Restaurer une PDB
RESTORE PLUGGABLE DATABASE pdb_test;
RECOVER PLUGGABLE DATABASE pdb_test;
👉 Création, ouverture, fermeture, déplacement, suppression, sauvegarde/restauration
d'une PDB ?
Ou veux-tu une explication détaillée du fonctionnement des bases de données conteneurs
(CDB) et pluggable (PDB) dans Oracle ?
D'accord ! Je vais détailler chaque point en expliquant d'abord le fonctionnement des bases
de données conteneurs (CDB) et pluggables (PDB), puis chaque opération (création,
ouverture, fermeture, déplacement, suppression, sauvegarde/restauration) avec des cas
pratiques.
🔹 1. Comprendre le modèle CDB et PDB dans Oracle
Depuis Oracle 12c, Oracle introduit un nouveau modèle appelé Multi-Tenant Architecture
où :
✅ Une CDB (Container Database) est une base de données conteneur qui peut contenir
plusieurs bases de données enfichables (PDBs).
✅ Une PDB (Pluggable Database) est une base de données logique qui peut être
attachée/détachée d'une CDB.
📌 Avantages de ce modèle
✔️Isolation : Chaque PDB est indépendante et a ses propres schémas, utilisateurs et données.
✔️Facilité de gestion : On peut déplacer une PDB d'une CDB à une autre facilement.
✔️Optimisation des ressources : Moins de processus système car toutes les PDBs partagent
la même instance Oracle.
📌 Structure d'une CDB
Une CDB contient :
🔹 ROOT (CDB$ROOT) : Contient les métadonnées et fichiers communs.
🔹 PDB$SEED : Modèle utilisé pour créer de nouvelles PDBs.
🔹 PDBs : Bases de données enfichables contenant des objets et données spécifiques.
🔹 2. Création d’une PDB
Il y a plusieurs façons de créer une PDB :
📍 À partir de PDB$SEED (méthode la plus rapide)
📍 À partir d’un fichier XML (si on veut importer une PDB existante)
📍 Clone d’une autre PDB
➤ a) Création d’une PDB à partir de PDB$SEED
CREATE PLUGGABLE DATABASE pdb_test
ADMIN USER pdb_admin IDENTIFIED BY Password123
ROLES = (DBA)
FILE_NAME_CONVERT = ('/pdbseed/', '/pdb_test/');
👉 Explication :
pdb_test est le nom de la nouvelle PDB.
ADMIN USER définit un utilisateur admin.
FILE_NAME_CONVERT remplace le chemin des fichiers.
📌 Vérifier si la PDB est bien créée :
SELECT PDB_NAME, STATUS FROM DBA_PDBS;
📌 Ouvrir la PDB après création :
ALTER PLUGGABLE DATABASE pdb_test OPEN;
🔹 3. Ouvrir et Fermer une PDB
➤ a) Ouvrir une PDB
ALTER PLUGGABLE DATABASE pdb_test OPEN;
✅ Ouvre une PDB en mode lecture/écriture.
Ouvrir toutes les PDBs :
ALTER PLUGGABLE DATABASE ALL OPEN;
➤ b) Fermer une PDB
ALTER PLUGGABLE DATABASE pdb_test CLOSE;
👉 Une PDB doit être fermée avant de la déconnecter ou la supprimer.
🔹 4. Déplacement d'une PDB vers une autre CDB
Si on veut déplacer une PDB (pdb_test) d’une CDB1 vers CDB2, voici les étapes :
➤ a) Déconnecter la PDB de la CDB actuelle
ALTER PLUGGABLE DATABASE pdb_test CLOSE;
ALTER PLUGGABLE DATABASE pdb_test UNPLUG INTO
'/u01/app/oracle/oradata/pdb_test.xml';
✅ Oracle crée un fichier XML avec les métadonnées de la PDB.
➤ b) Déplacer les fichiers de la PDB vers la nouvelle CDB
Copier les fichiers de pdb_test dans le répertoire de la nouvelle CDB.
➤ c) Brancher la PDB à la nouvelle CDB
CREATE PLUGGABLE DATABASE pdb_test USING
'/u01/app/oracle/oradata/pdb_test.xml'
COPY FILE_NAME_CONVERT = ('/old_path/', '/new_path/');
➤ d) Ouvrir la PDB
ALTER PLUGGABLE DATABASE pdb_test OPEN;
🔹 5. Suppression d'une PDB
Avant de supprimer une PDB, il faut la fermer et la débrancher.
➤ a) Fermer la PDB
ALTER PLUGGABLE DATABASE pdb_test CLOSE IMMEDIATE;
➤ b) Supprimer la PDB
DROP PLUGGABLE DATABASE pdb_test INCLUDING DATAFILES;
✅ Attention : INCLUDING DATAFILES supprime aussi les fichiers physiques.
🔹 6. Sauvegarde et restauration d’une PDB
On peut utiliser RMAN pour sauvegarder/restaurer une PDB.
➤ a) Sauvegarde d’une PDB
BACKUP PLUGGABLE DATABASE pdb_test;
➤ b) Restauration d’une PDB
RESTORE PLUGGABLE DATABASE pdb_test;
RECOVER PLUGGABLE DATABASE pdb_test;
🔹 7. Cas Pratiques
📌 Cas 1 : Déployer un environnement avec plusieurs PDBs
💡 Un administrateur Oracle veut configurer une CDB avec 3 bases de données indépendantes
pour différents services (RH, Finance, Stock).
Solution :
1️⃣ Créer la CDB (si elle n’existe pas)
2️⃣ Créer trois PDBs :
CREATE PLUGGABLE DATABASE pdb_rh
ADMIN USER admin_rh IDENTIFIED BY Pass123
FILE_NAME_CONVERT = ('/pdbseed/', '/pdb_rh/');
CREATE PLUGGABLE DATABASE pdb_finance
ADMIN USER admin_fin IDENTIFIED BY Pass123
FILE_NAME_CONVERT = ('/pdbseed/', '/pdb_finance/');
CREATE PLUGGABLE DATABASE pdb_stock
ADMIN USER admin_stock IDENTIFIED BY Pass123
FILE_NAME_CONVERT = ('/pdbseed/', '/pdb_stock/');
3️⃣ Ouvrir les bases
ALTER PLUGGABLE DATABASE pdb_rh OPEN;
ALTER PLUGGABLE DATABASE pdb_finance OPEN;
ALTER PLUGGABLE DATABASE pdb_stock OPEN;
📌 Cas 2 : Migration d’une PDB vers un autre serveur
💡 Une entreprise veut déplacer pdb_clients d’un serveur à un autre pour des raisons de
performance.
Solution :
1️⃣ Débrancher la PDB
ALTER PLUGGABLE DATABASE pdb_clients CLOSE;
ALTER PLUGGABLE DATABASE pdb_clients UNPLUG INTO
'/backup/pdb_clients.xml';
2️⃣ Copier les fichiers vers le nouveau serveur
3️⃣ Attacher la PDB sur le nouveau serveur
CREATE PLUGGABLE DATABASE pdb_clients USING
'/backup/pdb_clients.xml'
MOVE FILE_NAME_CONVERT = ('/old_path/', '/new_path/');
4️⃣ Ouvrir la PDB
ALTER PLUGGABLE DATABASE pdb_clients OPEN;
🔹 Voilà un tour complet sur les PDBs et CDBs sous Oracle ! Dis-moi si tu veux un
approfondissement sur un point spécifique. 🚀