Jak připojit PDB ke kontejnerové databázi Oracle12c

Summary: Našim cílem je zjednodušit IT dodáváním řešení databází, vlastního vývoje, dynamických datových center a flexibilní výpočetní techniky.

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

Platí pro: 
Databáze: Oracle 12cR1

Autor:
Mahesh Reddy

Problém: 
Jak připojit PDB ke kontejnerové databázi Oracle12c?

Řešení: 
Připojitelnou databázi můžete vytvořit následujícími způsoby:
  • Vytvořit novou PDB pomocí databáze SEED
  • Vytvořit novou PDB naklonováním stávající PDB
  • Připojit ke kontejnerové databázi odpojené PDB
  • Vytvořit novou PDB z jiné než kontejnerové databáze 12c
1. Vytvoření nové PDB pomocí databáze SEED:

Vytvořte PDB pomocí databáze SEED. Tato metoda kopíruje soubory související s prvkem SEED hodnotou do nového umístění a přiřadí je do nové PDB. Novou PDB můžete snadno vytvořit z prvku SEED pomocí příkazu Create Pluggable Database.

Za účelem vytvoření nové PDB z prvku SEED různými způsoby můžete určit následujícími možnostmi:
  • Storage: Můžete zadat omezení úložiště.
  • Default Tablespace: Vytvoří pro soubor malý tabulkový prostor a přiřadí jej nesystémovým uživatelům.
  • path_prefix: Určuje absolutní cestu.
  • file_name_convert: Určuje nové umístění souborů PDB ze zdrojových souborů.
  • Tempfile Reuse: Znovu použije soubor tempfile z cílového umístění.
  • Roles: Předem definované role Oracle, které mají zajistit roli PDB_DBA.
SLN310932_cs__1icon Poznámka: Klauzuli ROLES lze použít, pouze pokud vytváříte PDB z prvku SEED.

Příklad: 1

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

Výše uvedený příkaz vytvoří PDB s místním uživatelem PDBUSR.  Tento příkaz uděluje správci „pdbusr“ PDB roli PNR_DBA a uděluje roli PNR_DBA v PDB určité předem definované role Oracle.

Příklad: 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’);

Výše uvedený příkaz vytvoří PDB s omezenou velikostí, určuje, že všechny tabulkové prostory, které patří do PDB, nesmí překročit velikost 5 gigabytů, a vytváří výchozí uživatele tabulkového prostoru pro uživatele bez oprávnění správce v novém umístění „+DATA_NEW“. 

2.  Vytvořte novou PDB naklonováním stávající PDB:

Klonování produkčních databází je běžnou technikou, která se používá k vývoji a testování změn aplikací a souvisejících prostředí. Před instalací nové verze operačního systému, softwaru úložiště nebo aplikace do produkčního prostředí je nutné provést důkladné testování pomocí výrobních dat. To se obvykle provádí zkopírováním produkční databáze do testovacího prostředí.

V databázi Oracle12c můžete ke klonování PDB použít příkaz CREATE PLUGGABLE DATABASE. Toto prohlášení klonuje zdrojovou PDB a připojuje klon do stejné nebo vzdálené kontejnerové databáze.

Příkaz CREATE PLUGGABLE DATABASE kopíruje soubory související se zdrojovou PDB do nového umístění a přidružuje je k cílové PDB.

Různé typy klauzulí:

1.       Klonování místní PDB bez použití klauzulí

Bez klauzulí nelze provést žádné změny struktury.

Např.: sql> create pluggable database clone_pdb from pdb;

Zde se klon PDB vytvořil se stejnou velikostí a rolí s jiným identifikátorem GUID ve výchozí skupině disků.

2.       Klonování místní PDB pomocí klauzule PATH_PREFIX a FILE_NAME_CONVERT.

Klauzule FILE_NAME_CONVERT je vyžadována k určení cílového umístění kopírovaných souborů. V tomto příkladu jsou soubory zkopírovány z jednoho umístění do jiného.

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

Zde jsou zdrojové soubory PDB uloženy ve skupině disků „+DATA“ a datové soubory klonu PDB jsou umístěny v jiné skupině disků „+BRLOAD“. K převodu umístění datových souborů ze skupiny disků „+DATA“ do „+BRLOAD“ můžete použít klauzuli FILE_NAME_CONVERT.

3.       Klonování místní PDB pomocí klauzulí FILE_NAME_CONVERT a STORAGE.

Pro PDB je nutné zavést omezení úložiště. Proto je vyžadována klauzule STORAGE. Konkrétně žádné tabulkové prostory, které patří do PDB, nesmí překročit velikost 2 gigabyty a úložiště používané relacemi PDB ve sdíleném dočasném tabulkovém prostoru nesmí překročit velikost 100 megabajtů.

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

 Postup klonování místní PDB:

Tato část popisuje klonování místní PDB. Po klonování místní PDB se zdrojová a cílová PDB nachází ve stejné kontejnerové databázi.

PDB můžete klonovat pomocí následujících kroků:

Krok 1: Zkontrolujte stav zdrojové PDB

  Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

 PDB určené ke klonování musí být ve stavu READ ONLY. Pokud je jejich stav READ WRITE, změňte ho pomocí následujícího příkazu

Sql> alter pluggable database pdbname close instances=all;

Zde „instances=all“ znamená zavření PDB ve všech uzlech.

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

Krok 2: Vyberte požadované možnosti z různých klauzulí pro klonování uvedených v části 2,

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

