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 połączyć się z podłączanymi bazami danych w programie Oracle RAC 12cR1?

Podsumowanie: Naszą misją jest dostarczenie rozwiązań, które ułatwiają obsługę technologii IT, zapewniając rozwiązania baz danych, rozwiązania niestandardowe, rozwiązania dynamicznych centrów danych i elastyczne rozwiązania informatyczne ...

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

Dotyczy:

Baza danych Oracle – Oracle 12cR1 12.1.0.1.0 Enterprise Edition

Systemy operacyjne – Oracle Linux 6.4 z jądrem 2.6.39-400.109.17.1.el6uek.x86-64 i                                          
Red Hat Enterprise Linux z jądrem 2.6.32-431.el6.x86_64

Platformy pamięci masowej — Dell EqualLogic PS 5000 i Dell EqualLogic PS 6110

Problem:

Jak nawiązać połączenie z podłączanymi bazami danych w programie Oracle RAC 12cR1?

Rozwiązanie:

Istnieją cztery sposoby ustanowienia połączenia z podłączanymi bazami danych (PDB).
  1. Przy użyciu domyślnej usługi o takiej samej nazwie jak nazwa PDB, która jest automatycznie tworzona przez oprogramowanie do baz danych.
  2. Przy użyciu usług definiowanych przez użytkownika, utworzonych za pomocą właściwości PDB korzystających z narzędzia SRVCTL, które kojarzy usługę z podłączanymi bazami danych.
  3. Przy użyciu polecenia zmiany sesji i poprzez przypisanie kontenera do wybranego kontenera.
  4. Przy użyciu programu Enterprise Manager Express.
 1. Korzystanie z usługi domyślnej do nawiązania połączenia z PDB

Aby nawiązać połączenie z PDB przy użyciu usługi domyślnej, należy wykonać następujące czynności.
  •    Wprowadź wpis w pliku tnsnames.ora definiujący adresy baz danych, które umożliwią nawiązanie połączenia z bazą danych.
  •    Zmień tryb PDB z zamontowanego na do odczytu/zapisu.
 Należy wprowadzić wpis w pliku tnsnames.ora:

W przypadku programu Oracle RAC 12c, mimo że usługa domyślna o takiej samej nazwie jak nazwa bazy danych tworzona jest przez oprogramowanie do baz danych automatycznie, plik tnsnames.ora generowany jest tylko z pojedynczym wpisem odnoszącym się do globalnej bazy danych. Przykładowo w przypadku programu Oracle RAC 12c z dwoma węzłami, gdzie cpdb to globalna baza danych, pdb1 i pdb2 są dwiema podłączanymi bazami danych, a cpdb1 i cpdb2 są dwoma elementami, domyślnym wpisem w pliku tnsnames.ora będzie:-

CPDB =

(DESCRIPTION =

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

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = cpdb.dbase.lab)

   )

)

W pliku tnsnames.ora należy także stworzyć odpowiednie wpisy dopasowane do domyślnej nazwy usługi podłączanych baz danych:

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)

   )

)

Zmiana stanu podłączanej bazy danych:

Po utworzeniu PDB domyślnie parametr open_mode ma tylko wartość „Mounted” (zamontowany). Można to zweryfikować w następujący sposób:

SQL> select name, open_mode from v$pdbs;

NAME                           OPEN_MODE
PDB$SEED                       READ ONLY

PDB1                           MOUNTED

PDB2                           MOUNTED

Poniższe polecenie powoduje otwarcie wszystkich podłączanych baz danych w trybie odczytu/zapisu.

SQL> Alter pluggable database all open;

Po wykonaniu tych czynności można ustanowić połączenie z bazą danych przy użyciu sqlplus w następujący sposób:

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

SQL*Plus: Wersja produkcyjna 12.1.0.1.0, wtorek, 8 października, 11:23:32, 2013 r.

Prawa autorskie (c) 1982, 2013, Oracle. Wszelkie prawa zastrzeżone.

Połączenie z:

Oracle Database 12c Enterprise Edition wersja 12.1.0.1.0 — 64-bitowa z podziałem, klastrami rzeczywistej aplikacji, automatycznym zarządzaniem pamięcią masową, OLAP, zaawansowanymi funkcjami analitycznymi i opcjami rzeczywistego testowania aplikacji

 2. Nawiązywanie połączenia z PDB przy użyciu usługi zdefiniowanej przez użytkownika

 Usługi domyślne opisane powyżej powinny być używane tylko do celów administracyjnych. Nie powinny być używane do aplikacji. Do aplikacji zawsze używaj usług zdefiniowanych przez użytkownika, ponieważ można je dostosować do ich wymagań. Nawiązywanie połączenia przy użyciu usług zdefiniowanych przez użytkownika obejmuje następujące czynności:
  1. Utwórz przy użyciu narzędzia SRVCTL usługę baz danych z właściwością PDB.
  2. Utwórz wpis w pliku tnsnames.ora do utworzonej usługi.
  3. Uruchom usługę
  4. Nawiąż połączenie z bazą danych za pomocą usługi z właściwością PDB utworzoną w kroku a.
a. Tworzenie usługi bazy danych z właściwością PDB przy użyciu narzędzia SRVCTL

Następujące polecenia pozwalają przy użyciu narzędzia SRVCTL utworzyć dwie usługi baz danych: hr1 i sales1, które należy skojarzyć z podłączaną bazą danych 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

 Właściwość pbd można wyświetlić w widoku słownika danych all_services.

