Come si collega un PDB al database del container Oracle12c
Summary: Il nostro obiettivo è fornire soluzioni che semplificano l'IT offrendo soluzioni di database, sviluppo personalizzato, data center dinamici ed elaborazione flessibile
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
Applicabile a:
Database: Oracle 12cR1
Autore:
Mahesh Reddy
Problema:
Come si collega un PDB al database del container Oracle12c?
Soluzione:
Per creare un database collegabile si può:
Creare un PDB utilizzando il database SEED. Questo metodo consente di copiare i file associati al seed in una nuova posizione e li associa al nuovo PDB. È possibile creare facilmente nuovi PDB dal database SEED utilizzando l'istruzione "create pluggable database".
È possibile specificare le seguenti clausole per creare nuovi PDB da SEED in modi diversi:
Nota: la clausola ROLES può essere utilizzata solo quando si crea un PDB dal seed.
Esempio: 1
Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;
Questa istruzione crea un PDB con utente locale PDBUSR. Questa istruzione concede il ruolo PDB_DBA all'amministratore PDB "pdbusr" e i ruoli Oracle predefiniti specificati al ruolo PDB_DBA localmente nel PDB.
Esempio: 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’);
L'istruzione precedente crea un PDB con dimensioni limitate, specificando che tutti i tablespace appartenenti al PDB non devono superare 5 gigabyte e crea il tablespace predefinito per gli utenti non amministratori nella nuova posizione '+DATA_NEW'.
2. Creare un nuovo PDB clonando un PDB esistente:
La clonazione del database di produzione è una tecnica comune utilizzata per sviluppare e testare le modifiche apportate alle applicazioni e agli ambienti associati. Prima che in un ambiente di produzione venga installata una nuova versione del sistema operativo, un software di storage o una versione dell'applicazione, è necessario eseguire un test accurato utilizzando i dati di produzione. Questa operazione viene in genere eseguita copiando il database di produzione in un ambiente di test.
In Oracle12c, è possibile utilizzare l'istruzione CREATE PLUGGABLE DATABASE per clonare un PDB. Questa istruzione consente di clonare un PDB di origine e collega il clone allo stesso CDB o CDB remoto.
L'istruzione CREATE PLUGGABLE DATABASE consente di copiare i file associati al PDB di origine in una nuova posizione e associa i file al PDB di destinazione.
Diversi tipi di clausole:
1. Clonazione di un PDB locale senza utilizzare clausole
Non utilizzare clausole vuol dire non apportare alcuna modifica strutturale.
Esempio: sql> create pluggable database clone_pdb from pdb;
Qui, clone pdb ha creato le stesse dimensioni e gli stessi ruoli con GUID diversa nel gruppo di dischi predefinito.
2. Clonazione di un PDB locale con le clausole PATH_PREFIX e FILE_NAME_CONVERT
La clausola FILE_NAME_CONVERT è richiesta per specificare le posizioni di destinazione dei file copiati. In questo esempio, i file vengono copiati da una posizione a un'altra.
ESEMPIO: sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');
Qui i file di dati PDB di origine sono memorizzati nel gruppo di dischi '+DATA', i file di dati PDB del clone vengono posizionati in un gruppo di dischi diverso '+BRLOAD'; è possibile utilizzare la clausola FILE_NAME_CONVERT per convertire la posizione dei file di dati da '+DATA' a '+BRLOAD'.
3. Clonazione di un PDB locale utilizzando le clausole FILE_NAME_CONVERT e STORAGE.
Per il PDB devono essere applicati limiti di storage. Pertanto, la clausola STORAGE è obbligatoria. Nello specifico, tutti i tablespace appartenenti al PDB non devono superare 2 gigabyte e lo storage utilizzato dalle sessioni PDB nel tablespace temporaneo condiviso non deve superare 100 megabyte.
ESEMPIO: sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);
Procedura per clonare un PDB locale:
Questa sezione descrive la clonazione di un PDB locale. In seguito alla clonazione di un PDB locale, i PDB di origine e destinazione si trovano nello stesso CDB.
È possibile clonare un PDB attenendosi alla seguente procedura:
Passaggio 1: controllare lo stato del PDB di origine
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
I PDB da clonare devono avere lo stato READ ONLY. Se sono in modalità READ WRITE, modificare lo stato utilizzando il comando seguente
Sql> alter pluggable database pdbname close instances=all;
Qui instances=all significa chiudere il PDB in tutti i nodi.
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
Passaggio 2: scegliere le opzioni richieste dalle diverse clausole di clonazione menzionate nella sezione 2,
Sql> create pluggable database clone_pdb1 from pdb1; (nessuna clausola)
Dove pdb1 è l'origine e clone_pdb1 è la destinazione
Passaggio 3: il PDB clonato sarà in modalità di montaggio e il suo stato è NEW. È possibile visualizzare lo stato di un PDB eseguendo la query della colonna STATUS della vista CDB_PDBS o DBA_PDBS.
Successivamente, modificare lo stato del PDB utilizzando "alter pluggable database", quindi sarà necessario aggiungere il servizio PDB in tnsnames.ora in tutti i nodi.
3. Scollegare e collegare un PDB al CDB:
Scollegamento di un PDB:
Scollegare un PDB consente di annullarne l'associazione a un CDB. L'operazione di scollegamento comporta alcune modifiche ai file di dati del PDB per registrare, ad esempio, che il PDB è stato scollegato correttamente. Poiché fa sempre parte del CDB, il PDB scollegato è incluso in un backup RMAN dell'intero CDB. Un simile backup rappresenta un modo pratico per archiviare il PDB non collegato nel caso in cui sia necessario in futuro. Il PDB deve essere chiuso prima di poter essere scollegato. Quando si scollega da un CDB, il PDB scollegato è in modalità di montaggio
Procedura per scollegare un PDB:
Verificare lo stato del PDB di origine
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
Se il PDB di origine è in modalità di lettura e scrittura, è necessario modificarne lo stato in MOUNTED.
Sql> alter pluggable database PDBNAME close instances=all;
Connettersi al container radice ed eseguire il comando seguente
Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;
Qui, il file di metadati pdb1.xml viene creato nella directory /u01/app/oracle.
Utilizzando il file di metadati XML, è possibile collegare il PDB a
3.1. Lo stesso CDB
3.2. Un CDB remoto
È possibile collegare il PDB al CDB tramite il comando create pluggable database e specificare il file XML con clausole diverse.
Diversi tipi di clausole:
source_file_name_convert, senza clausola copy:
SOURCE_FILE_NAME_CONVERT: il file XML non mostra la posizione del file corrente. In questo caso è possibile utilizzare questa clausola. Il file XML indica che i file sono in +DATA, ma i file effettivi sono in +DATA1.
Source_file_name_convert = (‘+DATA’,’+DATA1’)
+DATA= string1 +DATA1=string2
Qui la sequenza del nome file string2 sostituisce la sequenza del nome file string1.
2. Clausole path_prefix, copy, file_name_convert:
PATH_PREFIX: questa clausola viene utilizzata per specificare il percorso assoluto della posizione dei file di dati.
FILE_NAME_CONVERT: è possibile utilizzare questa clausola quando i file non si trovano nel percorso di destinazione, quindi si desidera copiarli o spostarli durante la creazione del PDB.
3. Clausola FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT:
Il file XML non descrive il percorso corrente dei file, pertanto è necessario convertire il nome del file di origine. Esempio: il file xml indica che i file si trovano in '+DATA', ma in realtà sono in '/u01/app'.
Per spostare i file da '/u01/app' a '+DATA1' è necessario convertire il nome del file.
3.1. Collegare il PDB scollegato allo stesso CDB:
Il PDB deve essere rilasciato dal CDB prima di poter essere inserito nuovamente nello stesso CDB.
Creare un database collegabile utilizzando il file XML con metodi diversi.
a) Metodo NOCOPY
Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;
b) Metodo COPY
Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);
c) Metodo 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 Collegare il PDB non collegato al CDB remoto:
Prerequisiti:
A) Devono avere lo stesso formato endian.
B) Devono avere lo stesso set di opzioni del database installato.
ORIGINE:
1. Dopo avere scollegato il PDB, trasferire il file XML nel percorso di destinazione e trasferire i file del database dal gruppo di dischi (+DATA) alla posizione del sistema operativo (/home/) utilizzando il comando ASMCMD cp o DATA_FILE_NAME_CONVERT.
2. Trasferire i file del database dal percorso del sistema operativo di origine a quello di destinazione.
DESTINAZIONE:
Una volta ricevuti i file XML e del database dall'origine, è possibile utilizzare la funzione DBMS_PDB.CHECK_PLUG_COMPATIBILITY per determinare se il PDB non collegato è compatibile con il CDB di DESTINAZIONE.
Se si ottiene un output "YES", il PDB è compatibile.
Se si ottiene un output "NO", il PDB non è compatibile ed è necessario verificare la presenza di errori nella vista PDB_PLUG_IN_VIOLATIONS.
Durante la creazione di un PDB remoto, scegliere le clausole richieste dalla sezione 3,
ESEMPIO: 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’);
Descrizione: il file xml specifica la posizione dei file di dati PDB in termini di dischi ASM, ma i file effettivi si trovano nella posizione '/home/oracle'. La clausola source_file_name_convert consente di sostituire la sequenza del nome file e puntare al percorso di origine effettivo. La clausola file_name_convert consente di spostare i dati dal percorso del sistema operativo ai dischi ASM.
4. Migrare 12c-noncdb a PDB:
Fare riferimento a questo whitepaper.
Database: Oracle 12cR1
Autore:
Mahesh Reddy
Problema:
Come si collega un PDB al database del container Oracle12c?
Soluzione:
Per creare un database collegabile si può:
- Creare un nuovo PDB utilizzando il seed.
- Creare un nuovo file PDB clonando il PDB esistente
- Collegare un file PDB scollegato al CDB
- Creare un nuovo PDB da 12c non-CDB
Creare un PDB utilizzando il database SEED. Questo metodo consente di copiare i file associati al seed in una nuova posizione e li associa al nuovo PDB. È possibile creare facilmente nuovi PDB dal database SEED utilizzando l'istruzione "create pluggable database".
È possibile specificare le seguenti clausole per creare nuovi PDB da SEED in modi diversi:
- Storage: è possibile specificare i limiti di storage
- Default Tablespace: crea un tablespace di file di piccole dimensioni e lo assegna agli utenti non di sistema.
- path_prefix: specifica il percorso assoluto
- file_name_convert: specifica la nuova posizione dei file PDB rispetto ai file di origine.
- Tempfile reuse: specifica se riutilizzare il tempfile dalla posizione di destinazione.
- Roles: i ruoli di Oracle predefiniti da assegnare al ruolo PDB_DBA.
Nota: la clausola ROLES può essere utilizzata solo quando si crea un PDB dal seed.
Esempio: 1
Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;
Questa istruzione crea un PDB con utente locale PDBUSR. Questa istruzione concede il ruolo PDB_DBA all'amministratore PDB "pdbusr" e i ruoli Oracle predefiniti specificati al ruolo PDB_DBA localmente nel PDB.
Esempio: 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’);
L'istruzione precedente crea un PDB con dimensioni limitate, specificando che tutti i tablespace appartenenti al PDB non devono superare 5 gigabyte e crea il tablespace predefinito per gli utenti non amministratori nella nuova posizione '+DATA_NEW'.
2. Creare un nuovo PDB clonando un PDB esistente:
La clonazione del database di produzione è una tecnica comune utilizzata per sviluppare e testare le modifiche apportate alle applicazioni e agli ambienti associati. Prima che in un ambiente di produzione venga installata una nuova versione del sistema operativo, un software di storage o una versione dell'applicazione, è necessario eseguire un test accurato utilizzando i dati di produzione. Questa operazione viene in genere eseguita copiando il database di produzione in un ambiente di test.
In Oracle12c, è possibile utilizzare l'istruzione CREATE PLUGGABLE DATABASE per clonare un PDB. Questa istruzione consente di clonare un PDB di origine e collega il clone allo stesso CDB o CDB remoto.
L'istruzione CREATE PLUGGABLE DATABASE consente di copiare i file associati al PDB di origine in una nuova posizione e associa i file al PDB di destinazione.
Diversi tipi di clausole:
1. Clonazione di un PDB locale senza utilizzare clausole
Non utilizzare clausole vuol dire non apportare alcuna modifica strutturale.
Esempio: sql> create pluggable database clone_pdb from pdb;
Qui, clone pdb ha creato le stesse dimensioni e gli stessi ruoli con GUID diversa nel gruppo di dischi predefinito.
2. Clonazione di un PDB locale con le clausole PATH_PREFIX e FILE_NAME_CONVERT
La clausola FILE_NAME_CONVERT è richiesta per specificare le posizioni di destinazione dei file copiati. In questo esempio, i file vengono copiati da una posizione a un'altra.
ESEMPIO: sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');
Qui i file di dati PDB di origine sono memorizzati nel gruppo di dischi '+DATA', i file di dati PDB del clone vengono posizionati in un gruppo di dischi diverso '+BRLOAD'; è possibile utilizzare la clausola FILE_NAME_CONVERT per convertire la posizione dei file di dati da '+DATA' a '+BRLOAD'.
3. Clonazione di un PDB locale utilizzando le clausole FILE_NAME_CONVERT e STORAGE.
Per il PDB devono essere applicati limiti di storage. Pertanto, la clausola STORAGE è obbligatoria. Nello specifico, tutti i tablespace appartenenti al PDB non devono superare 2 gigabyte e lo storage utilizzato dalle sessioni PDB nel tablespace temporaneo condiviso non deve superare 100 megabyte.
ESEMPIO: sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);
Procedura per clonare un PDB locale:
Questa sezione descrive la clonazione di un PDB locale. In seguito alla clonazione di un PDB locale, i PDB di origine e destinazione si trovano nello stesso CDB.
È possibile clonare un PDB attenendosi alla seguente procedura:
Passaggio 1: controllare lo stato del PDB di origine
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
I PDB da clonare devono avere lo stato READ ONLY. Se sono in modalità READ WRITE, modificare lo stato utilizzando il comando seguente
Sql> alter pluggable database pdbname close instances=all;
Qui instances=all significa chiudere il PDB in tutti i nodi.
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
Passaggio 2: scegliere le opzioni richieste dalle diverse clausole di clonazione menzionate nella sezione 2,
Sql> create pluggable database clone_pdb1 from pdb1; (nessuna clausola)
Dove pdb1 è l'origine e clone_pdb1 è la destinazione
Passaggio 3: il PDB clonato sarà in modalità di montaggio e il suo stato è NEW. È possibile visualizzare lo stato di un PDB eseguendo la query della colonna STATUS della vista CDB_PDBS o DBA_PDBS.
Successivamente, modificare lo stato del PDB utilizzando "alter pluggable database", quindi sarà necessario aggiungere il servizio PDB in tnsnames.ora in tutti i nodi.
3. Scollegare e collegare un PDB al CDB:
Scollegamento di un PDB:
Scollegare un PDB consente di annullarne l'associazione a un CDB. L'operazione di scollegamento comporta alcune modifiche ai file di dati del PDB per registrare, ad esempio, che il PDB è stato scollegato correttamente. Poiché fa sempre parte del CDB, il PDB scollegato è incluso in un backup RMAN dell'intero CDB. Un simile backup rappresenta un modo pratico per archiviare il PDB non collegato nel caso in cui sia necessario in futuro. Il PDB deve essere chiuso prima di poter essere scollegato. Quando si scollega da un CDB, il PDB scollegato è in modalità di montaggio
Procedura per scollegare un PDB:
Verificare lo stato del PDB di origine
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
Se il PDB di origine è in modalità di lettura e scrittura, è necessario modificarne lo stato in MOUNTED.
Sql> alter pluggable database PDBNAME close instances=all;
Connettersi al container radice ed eseguire il comando seguente
Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;
Qui, il file di metadati pdb1.xml viene creato nella directory /u01/app/oracle.
Utilizzando il file di metadati XML, è possibile collegare il PDB a
3.1. Lo stesso CDB
3.2. Un CDB remoto
È possibile collegare il PDB al CDB tramite il comando create pluggable database e specificare il file XML con clausole diverse.
Diversi tipi di clausole:
source_file_name_convert, senza clausola copy:
SOURCE_FILE_NAME_CONVERT: il file XML non mostra la posizione del file corrente. In questo caso è possibile utilizzare questa clausola. Il file XML indica che i file sono in +DATA, ma i file effettivi sono in +DATA1.
Source_file_name_convert = (‘+DATA’,’+DATA1’)
+DATA= string1 +DATA1=string2
Qui la sequenza del nome file string2 sostituisce la sequenza del nome file string1.
2. Clausole path_prefix, copy, file_name_convert:
PATH_PREFIX: questa clausola viene utilizzata per specificare il percorso assoluto della posizione dei file di dati.
FILE_NAME_CONVERT: è possibile utilizzare questa clausola quando i file non si trovano nel percorso di destinazione, quindi si desidera copiarli o spostarli durante la creazione del PDB.
3. Clausola FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT:
Il file XML non descrive il percorso corrente dei file, pertanto è necessario convertire il nome del file di origine. Esempio: il file xml indica che i file si trovano in '+DATA', ma in realtà sono in '/u01/app'.
Per spostare i file da '/u01/app' a '+DATA1' è necessario convertire il nome del file.
3.1. Collegare il PDB scollegato allo stesso CDB:
Il PDB deve essere rilasciato dal CDB prima di poter essere inserito nuovamente nello stesso CDB.
Creare un database collegabile utilizzando il file XML con metodi diversi.
a) Metodo NOCOPY
Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;
b) Metodo COPY
Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);
c) Metodo 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 Collegare il PDB non collegato al CDB remoto:
Prerequisiti:
A) Devono avere lo stesso formato endian.
B) Devono avere lo stesso set di opzioni del database installato.
ORIGINE:
1. Dopo avere scollegato il PDB, trasferire il file XML nel percorso di destinazione e trasferire i file del database dal gruppo di dischi (+DATA) alla posizione del sistema operativo (/home/) utilizzando il comando ASMCMD cp o DATA_FILE_NAME_CONVERT.
2. Trasferire i file del database dal percorso del sistema operativo di origine a quello di destinazione.
DESTINAZIONE:
Una volta ricevuti i file XML e del database dall'origine, è possibile utilizzare la funzione DBMS_PDB.CHECK_PLUG_COMPATIBILITY per determinare se il PDB non collegato è compatibile con il CDB di DESTINAZIONE.
Se si ottiene un output "YES", il PDB è compatibile.
Se si ottiene un output "NO", il PDB non è compatibile ed è necessario verificare la presenza di errori nella vista PDB_PLUG_IN_VIOLATIONS.
Durante la creazione di un PDB remoto, scegliere le clausole richieste dalla sezione 3,
ESEMPIO: 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’);
Descrizione: il file xml specifica la posizione dei file di dati PDB in termini di dischi ASM, ma i file effettivi si trovano nella posizione '/home/oracle'. La clausola source_file_name_convert consente di sostituire la sequenza del nome file e puntare al percorso di origine effettivo. La clausola file_name_convert consente di spostare i dati dal percorso del sistema operativo ai dischi ASM.
4. Migrare 12c-noncdb a PDB:
Fare riferimento a questo whitepaper.
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.