Hur ansluter jag en PDB till container-databasen Oracle12c?
Summary: Vi vill leverera lösningar som förenklar IT. Vi tillhandahåller databaslösningar, anpassad utveckling, dynamiska datacenter, flexibel datoranvändning.
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
Gäller:
Databaser: Oracle 12cR1
Författare:
Mahesh Reddy
Problem:
Hur ansluter jag en PDB till container-databasen Oracle12c?
Lösning:
Du kan skapa en pluggbar databas på följande sätt:
Skapa en PDB med hjälp av Seed-databasen. Med den här metoden kopieras filerna som är kopplade till Seed-enheten till en ny plats och kopplas till en ny PDB. Du kan enkelt skapa nya PDB-databaser från Seed-enheten genom att använda instruktionen för att skapa en pluggbar databas.
Du kan ange följande satser för att skapa en ny PDB från Seed på olika sätt:
Obs! Du kan endast använda satsen ROLES när du skapar en PDB från Seed.
Exempel: 1
Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;
Ovanstående instruktion skapar en PDB med den lokala användarens PDBUSR. Denna instruktion beviljar PDB_DBA-rollen för PDB-administratören ”pdbusr” och tilldelar de angivna fördefinierade Oracle-rollerna till PDB_DBA-rollen lokalt i PDB.
Exempel: 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’);
Ovanstående instruktion skapar en PDB med den begränsade storleken. Den anger att alla lagringsplatser som tillhör PDB-databasen inte får vara större än 5 GB och att standardlagringsplatsen för användare som inte är administratörer på den nya platsen är ”+DATA_NEW”.
2. Skapa en ny PDB genom att klona en befintlig PDB:
Att klona en produktionsdatabas är en teknik som ofta används för att utveckla och testa ändringar i program och tillhörande miljöer. Innan en ny version av ett operativsystem släpps eller ett lagringsprogram eller en programversion installeras i en produktionsmiljö måste man genomföra noggranna tester med produktionsdata. Detta åstadkommer man vanligtvis genom att kopiera produktionsdatabasen till en testmiljö.
I Oracle12c kan du använda instruktionen CREATE PLUGGABLE DATABASE för att klona en PDB. Denna instruktion klonar en käll-PDB och ansluter klonen till samma CDB eller till en fjärr-CDB.
Instruktionen CREATE PLUGGABLE DATABASE kopierar de filer som är kopplade till käll-PDB:n till en ny plats och kopplar filerna till mål-PDB:n.
Olika typer av satser:
1. Klona en lokal PDB utan att använda satser
Om du inte använder satser görs inga strukturella ändringar.
Ex: sql> create pluggable database clone_pdb from pdb;
Här har PDB-klonen skapats med samma storlek och samma roller med olika GUID i standarddiskgruppen.
2. Klona en lokal PDB med satserna PATH_PREFIX och FILE_NAME_CONVERT
Satsen FILE_NAME_CONVERT krävs för att ange målplatserna för de kopierade filerna. I det här exemplet kopieras filerna från en plats till en annan.
Ex: sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');
Här lagras datafilerna för PDB:n i diskgruppen ”+DATA”. Klonade PDB-datafiler placeras i en annan diskgrupp som heter ”+ BRLOAD”. Du kan använda satsen FILE_NAME_CONVERT för att ändra datafilsplats från ”+DATA” till ”+BRLOAD”.
3. Klona en lokal PDB med satserna FILE_NAME_CONVERT OCH STORAGE.
Lagringsgränserna måste tillämpas för PDB:n. Därför behövs satsen STORAGE. Mer specifikt får inga av de lagringsplatser som tillhör PDB:n överstiga 2 gigabyte, och högst 100 megabyte får användas under PDB-sessionerna på den delade tillfälliga lagringsplatsen.
Ex: sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);
Steg för att klona en lokal PDB:
I det här avsnittet beskrivs hur man klonar en lokal PDB. När en lokal PDB har klonats är käll- och mål-PDB:erna i samma CDB.
Du kan klona PDB genom att göra följande:
Steg 1: Kontrollera käll-PDB:ns status
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
PDB-databaser som ska klonas måste ha statusen READ ONLY. Ändra statusen med följande kommando om databasen är i READ WRITE-läge:
Sql> alter pluggable database pdbname close instances=all;
Här innebär ”instances=all” att PDB:n i alla noder ska stängas.
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
Steg 2: Välj de alternativ som behövs från de olika klonsatserna som nämns i avsnitt 2.
Sql> create pluggable database clone_pdb1 from pdb1; (no clauses)
Här är pdb1 källa och clone_pdb1 mål.
Steg 3: Den klonade PDB:n är i monterat läge och dess status är NEW. Du kan se statusen för en PDB genom att fråga om kolumnen STATUS för vyn CDB_PDBS eller DBA_PDBS.
Efter den ändringen ändrar du läget för PDB med Alter pluggable Database och sedan måste du lägga till PDB-tjänsten i tnsnames.ora i alla noder.
3. Koppla bort och ansluta en PDB till en CDB:
Koppla bort en PDB:
När du kopplar bort en PDB kopplas PDB:n från en CDB. När du kopplar bort en databas görs några ändringar i PDB:ns datafiler för att registrera olika åtgärder, bland annat att PDB:n har kopplats bort. Eftersom den fortfarande är en del av CDB:n läggs den bortkopplade PDB:n i en RMAN-säkerhetskopia av hela CDB:n. En sådan säkerhetskopia är ett bekvämt sätt att arkivera den bortkopplade PDB:n så att du har den om den behövs i framtiden. PDB:n måste stängas innan den kan kopplas bort. När du kopplar bort en PDB från en CDB sätts den bortkopplade PDB:n i monterat läge
Steg för att koppla bort en PDB:
Kontrollera käll-PDB:ns status
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
Om käll-PDB:n är i skrivskyddat läge bör du ändra statusen till MOUNTED.
Sql> alter pluggable database PDBNAME close instances=all;
Anslut till rotbehållaren och kör nedanstående kommando
Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;
Nu skapas metadatafilen pdb1.xml i katalogen /u01/app/oracle.
Med hjälp av XML metadatafilen kan du ansluta PDB:n till
3.1. samma CDB
3.2. en fjärr-CDB
Du kan ansluta PDB:n till CDB:n med hjälp av Create pluggable database och ange XML-filen med olika satser.
Olika typer av satser:
Använda satsen source_file_name_convert, no copy:
SOURCE_FILE_NAME_CONVERT: XML-filen visar inte den aktuella filplatsen. Den gången kan du använda den här satsen. XML-filen visar att filerna är i +DATA, men de faktiska filerna är i +DATA1.
Source_file_name_convert = (‘+DATA’,’+DATA1’)
+DATA= string1 +DATA1=string2
Här ersätter string2-filnamnsmönstret string1-filnamnsmönstret.
2. Använda satsen path_prefix, copy, file_name_convert:
PATH_PREFIX: Den här satsen används för att ange den absoluta sökvägen till platsen med datafiler.
FILE_NAME_CONVERT: Du kan använda den här satsen när filerna inte är på målplatsen och du vill kopiera eller flytta dem när du skapar en PDB.
3. Använda satsen FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT:
XML-filen beskriver inte den aktuella platsen för filerna, så satsen för konvertering av källfilsnamn krävs. Exempel: XML-filen visar att filerna finns i ”+DATA”, men filerna är i ”/u01/app”.
FILE NAME CONVERT krävs för att flytta filerna från ”/u01/app” till ”+DATA1”.
3.1. Anslut den bortkopplade PDB:n till samma CDB:
PDB:n måste tas bort från CDB:n innan den kan anslutas till samma CDB igen.
Skapa pluggbar databas med XML-filen på olika sätt.
a) NOCOPY-metoden
Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;
b) COPY-metoden
Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);
c) AS CLONE MOVE-metoden
Sql> Create pluggable database pdb1 as clone using ‘/u01/app/oracle/pdb1.xml’ move file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);
3.2. Anslut den bortkopplade PDB:n till en fjärr-CDB:
Nödvändiga förhandsåtgärder:
A) De måste ha samma endian-format.
B) De måste ha samma uppsättning databasalternativ installerade.
KÄLLA:
1. När du har kopplat bort PDB:n ska du överföra XML-filen till målplatsen och även databasfilerna från diskgruppen (+DATA) till OS-platsen (/home/) med kommandot ASMCMD cp eller DATA_FILE_NAME_CONVERT.
2. Överför databasfilerna från källan till OS-målplatsen.
MÅL:
När du har hämtat XML- och databasfilerna från källan kan du använda funktionen DBMS_PDB.CHECK_PLUG_COMPATIBILITY för att avgöra om den bortkopplade PDB:n är kompatibel med mål-CDB:n.
Om utdata är ”YES” är PDB:n kompatibel.
Om utdata är ”NO” är PDB:n inte kompatibel. Kontrollera också vyn PDB_PLUG_IN_VIOLATIONS efter fel.
När du skapar en fjärr-PDB väljer du obligatoriska satser från avsnitt 3.
Ex: SQL > Sql> Create pluggable database pdbname using ‘/home/oracle/pdbname.xml’
Source_file_name_convert = (‘+SOURCE_DATA’,’/home/oracle/datafiles’)
Flytta
File_name_convert = (‘/home/oracle/datafiles’,’+TARGET_DATA’);
Beskrivning: XML-filen anger platsen för PDB-filerna när det gäller ASM-diskar, men de faktiska filerna finns på platsen ”/home/oracle”. Med satsen Source_file_name_convert kan du byta ut filnamnsmönstret och peka på den faktiska källplatsen. Satsen file_name_convert kan du använda till att flytta data från OS-platsen till ASM-diskarna.
4. Migrera 12c som inte är CDB till PDB:
Se detta informationsdokument.
Databaser: Oracle 12cR1
Författare:
Mahesh Reddy
Problem:
Hur ansluter jag en PDB till container-databasen Oracle12c?
Lösning:
Du kan skapa en pluggbar databas på följande sätt:
- Skapa en ny PDB med hjälp av Seed.
- Skapa en ny PDB genom att klona den befintliga PDB:n.
- Anslut en frånkopplad PDB till en CDB.
- Skapa en ny PDB från en 12c-databas som inte är CDB.
Skapa en PDB med hjälp av Seed-databasen. Med den här metoden kopieras filerna som är kopplade till Seed-enheten till en ny plats och kopplas till en ny PDB. Du kan enkelt skapa nya PDB-databaser från Seed-enheten genom att använda instruktionen för att skapa en pluggbar databas.
Du kan ange följande satser för att skapa en ny PDB från Seed på olika sätt:
- Storage: Du kan ange lagringsgränser.
- Default Tablespace: En liten fillagringsplats skapas och den tilldelas till icke-systemanvändare.
- path_prefix: Den anger den absoluta sökvägen
- file_name_convert: Den specificerar den nya platsen för PDB-filerna från källfilerna.
- Tempfile reuse: Den anger att den temporära filen från målplatsen ska återanvändas.
- Roles: De fördefinierade Oracle-rollerna som ska tilldelas PDB_DBA-rollen.
Obs! Du kan endast använda satsen ROLES när du skapar en PDB från Seed.
Exempel: 1
Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;
Ovanstående instruktion skapar en PDB med den lokala användarens PDBUSR. Denna instruktion beviljar PDB_DBA-rollen för PDB-administratören ”pdbusr” och tilldelar de angivna fördefinierade Oracle-rollerna till PDB_DBA-rollen lokalt i PDB.
Exempel: 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’);
Ovanstående instruktion skapar en PDB med den begränsade storleken. Den anger att alla lagringsplatser som tillhör PDB-databasen inte får vara större än 5 GB och att standardlagringsplatsen för användare som inte är administratörer på den nya platsen är ”+DATA_NEW”.
2. Skapa en ny PDB genom att klona en befintlig PDB:
Att klona en produktionsdatabas är en teknik som ofta används för att utveckla och testa ändringar i program och tillhörande miljöer. Innan en ny version av ett operativsystem släpps eller ett lagringsprogram eller en programversion installeras i en produktionsmiljö måste man genomföra noggranna tester med produktionsdata. Detta åstadkommer man vanligtvis genom att kopiera produktionsdatabasen till en testmiljö.
I Oracle12c kan du använda instruktionen CREATE PLUGGABLE DATABASE för att klona en PDB. Denna instruktion klonar en käll-PDB och ansluter klonen till samma CDB eller till en fjärr-CDB.
Instruktionen CREATE PLUGGABLE DATABASE kopierar de filer som är kopplade till käll-PDB:n till en ny plats och kopplar filerna till mål-PDB:n.
Olika typer av satser:
1. Klona en lokal PDB utan att använda satser
Om du inte använder satser görs inga strukturella ändringar.
Ex: sql> create pluggable database clone_pdb from pdb;
Här har PDB-klonen skapats med samma storlek och samma roller med olika GUID i standarddiskgruppen.
2. Klona en lokal PDB med satserna PATH_PREFIX och FILE_NAME_CONVERT
Satsen FILE_NAME_CONVERT krävs för att ange målplatserna för de kopierade filerna. I det här exemplet kopieras filerna från en plats till en annan.
Ex: sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');
Här lagras datafilerna för PDB:n i diskgruppen ”+DATA”. Klonade PDB-datafiler placeras i en annan diskgrupp som heter ”+ BRLOAD”. Du kan använda satsen FILE_NAME_CONVERT för att ändra datafilsplats från ”+DATA” till ”+BRLOAD”.
3. Klona en lokal PDB med satserna FILE_NAME_CONVERT OCH STORAGE.
Lagringsgränserna måste tillämpas för PDB:n. Därför behövs satsen STORAGE. Mer specifikt får inga av de lagringsplatser som tillhör PDB:n överstiga 2 gigabyte, och högst 100 megabyte får användas under PDB-sessionerna på den delade tillfälliga lagringsplatsen.
Ex: sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);
Steg för att klona en lokal PDB:
I det här avsnittet beskrivs hur man klonar en lokal PDB. När en lokal PDB har klonats är käll- och mål-PDB:erna i samma CDB.
Du kan klona PDB genom att göra följande:
Steg 1: Kontrollera käll-PDB:ns status
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
PDB-databaser som ska klonas måste ha statusen READ ONLY. Ändra statusen med följande kommando om databasen är i READ WRITE-läge:
Sql> alter pluggable database pdbname close instances=all;
Här innebär ”instances=all” att PDB:n i alla noder ska stängas.
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
Steg 2: Välj de alternativ som behövs från de olika klonsatserna som nämns i avsnitt 2.
Sql> create pluggable database clone_pdb1 from pdb1; (no clauses)
Här är pdb1 källa och clone_pdb1 mål.
Steg 3: Den klonade PDB:n är i monterat läge och dess status är NEW. Du kan se statusen för en PDB genom att fråga om kolumnen STATUS för vyn CDB_PDBS eller DBA_PDBS.
Efter den ändringen ändrar du läget för PDB med Alter pluggable Database och sedan måste du lägga till PDB-tjänsten i tnsnames.ora i alla noder.
3. Koppla bort och ansluta en PDB till en CDB:
Koppla bort en PDB:
När du kopplar bort en PDB kopplas PDB:n från en CDB. När du kopplar bort en databas görs några ändringar i PDB:ns datafiler för att registrera olika åtgärder, bland annat att PDB:n har kopplats bort. Eftersom den fortfarande är en del av CDB:n läggs den bortkopplade PDB:n i en RMAN-säkerhetskopia av hela CDB:n. En sådan säkerhetskopia är ett bekvämt sätt att arkivera den bortkopplade PDB:n så att du har den om den behövs i framtiden. PDB:n måste stängas innan den kan kopplas bort. När du kopplar bort en PDB från en CDB sätts den bortkopplade PDB:n i monterat läge
Steg för att koppla bort en PDB:
Kontrollera käll-PDB:ns status
Sql>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
Om käll-PDB:n är i skrivskyddat läge bör du ändra statusen till MOUNTED.
Sql> alter pluggable database PDBNAME close instances=all;
Anslut till rotbehållaren och kör nedanstående kommando
Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;
Nu skapas metadatafilen pdb1.xml i katalogen /u01/app/oracle.
Med hjälp av XML metadatafilen kan du ansluta PDB:n till
3.1. samma CDB
3.2. en fjärr-CDB
Du kan ansluta PDB:n till CDB:n med hjälp av Create pluggable database och ange XML-filen med olika satser.
Olika typer av satser:
Använda satsen source_file_name_convert, no copy:
SOURCE_FILE_NAME_CONVERT: XML-filen visar inte den aktuella filplatsen. Den gången kan du använda den här satsen. XML-filen visar att filerna är i +DATA, men de faktiska filerna är i +DATA1.
Source_file_name_convert = (‘+DATA’,’+DATA1’)
+DATA= string1 +DATA1=string2
Här ersätter string2-filnamnsmönstret string1-filnamnsmönstret.
2. Använda satsen path_prefix, copy, file_name_convert:
PATH_PREFIX: Den här satsen används för att ange den absoluta sökvägen till platsen med datafiler.
FILE_NAME_CONVERT: Du kan använda den här satsen när filerna inte är på målplatsen och du vill kopiera eller flytta dem när du skapar en PDB.
3. Använda satsen FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT:
XML-filen beskriver inte den aktuella platsen för filerna, så satsen för konvertering av källfilsnamn krävs. Exempel: XML-filen visar att filerna finns i ”+DATA”, men filerna är i ”/u01/app”.
FILE NAME CONVERT krävs för att flytta filerna från ”/u01/app” till ”+DATA1”.
3.1. Anslut den bortkopplade PDB:n till samma CDB:
PDB:n måste tas bort från CDB:n innan den kan anslutas till samma CDB igen.
Skapa pluggbar databas med XML-filen på olika sätt.
a) NOCOPY-metoden
Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;
b) COPY-metoden
Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);
c) AS CLONE MOVE-metoden
Sql> Create pluggable database pdb1 as clone using ‘/u01/app/oracle/pdb1.xml’ move file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);
3.2. Anslut den bortkopplade PDB:n till en fjärr-CDB:
Nödvändiga förhandsåtgärder:
A) De måste ha samma endian-format.
B) De måste ha samma uppsättning databasalternativ installerade.
KÄLLA:
1. När du har kopplat bort PDB:n ska du överföra XML-filen till målplatsen och även databasfilerna från diskgruppen (+DATA) till OS-platsen (/home/) med kommandot ASMCMD cp eller DATA_FILE_NAME_CONVERT.
2. Överför databasfilerna från källan till OS-målplatsen.
MÅL:
När du har hämtat XML- och databasfilerna från källan kan du använda funktionen DBMS_PDB.CHECK_PLUG_COMPATIBILITY för att avgöra om den bortkopplade PDB:n är kompatibel med mål-CDB:n.
Om utdata är ”YES” är PDB:n kompatibel.
Om utdata är ”NO” är PDB:n inte kompatibel. Kontrollera också vyn PDB_PLUG_IN_VIOLATIONS efter fel.
När du skapar en fjärr-PDB väljer du obligatoriska satser från avsnitt 3.
Ex: SQL > Sql> Create pluggable database pdbname using ‘/home/oracle/pdbname.xml’
Source_file_name_convert = (‘+SOURCE_DATA’,’/home/oracle/datafiles’)
Flytta
File_name_convert = (‘/home/oracle/datafiles’,’+TARGET_DATA’);
Beskrivning: XML-filen anger platsen för PDB-filerna när det gäller ASM-diskar, men de faktiska filerna finns på platsen ”/home/oracle”. Med satsen Source_file_name_convert kan du byta ut filnamnsmönstret och peka på den faktiska källplatsen. Satsen file_name_convert kan du använda till att flytta data från OS-platsen till ASM-diskarna.
4. Migrera 12c som inte är CDB till PDB:
Se detta informationsdokument.
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.