Przejdź do głównej zawartości
  • Szybkie i łatwe składanie zamówień
  • Wyświetlanie zamówień i śledzenie stanu wysyłki
  • Tworzenie i dostęp do listy produktów
  • Na firmowej stronie administracji możesz zarządzać witrynami, produktami i danymi kontaktowymi firmy Dell EMC.

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

Podsumowanie: 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.

Ten artykuł mógł zostać automatycznie przetłumaczony. Jeśli masz uwagi na temat jego jakości, przekaż je nam, korzystając z formularza u dołu tej strony.

Treść artykułu


Objawy

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.

Właściwości artykułu


Data ostatniej publikacji

21 lut 2021

Wersja

3

Typ artykułu

Solution