Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Jak se připojit k připojitelným databázím v systému Oracle RAC 12cR1?

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 may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Platí pro:

Oracle Database – Oracle 12cR1 12.1.0.1.0 Enterprise Edition

Operační systémy – Oracle Linux 6.4 s jádrem 2.6.39-400.109.17.1.el6uek.x86-64 a                                          
Red Hat Enterprise Linux s jádrem 2.6.32-431.el6.x86_64

Platformy úložiště – Dell EqualLogic PS 5000 a Dell EqualLogic PS 6110

Problém:

Jak se připojit k připojitelným databázím v systému Oracle RAC 12cR1?

Řešení:

Existují čtyři způsoby, jak navázat spojení s připojitelnými databázemi (PDB).
  1. Pomocí výchozí služby se stejným názvem jako název PDB, který je automaticky vytvořen databázovým softwarem.
  2. Pomocí uživatelem definovaných služeb vytvořených s vlastností PDB pomocí nástroje SRVCTL, který spojuje službu s připojitelnými databázemi
  3. Pomocí příkazu pro změnu relace a nastavení kontejneru na požadovaný kontejner
  4. Pomocí nástroje Enterprise Manager Express
 1. Připojení k PDB pomocí výchozí služby

Chcete-li navázat spojení s PDB pomocí výchozí služby, je třeba provést následující kroky.
  •    V souboru tnsnames.ora, který definuje databázové adresy umožňující navázat spojení s databází, je nutné vytvořit záznam.
  •    Stav PDB je třeba změnit z režimu Mounted na režim Read/Write.
 Záznam, který je třeba provést v souboru tnsnames.ora:

V systému Oracle RAC 12c databázový software sice automaticky vytvoří výchozí službu se stejným názvem, jaký má připojitelná databáze, soubor tnsnames.ora se však přesto vygeneruje pouze s jedním záznamem, který se týká globální databáze. Například v případě systému Oracle RAC 12c se dvěma uzly, kde CPDB je globální databáze, PDB1 a PDB2 jsou dvě vytvořené připojitelné databáze a CPDB1 a CPDB2 jsou dvě instance, výchozí položka v souboru tnsnames.ora bude jako níže:-

CPDB =

(DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = OracleRACscan.dbase.lab)(PORT = 1521))

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = cpdb.dbase.lab)

   )

)

Proto je v souboru tnsnames.ora nutné vytvořit relevantní záznamy pro výchozí název služby databází s možností zapojení, jak je uvedeno níže:

PDB1 =

(DESCRIPTION =                                                             

   (ADDRESS = (PROTOCOL = TCP) (HOST = OracleRACscan.dbase.lab)(PORT = 1521))

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = pdb1.dbase.lab)

   )

)

PDB2 =

(DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP) (HOST = OracleRACscan.dbase.lab)(PORT = 1521))

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = pdb2.dbase.lab)

   )

)

Změna stavu připojitelné databáze:

Když jsou vytvořeny PDB, ve výchozím nastavení má možnost open_mode hodnotu pouze „Mounted“. To lze ověřit následujícím způsobem:

SQL>select name, open_mode from v$pdbs;

NAME                           OPEN_MODE
PDB$SEED                       READ ONLY

PDB1                           MOUNTED

PDB2                           MOUNTED

Následující příkaz otevře všechny připojitelné databáze v režimu čtení a zápisu.

SQL> Alter pluggable database all open;

Poté lze navázat připojení s databází pomocí sqlplus následujícím způsobem:

[oracle@node1 bin]$ sqlplus sys/oracle@pdb1 as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Tue Oct 8 11:23:32 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options

 2. Připojení k PDB pomocí služby definované uživatelem

Výchozí služba uvedená výše by se měla používat pouze pro administrativní účely, a nikoli pro aplikace. Pro aplikace je nutné vždy používat služby definované uživatelem, protože je lze přizpůsobit tak, aby vyhovovaly požadavkům aplikací. Navázání spojení pomocí služeb definovaných uživatelem zahrnuje následující kroky:
  1. Vytvořte databázovou službu s vlastností PDB pomocí nástroje SRVCTL
  2. Pro vytvořenou službu vytvořte záznam v souboru tnsnames.ora
  3. Spuštění služby
  4. Připojte se k databázi pomocí služby s vlastností PDB vytvořené v kroku A
a. Vytvoření databázové služby s vlastností PDB pomocí nástroje SRVCTL

Následující příkazy nástroje SRVCTL vytvoří dvě databázové služby hr1 a sales1, které budou přidruženy k připojitelné databázi pdb1.

[[oracle@node1 bin]$ srvctl add service -db cpdb -service hr1 -pdb pdb1 -preferred cpdb1 -available cpdb2

[oracle@node1 bin]$ srvctl add service -db cpdb -service sales1 -pdb pdb1 -preferred cpdb1 -available cpdb2

 Vlastnost pdb lze také zobrazit ze zobrazení datového slovníku all_services.

SQL> SELECT NAME, PDB FROM all_services;

 NAME                       PDB

pdb1.dbase.lab             PDB1

hr1                        PDB1

sales1                     PDB1

Příkaz $ srvctl config service –db <název_databáze> rovněž uvede dostupné služby.

b. Vytvoření záznamu v souboru tnsnames.ora pro vytvořenou databázovou službu

Můžeme vytvořit HR_PDB1 a SALES_PDB1, síťové názvy služeb, které mohou aplikace hr a sales používat k připojení k připojitelné databázi pdb1, a to následujícím způsobem:

 HR_PDB1 =

(DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = OracleRACscan.dbase.lab)(PORT = 1521))

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = hr1.dbase.lab)

   )

)