„pdb1“ je zdroj a „clone_pdb1“ je cíl.

Krok 3: Klonovaná PDB bude v režimu Mounted a její stav bude NEW. Stav PDB můžete zobrazit dotazováním sloupce STATUS v zobrazení CDB_PDBS nebo DBA_PDBS.

Poté změňte stav PDB pomocí příkazu „alter pluggable database“ a přidejte službu PDB do souborů tnsnames.ora ve všech uzlech.

3. Odpojte a znovu připojte PDB ke kontejnerové databázi:

Odpojení PDB:

Odpojení PDB zruší přiřazení ke kontejnerové databázi. Operace odpojení provede některé změny v datových souborech PDB, aby bylo například možné zaznamenat, že byla PDB úspěšně odpojena. Jelikož je odpojená PDB stále součástí kontejnerové databáze, je zahrnuta do zálohy RMAN celé kontejnerové databáze. Taková záloha představuje pohodlný způsob archivace odpojené PDB pro případ, že by byla v budoucnu potřebná. Aby bylo možné PDB odpojit od sítě, musí být nejdříve uzavřena. Pokud odpojíte PDB od kontejnerové databáze, odpojená PDB se přepne do režimu Mounted.

Kroky k odpojení PDB:

Zkontrolujte stav zdrojové PDB.

 Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

Pokud je zdrojová PDB v režimu READ WRITE, měli byste změnit její stav na MOUNTED.

Sql> alter pluggable database PDBNAME close instances=all;

Připojte se ke kontejneru root a proveďte níže uvedený příkaz

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

V adresáři /u01/app/oracle vytvoří soubor metadat pdb1.xml.

Pomocí souboru metadat XML můžete PDB připojit k

3.1. stejné kontejnerové databázi

3.2 vzdálené kontejnerové databázi

PDB můžete připojit ke kontejnerové databázi pomocí příkazu „create pluggable database“ a určit soubor XML pomocí různých klauzulí.

Různé typy klauzulí:

Použití klauzulí source_file_name_convert, no copy
SOURCE_FILE_NAME_CONVERT: Soubor XML nezobrazuje aktuální umístění souboru. V takovém případě můžeme tuto klauzuli použít. XML označuje, že soubory se nachází ve skupině disků „+DATA“, kdežto skutečné soubory se nachází ve skupině disků „+DATA1“.

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

+DATA= string1   +DATA1=string2

Zde vzorec názvu souboru string2 nahrazuje vzorec názvu souboru string1.

2.       Použití klauzulí path_prefix, copy, file_name_convert:

PATH_PREFIX: Tato klauzule se používá k zadání absolutní cesty k umístění datových souborů.

FILE_NAME_CONVERT: Tuto klauzuli můžete použít, pokud se soubory nenachází v cílovém umístění a vy je chcete kopírovat nebo přesunout během vytváření PDB.

3.       Použití klauzule FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT:

Soubor XML nepopisuje aktuální umístění souborů, proto je vyžadován převod názvu zdrojového souboru. Příklad: Soubor XML označuje, že soubory se nenachází ve skupině disků „+DATA“, nýbrž ve složce „/u01/app“.

K přesunu souborů ze složky „/u01/App“ do skupiny disků „+DATA1“ je vyžadován převod názvu souboru.

3.1. Zapojení odpojené PDB do stejné kontejnerové databáze:

Před opětovným zapojením PDB do stejné kontejnerové databáze je nutné ji nejdříve odpojit.

 Příkaz „create pluggable database“ s pomocí souboru XML a různých metod.

a)       Metoda NOCOPY

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

b)      Metoda COPY

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

c)       Metoda 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. Zapojení odpojené PDB do vzdálené kontejnerové databáze:

Přípravné kroky:

A)      Musí mít stejný formát endian.

B)      Musí mít nainstalovanou stejnou sadu možností databáze.

ZDROJ:

1.   Po odpojení PDB převeďte soubor XML do cílového umístění a také databázové soubory ze skupiny disků (+DATA) do umístění operačního systému (/home/) pomocí příkazu ASMCMD cp nebo DATA_FILE_NAME_CONVERT.

2.   Převeďte soubory databáze ze zdrojového do cílového umístění operačního systému. 

CÍL:

Jakmile ze zdroje získáte soubory XML a databázové soubory, můžete pomocí funkce DBMS_PDB.CHECK_PLUG_COMPATIBILITY určit, zda je odpojená PDB kompatibilní s CÍLOVOU KONTEJNEROVOU DATABÁZÍ.

Pokud se vrátí výstup „YES“, pak je PDB kompatibilní.

Pokud se vrátí výstup „NO“, PDB není kompatibilní. Zkontrolujte, zda se v ní nevyskytují chyby pomocí příkazu PDB_PLUG_IN_VIOLATIONS.

Při vytváření vzdálené PDB zvolte požadované klauzule z oddílu 3,

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

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

      Přesun

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

Popis: Soubor XML určuje umístění datových souborů PDB ve smyslu disků ASM, skutečné soubory se však nacházejí v umístění „/home/oracle“. Klauzule Source_file_name_convert pomáhá nahradit vzorec názvu souboru a ukazovat skutečné umístění zdroje. Klauzule file_name_convert pomáhá při přesunu dat z umístění operačního systému na disky ASM.

4. Migrace jiné než kontejnerové databáze 12c do PDB:

Prostudujte si dokument 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.