Comment puis-je connecter une PDB à une base de données de conteneur Oracle12c ?

Summary: Notre objectif est d’offrir des solutions qui simplifient l’informatique en fournissant des solutions de base de données, un développement personnalisé, des centres de données dynamiques et des solutions informatiques flexibles. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

S’applique à : 
Bases de données : Oracle 12cR1

Auteur :
Mahesh Reddy

Problème : 
Comment puis-je connecter une PDB à une base de données de conteneur Oracle12c ?

Solution : 
Vous pouvez créer une base de données enfichable de l’une des manières suivantes :
  • Créer une nouvelle PDB avec Seed
  • Créer une nouvelle PDB en clonant une PDB existante
  • Connecter une PDB déconnectée dans CDB
  • Créer une nouvelle PDB à partir de 12c non-CDB
1. Créer une nouvelle PDB avec Seed :

Créez une PDB à l’aide de la base de données SEED. Cette méthode copie les fichiers associés à Seed vers un nouvel emplacement et les associe à la nouvelle PDB. Vous pouvez facilement créer une nouvelle PDB à partir de SEED à l’aide de la commande create pluggable database.

Vous pouvez spécifier les clauses suivantes pour créer une nouvelle PDB à partir de SEED de différentes manières :
  • Storage : spécifie les limites de stockage
  • Default Tablespace : crée un espace de fichiers de petite taille et l’attribue aux utilisateurs non-système.
  • path_prefix : indique le chemin d’accès absolu
  • file_name_convert : spécifie le nouvel emplacement des fichiers PDB à partir des fichiers sources.
  • Tempfile reuse : permet de réutiliser le fichier temporaire à partir de l’emplacement cible.
  • Roles : rôles prédéfinis Oracle à accorder au rôle PDB_DBA.
SLN310932_fr__1icon Remarque : la clause ROLES ne peut être utilisée que lorsque vous créez une PDB à partir de Seed.

Exemple : 1

Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;

La commande ci-dessus crée la PDB avec le PDBUSR de l’utilisateur local.  Cette commande accorde le rôle PDB_DBA à l’administrateur PDB « pdbusr » et accorde les rôles Oracle prédéfinis spécifiés au rôle PDB_DBA localement dans la PDB.

Exemple : 2                              

Sql> Create pluggable database PDBNAME admin user pdbusr identified by PASSWORD storage (MAXSIZE 5G) default tablespace USERS datafile ‘+DATA_NEW’ size 100M autoextend on path_prefix = ‘+DATA_NEW’ file_name_convert = (‘+DATA’,’DATA_NEW’);

La commande ci-dessus crée la PDB avec une taille limitée, spécifie que tous les tablespaces qui appartiennent à la PDB ne doivent pas dépasser 5 gigaoctets, et crée les utilisateurs de la tablespace par défaut pour les utilisateurs non administrateurs dans le nouvel emplacement « +DATA_NEW ». 

2.  Créer une nouvelle PDB en clonant une PDB existante :

Le clonage de la base de données de production est une technique courante qui permet de développer et de tester les modifications apportées aux applications et aux environnements associés. Avant d’installer une nouvelle version du système d’exploitation, le logiciel de stockage ou la version de l’application dans un environnement de production, il est nécessaire d’effectuer un test approfondi à l’aide des données de production. Cela s’effectue généralement en copiant la base de données de production dans un environnement de test.

Dans uniOracle12c, vous pouvez utiliser la commande CREATE PLUGGABLE DATABASE pour cloner une PDB. Cette commande permet de cloner une PDB source et connecte le clone à la même CDB ou à une carte CDB distante.

L’instruction CREATE PLUGGABLE DATABASE copie les fichiers associés à la PDB source vers un nouvel emplacement, et associe les fichiers à la PDB cible.

Différents types de clauses :

1.       Clonage d’une PDB locale sans clauses

Aucune clause signifie qu’il n’y a aucune modification structurelle.

Exemple : sql> create pluggable database clone_pdb from pdb;

Ici, la PDB clone a été créée avec la même taille et les mêmes rôles, mais avec des GUID différents dans le groupe de disques par défaut.