SQL> SELECT NAME, PDB FROM all_services;

 NAME                       PDB

pdb1.dbase.lab             PDB1

hr1                        PDB1

sales1                     PDB1

Polecenie $ srvctl config service –db <databasename> również pozwala wyświetlić dostępne usługi.

b. Tworzenie wpisu w pliku tnsnames.ora do utworzonej usługi bazy danych

 W sposób wskazany poniżej można tworzyć nazwy sieciowe usług HR_PDB1 i SALES_PDB1, które odpowiednio mogą być używane przez aplikację hr i sales do łączenia się z podłączaną bazą danych pdb1:

 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. Uruchamianie usługi

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

Service hr1 is not running

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

Uruchomienie usługi skojarzonej z pbd automatycznie otwiera pbd w trybie odczytu zapisu.

d. Łączenie się z usługą bazy danych 

Użytkownik może połączyć się z pdb przy użyciu usługi bazy danych z właściwością pdb.

Na przykład użytkownik SYS może połączyć się z pdb1 przy użyciu usługi bazy danych HR_PDB1 skojarzonej z pdb1 w następujący sposób:

SQL> connect sys/oracle@HR_PDB1 AS SYSDBA

Connected.

SQL> SHOW CON_ID;

 CON_ID

3

SQL> SHOW CON_NAME;

CON_NAME

PDB1

3. Nawiązywanie połączenia z PDB przy użyciu polecenia zmiany sesji

Domyślnie po połączeniu z elementem RAC łączysz się z CDB$ROOT. Każdy wystąpienie RAC otwiera cały system PDB i dostępny jest jeden obraz systemu. Jeśli chcesz zmienić sesję na pdb, możesz to zrobić, zmieniając sesję i przypisując kontener do wybranego kontenera. Zapytanie „show con_name” może posłużyć do zweryfikowania nazwy bieżącego kontenera.

[oracle@node1 bin]$ sqlplus / as sysdba

SQL*Plus: Wersja produkcyjna 12.1.0.1.0, środa, 9 października, 13:56:27, 2013 r.

Prawa autorskie (c) 1982, 2013, Oracle. Wszelkie prawa zastrzeżone. 

Połączenie z:

Oracle Database 12c Enterprise Edition wersja produkcyjna 12.1.0.1.0 – 64-bitowa

Z opcjami partycjonowania, Real Application Clusters, Automatic Storage Management, OLAP,

zaawansowanymi funkcjami analitycznymi i opcjami rzeczywistego testowania aplikacji

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

 Opisy identyfikatorów kontenerów są następujące:
Identyfikator kontenera Opis
0 Whole CDB
1 CDB$ROOT
2 PDB$SEED
od 3 do 254 PDB
Tabela 1:  Opisy identyfikatorów kontenerów

W tym konkretnym przykładzie con_id 3 stanowi pdb1 a con_id 4 — 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: Wersja produkcyjna 12.1.0.1.0, środa, 9 października, 13:51:39, 2013 r.

Prawa autorskie (c) 1982, 2013, Oracle. Wszelkie prawa zastrzeżone.

Połączenie z:

Oracle Database 12c Enterprise Edition wersja produkcyjna 12.1.0.1.0 – 64-bitowa

Z opcjami Real Application Clusters i Automatic Storage Management

 SQL> show con_id;

CON_ID

0

 SQL> show con_name;

 CON_NAME

Non Consolidated

 4. Korzystanie z programu Enterprise Manager (EM) Express do łączenia się z PDB

Jeśli baza danych powstaje przy użyciu programu Database Configuration Assistant (DBCA), po zakończeniu procesu adres URL przeznaczony dla programu EM Express jest dostarczany przez DBCA. Adres URL ma format http://<hostname>:portnumber/em. Domyślny identyfikator portu to 5500.

 Zanim przejdziesz do tego adresu URL, aby uzyskać dostęp do programu EM Express, użyj następującego polecenia SQL, aby potwierdzić numer portu do programu EM Express:

SQL> SELECT dbms_xdb_config.gethttpsport from dual;

GETHTTPSPORT

       5500

Jeśli dane wyjściowe są takie jak powyżej, możesz połączyć się z adresem URL wyświetlanym w programie DBCA.

Jeśli jednak są puste, jak na przykład

GETHTTPSPORT

należy wykonać procedurę PL/SQL, DBMS_XDB_CONFIG.SETHTTPSPORT, aby ustawić port HTTPS do programu EM Express. Na przykład:

SQL> exec dbms_xdb_config.sethttpsport(5500);

PL/SQL procedure successfully completed.

Po wykonaniu tej procedury spróbuj uzyskać dostęp do programu EM Express przy użyciu adresu URL.

 Port HTTP do programu EM Express również można skonfigurować, jak pokazano poniżej:

SQL> select dbms_xdb_config.gethttpport from dual;

 SQL> exec dbms_xdb_config.sethttpport(8080);

Aby ustawić port EM Express do pbd, zmień kontener na odpowiedni pbd i wykonaj procedurę PL/SQL do ustawiania portu do tego kontenera.

Po wykonaniu tych czynności możesz sprawdzić port HTTP dla cpdb, pdb1 i pdb2 w sposób następujący:

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 Uwaga: Jeśli nadal nie możesz połączyć się z adresem URL programu EM Express, załaduj ponownie kontrolę obserwatora jako użytkownik sieci, a następnie spróbuj ponownie.

Właściwości artykułu


Data ostatniej publikacji

21 lut 2021

Wersja

3

Typ artykułu

Solution