Cloner une PDB dans la même CDB (clone local / à chaud)
OracleMultitenantCommande
-- Hot clone prerequisites: local undo + ARCHIVELOG
SELECT property_value AS local_undo
FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED';
SELECT log_mode FROM v$database;
CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb>
FILE_NAME_CONVERT = ('/<pdb>/', '/<new_pdb>/');
-- OMF/ASM: CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb> CREATE_FILE_DEST = '+DATA';
ALTER PLUGGABLE DATABASE <new_pdb> OPEN;
SELECT name, open_mode FROM v$pdbs WHERE name = UPPER('<new_pdb>');Ce que fait la commande
Crée une nouvelle PDB dans la même CDB en copiant les datafiles de la PDB source ; avec local undo et ARCHIVELOG, cela peut s'exécuter pendant que la source est ouverte en lecture-écriture (hot clone).
Quand l'utiliser
Pour créer une copie de test/développement d'une PDB de production, répéter une mise à niveau ou un patch, ou faire une copie rapide avant un changement risqué.
Attention
La copie génère des E/S supplémentaires sur la source et nécessite autant d'espace que la source sur la cible. En mode shared undo ou en NOARCHIVELOG, la source doit être READ ONLY (documentation 19c). Le clone contient des données de production : vérifiez le masquage, les DB links, les jobs (DBMS_SCHEDULER) et les connexions aux systèmes externes avant de l'ouvrir.
Voir aussi
- Créer une nouvelle PDB depuis PDB$SEED
- Cloner une PDB depuis une autre CDB via un DB link (remote clone)
- Débrancher une PDB et la brancher dans une autre CDB (ou la même)
- Ouvrir les PDB et les garder ouvertes après un redémarrage de la CDB (SAVE STATE)
- Définir des limites de CPU, mémoire, E/S et stockage par PDB
- Vérifier dans quel conteneur vous êtes et interroger toutes les PDB depuis la racine (CDB_ / CONTAINERS)