2.       Clonage d’une PDB locale à l’aide des clauses PATH_PREFIX et FILE_NAME_CONVERT

La clause FILE_NAME_CONVERT est requise pour spécifier les emplacements cibles des fichiers copiés. Dans cet exemple, les fichiers sont copiés à partir d’un emplacement vers un autre emplacement.

Exemple : sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');

Dans cet exemple, les fichiers de données de la PDB source sont stockés dans le groupe de disques « +DATA’ » et les fichiers de données de la PDB clone sont placés dans différents groupes de disques « +BRLOAD ». Vous pouvez utiliser la clause FILE_NAME_CONVERT pour remplacer l’emplacement des fichiers de données « +DATA » par « +BRLOAD ».

3.       Clonage d’un fichier PDB local à l’aide des clauses FILE_NAME_CONVERT et STORAGE.

Des limites de stockage doivent être appliquées pour la PDB. Par conséquent, la clause STORAGE est requise. Plus précisément, toutes les tablespaces qui appartiennent à la PDB ne doivent pas dépasser 2 gigaoctets, et le stockage utilisé par les sessions de PDB dans la tablespace temporaire partagée ne doivent pas dépasser 100 mégaoctets.

Exemple : sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);

 Étapes pour cloner une PDB locale :

Cette section décrit le clonage d’un fichier PDB local. Une fois le clonage de la PDB locale effectué, les PDB source et cible se trouvent dans la même CDB.

Vous pouvez cloner la PDB en suivant les étapes ci-dessous :

Étape 1 : vérification de l’état de la PDB source

  Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

 Les PDB destinées à être clonées doivent être en LECTURE SEULE. Si certaines sont en mode LECTURE/ÉCRITURE, modifiez l’état à l’aide de la commande ci-dessous.

Sql> alter pluggable database pdbname close instances=all;

Ici, instances=all signifie fermer la PDB dans tous les nœuds.

Sql> alter pluggable database pdb open read only instances=all;

Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ ONLY   NO

Étape 2 : choix des options requises dans les différentes clauses de clonage mentionnées dans la section 2.

Sql> create pluggable database clone_pdb1 from pdb1; (pas de clauses)

Où pdb1 est la source et clone_pdb1 est la cible

Étape 3 : la PDB clonée est en mode monté, et son état est NEW. Vous pouvez afficher l’état d’une PDB en interrogeant la colonne STATUS de la vue CDB_PDBS ou DBA_PDBS.

Ensuite, modifiez l’état de la PDB en utilisant alter pluggable database, puis ajoutez le service PDB dans tnsnames.ora dans tous les nœuds.

3. Déconnecter et reconnecter la PDB à la CDB :

Déconnexion de la PDB :

Déconnecter une PDB dissocie la PDB de la CDB. L’opération de déconnexion entraîne des modifications sur les fichiers de données de la PDB à enregistrer, par exemple, il est indiqué que la PDB a été déconnectée avec succès. La PDB déconnectée fait toujours partie de la CDB, elle est donc incluse dans une sauvegarde RMAN de l’ensemble de la CDB. Une telle sauvegarde offre un moyen pratique d’archiver la PDB déconnectée au cas où elle serait nécessaire à l’avenir. La PDB doit être fermée pour pouvoir être déconnectée. Lorsque vous déconnectez une PDB d’une CDB, la PDB déconnectée est en mode monté.

Étapes pour déconnecter une PDB :

Vérification de l’état de la PDB source

 Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

Si la PDB source est en mode lecture/écriture, vous devez définir l’état de la PDB sur l’état MOUNTED.

Sql> alter pluggable database PDBNAME close instances=all;

Connectez-vous au conteneur racine et exécutez la commande ci-dessous.

Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;

Cette commande crée le fichier de métadonnées pdb1.xml dans le répertoire /u01/app/oracle.

À l’aide du fichier de métadonnées XML, vous pouvez connecter la PDB à

3.1. la même CDB

3.2. une CDB distante

Vous pouvez connecter la PDB à la CDB à l’aide de la commande create pluggable database et spécifier différentes clauses dans le fichier XML.

Différents types de clauses :