SALES_PDB1 =

(DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = OracleRACscan.dbase.lab)(PORT = 1521))

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = sales1.dbase.lab)

   )

)

c. Spuštění služby

[oracle@nsnode1 bin]$ srvctl status service -db cpdb -service hr1

Služba hr1 neběží

 [oracle@nsnode1 bin]$ srvctl start service -db cpdb -service hr1

Spuštění služby přidružené k PDB automaticky otevře PDB v režimu pro čtení či zápis.

d. Připojení k databázové službě

Uživatel se připojí k PDB pomocí databázové služby s vlastností PDB.

Uživatel SYS se může například připojit k pdb1 pomocí databázové služby HR_PDB1 přidružené k pdb1 následovně:

SQL> connect sys/oracle@HR_PDB1 AS SYSDBA

Connected.

SQL> SHOW CON_ID;

 CON_ID

3

SQL> SHOW CON_NAME;

CON_NAME

PDB1

3. Použití příkazu Alter Session pro připojení k PDB

Ve výchozím nastavení se při připojování k instanci RAC připojujete k CDB$ROOT. Každá instance RAC otevírá PDB jako celek a je k dispozici jediná bitová kopie systému. Pokud chcete změnit relaci na PDB, můžete tak učinit změnou relace a nastavením kontejneru na požadovaný kontejner. Dotaz „show con_name“ lze použít k ověření názvu aktuálního kontejneru.

[oracle@node1 bin]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Oct 9 13:56:27 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved. 

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Advanced Analytics and Real Application Testing options

SQL> show con_name;

CON_NAME

CDB$ROOT

SQL> ALTER SESSION SET CONTAINER = PDB1;

Session altered.

SQL> SHOW CON_NAME;

CON_NAME

PDB1

 SQL> ALTER SESSION SET CONTAINER = PDB2;

Session altered.

SQL> SHOW CON_ID;

CON_ID

4

SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;

Session altered.

 SQL> SHOW CON_NAME;

CON_NAME

CDB$ROOT

Popisy ID kontejneru jsou následující:
ID kontejneru Popis
0 Whole CDB
1 CDB$ROOT
2 PDB$SEED
3 až 254 PDB
Tabulka 1:  Popisy ID kontejneru

V tomto konkrétním příkladu „con_id 3“ představuje pdb1 a „con_id 4“ zase pdb2.

[grid@node1 bin]$ echo $ORACLE_HOME

/u01/app/12.1.0/grid

 [grid@node1 bin]$ echo $ORACLE_SID

+ASM1

[grid@node1 bin]$ sqlplus / as sysdba

 SQL*Plus: Release 12.1.0.1.0 Production on Wed Oct 9 13:51:39 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

 SQL> show con_id;

CON_ID

0

 SQL> show con_name;

 CON_NAME

Non Consolidated

4. Připojení k PDB pomocí nástroje Enterprise Manager(EM) Express

Pokud je databáze vytvořena pomocí nástroje Database Configuration Assistant (DBCA), je adresa URL pro nástroj EM Express v okamžiku dokončení poskytnuta nástrojem DBCA. Adresa URL má formát http://<název_hostitele>:číslo_portu/em a jako ID výchozího portu je nastavena hodnota 5500.

Než přejdete na tuto adresu URL pro přístup k nástroji EM Express, je třeba spustit následující příkaz SQL za účelem potvrzení portu pro nástroj EM Express:

SQL> SELECT dbms_xdb_config.gethttpsport from dual;

GETHTTPSPORT

       5500

Pokud se zobrazí výstup, který je uveden výše, můžete se připojit k adrese URL zobrazené nástrojem DBCA.

Pokud má však výstup nulovou hodnotu, například

GETHTTPSPORT

, potom je nutné provést postup PL/SQL DBMS_XDB_CONFIG.SETHTTPSPORT, aby bylo možné nastavit port HTTPS pro nástroj EM Express. Například:

SQL> exec dbms_xdb_config.sethttpsport(5500);

PL/SQL procedure successfully completed.

Poté zkuste otevřít nástroj EM Express pomocí adresy URL.

 Port HTTP lze také nakonfigurovat pro nástroj EM Express, jak je uvedeno níže:

SQL> select dbms_xdb_config.gethttpport from dual;

 SQL> exec dbms_xdb_config.sethttpport(8080);

Chcete-li nastavit port EM Express pro pdbs, je třeba změnit kontejner na příslušné pdbs a spustit postup PL /SQL za účelem nastavení portu pro tento kontejner.

Poté můžete zkontrolovat port HTTP pro cpdb, pdb1 a pdb2 následujícím způsobem:

SQL> select dbms_xdb_config.gethttpport from dual;

GETHTTPPORT

       8080

SQL> alter session set container = pdb1;

Session altered.

SQL> select dbms_xdb_config.gethttpport from dual;

 GETHTTPPORT

       8081

SQL> alter session set container = pdb2;

Session altered.

SQL> select dbms_xdb_config.gethttpport from dual;

GETHTTPPORT

       8082 
SLN310924_en_US__1icon POZNÁMKA: Pokud se stále nemůžete připojit k adrese URL nástroje EM Express, načtěte znovu ovládací prvek pro naslouchání jako uživatel mřížky a zkuste to znovu.

Article Properties


Last Published Date

21 Feb 2021

Version

3

Article Type

Solution