Utilisation de la clause source_file_name_convert, no copy :
SOURCE_FILE_NAME_CONVERT : le fichier XML n’affiche pas l’emplacement du fichier actuel. Là, nous pouvons utiliser cette clause. Le fichier XML indique que les fichiers se trouvent dans +DATA, mais les fichiers réels se trouvent dans +DATA1.

Source_file_name_convert = (‘+DATA’,’+DATA1’)

+DATA= string1   +DATA1=string2

Ici, le modèle de nom de fichier string2 remplace le modèle de nom de fichier string1.

2.       Utilisation des clauses path_prefix, copy, file_name_convert :

PATH_PREFIX : cette clause est utilisée pour spécifier le chemin d’accès absolu de l’emplacement des fichiers de données.

FILE_NAME_CONVERT : vous pouvez utiliser cette clause lorsque les fichiers ne sont pas à l’emplacement cible et que vous voulez les copier ou les déplacer lors de la création de la PDB.

3.       Utilisation des clauses FILE_NAME_CONVERT, MOVE, SOURCE_FILE_NAME_CONVERT

Le fichier XML ne décrit pas l’emplacement des fichiers en cours. Par conséquent, la conversion du nom du fichier source est requise. Exemple : le fichier xml indique que les fichiers sont dans « +DATA », mais les fichiers se trouvent dans « /u01/app ».

La clause File name convert est requise pour déplacer les fichiers de « /u01/app » vers « +DATA1 ».

3.1. Connecter la PDB déconnectée sur la même CDB :

La PDB doit être supprimée de la CDB pour pouvoir être reconnectée à la même CDB.

 Créer une base de données enfichable à l’aide d’un fichier XML avec différentes méthodes.

a)       méthode NOCOPY

Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;

b)      méthode COPY

Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);

c)       méthode AS CLONE MOVE

Sql> Create pluggable database pdb1 as clone using ‘/u01/app/oracle/pdb1.xml’ move file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);

3.2. Connecter la PDB déconnectée sur la CDB distante :

Configuration requise :

A)      Elles doivent avoir le même format endian.

B)      Elles doivent avoir le même ensemble d’options de base de données installées.

SOURCE :

1.   Après avoir déconnecté la PDB, transférez le fichier XML à l’emplacement cible et transférez également les fichiers de base de données à partir du groupe de disques (+DATA) vers l’emplacement du système d’exploitation (/home/) à l’aide des commandes ASMCMD cp ou DATA_FILE_NAME_CONVERT.

2.   Transférez les fichiers de base de données à partir de la source vers l’emplacement du système d’exploitation cible. 

TARGET :

Une fois que vous avez obtenu le fichier XML et les fichiers de base de données à partir de la source, vous pouvez utiliser la commande DBMS_PDB.CHECK_PLUG_COMPATIBILITY pour déterminer si la PDB déconnectée est compatible avec la CDB cible.

Si vous obtenez le résultat « YES », la PDB est compatible.

Si vous obtenez le résultat « NO », la PDB n’est pas compatible. Consultez les erreurs dans la vue PDB_PLUG_IN_VIOLATIONS.

Lors de la création d’une PDB distante, sélectionnez les clauses requises indiquées dans la section 3.

Exemple : Sql> Create pluggable database pdbname using ‘/home/oracle/pdbname.xml’

      Source_file_name_convert = (‘+SOURCE_DATA’,’/home/oracle/datafiles’)

      Move

      File_name_convert = (‘/home/oracle/datafiles’,’+TARGET_DATA’);

Description : le fichier XML spécifie l’emplacement des fichiers de données de la PDB en termes de disques ASM, mais les fichiers réels résident dans l’emplacement « /home/oracle ». La clause source_file_name_convert permet de remplacer le modèle de nom de fichier et de pointer vers l’emplacement source réel. La clause file_name_convert facilite le déplacement des données à partir de l’emplacement du système d’exploitation vers les disques ASM.

4. Migrez 12C-noncdb vers la PDB :

Reportez-vous à ce livre blanc
Article Properties
Article Number: 000146520
Article Type: Solution
Last Modified: 21 Feb 2021
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.