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.

Как установить соединение с подключаемыми базами данных в Oracle RAC 12cR1?

Podsumowanie: Наша задача — предоставлять решения для упрощения ИТ-инфраструктуры, предлагая решения для баз данных, специализированную разработку, динамические ЦОД и гибкие вычислительные системы.

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

Применимо к следующим компонентам.

База данных Oracle — Oracle 12cR1 12.1.0.1.0 Enterprise Edition

Операционные системы — Oracle Linux 6.4 с ядром kernel 2.6.39-400.109.17.1.el6uek.x86-64 и                                          
Red Hat Enterprise Linux с ядром 2.6.32-431.el6.x86_64

Платформы хранения данных — Dell EqualLogic PS 5000 и Dell EqualLogic PS 6110

Проблема.

Как установить соединение с подключаемыми базами данных в Oracle RAC 12CR1?

Решение.

Существует четыре способа установки соединения с подключаемыми базами данных (PDB).
  1. Использование службы по умолчанию с тем же именем, что и имя базы данных, которая создается автоматически программным обеспечением базы данных.
  2. Использование определенных пользователем служб, созданных со свойством PDB с помощью утилиты SRVCTL, которая связывает службу с подключаемыми базами данных
  3. Использование команды «alter session» и установка необходимого контейнера
  4. Использование Enterprise Manager Express
 1. Использование службы по умолчанию для подключения к PDB

Для установки соединения с PDB с помощью службы по умолчанию необходимо выполнить следующие действия.
  •    В файле tnsnames.ora необходимо создать запись, которая определяет адреса баз данных, позволяющие установить соединение с базой данных.
  •    Необходимо изменить состояние PDB с установленного на режим чтения и записи.
 Необходимо создать запись в файле tnsnames.ora.

При использовании Oracle RAC 12c, хотя программное обеспечение базы данных автоматически создает службу по умолчанию с тем же именем, что и подключаемая база данных, файл tnsnames.ora создается только с одной записью, имеющей отношение к глобальной базе данных. Например, при использовании двухузлового Oracle RAC 12c, где «cpdb» — глобальная база данных, «pdb1» и «pdb2» — две созданные подключаемые базы данных, а «cpdb1» и «cpdb2» — два экземпляра, запись по умолчанию в файле tnsnames.ora приведена ниже:-

CPDB =

(DESCRIPTION =

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

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = cpdb.dbase.lab)

   )

)

Таким образом, необходимо создать соответствующие записи для имени службы по умолчанию подключаемых баз данных в файле tnsnames.ora, как показано ниже:

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)

   )

)

Изменение статуса подключаемой базы данных.

При создании PDB по умолчанию для параметра «open_mode» установлено значение «Mounted». Это можно проверить следующим образом:

SQL> select name, open_mode from v$pdbs;

NAME                           OPEN_MODE
PDB$SEED                       READ ONLY

PDB1                           MOUNTED

PDB2                           MOUNTED

Следующая команда открывает все подключаемые базы данных в режиме чтения/записи.

SQL> Alter pluggable database all open;

После этого можно установить соединение с базой данных с помощью sqlplus следующим образом:

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

SQL*Plus: версия 12.1.0.1.0, дата выпуска: 8 октября 2013 г., вторник, 11:23:32

© Oracle, 1982, 2013. Все права сохранены.

Назначение соединения:

Oracle Database 12c Enterprise Edition версия 12.1.0.1.0 — 64-разрядная производственная среда с разбиением на разделы, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics и Real Application Testing

 2. Использование определенной пользователем службы для подключения к PDB

 Описанную выше службу по умолчанию следует использовать только в административных целях, а не для приложений. Для приложений всегда необходимо использовать определенные пользователем службы, поскольку их можно настраивать в соответствии с требованиями приложений. Установка соединения с помощью определенных пользователем служб включает следующие действия:
  1. создание службы базы данных со свойством PDB с помощью утилиты SRVCTL;
  2. создание записи в файле tnsnames.ora для созданной службы;
  3. запуск службы;
  4. подключение к базе данных с помощью службы со свойством PDB, созданным на шаге a.
а) Создание службы базы данных со свойством PDB с помощью утилиты SRVCTL

Следующие команды, использующие утилиту SRVCTL, создают две службы базы данных «hr1» и «sales1» для связи с подключаемой базой данных «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

 Свойство pdb можно просмотреть в представлении словаря данных «all_services».

SQL> SELECT NAME, PDB FROM all_services;

 NAME                       PDB

pdb1.dbase.lab             PDB1

hr1                        PDB1

sales1                     PDB1

Команда «$ srvctl config service –db <имя_базы_данных>» также содержит список доступных служб.

б) Создание записи в файле tnsnames.ora для созданной службы базы данных

 Имена служб HR_PDB1 и SALES_PDB1, которые могут использоваться приложениями «hr» и «sales» соответственно для установки соединения с подключаемой базой данных «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)

   )

)

 в) Запуск службы

[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

Запуск службы, связанной с PDB, автоматически открывает PDB в режиме чтения/записи.

г) Подключение к службе базы данных 

Пользователь подключается к PDB с помощью службы базы данных со свойством «pdb».

Например, пользователь SYS может подключиться к «pdb1» с помощью службы базы данных HR_PDB1, связанной с «pdb1», следующим образом:

SQL> connect sys/oracle@HR_PDB1 AS SYSDBA

Connected.

SQL> SHOW CON_ID;

 CON_ID

3

SQL> SHOW CON_NAME;

CON_NAME

PDB1

3. Использование команды «alter session» для подключения к PDB

По умолчанию при подключении к экземпляру RAC выполняется подключение к CDB$ROOT. Каждый экземпляр RAC открывает PDB, доступен единый образ системы. Если необходимо изменить сеанс на pdb, измените сеанс и укажите необходимый контейнер. Запрос «show con_name» можно использовать для проверки имени текущего контейнера.

[oracle@node1 bin]$ sqlplus / as sysdba

SQL*Plus: версия 12.1.0.1.0, дата выпуска: 9 октября 2013 г., среда, 13:56:27

© Oracle, 1982, 2013. All rights reserved. 

Назначение соединения:

Oracle Database 12c Enterprise Edition версия 12.1.0.1.0 — 64-разрядная производственная среда

С разбиением на разделы, Real Application Clusters, Automatic Storage Management, OLAP,

Advanced Analytics и Real Application Testing

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

 Ниже приведено описание идентификаторов контейнеров.
ID контейнера Описание
0 Вся CDB
1. CDB$ROOT
2. PDB$SEED
От 3 до 254 PDB
Таблица 1.  Описания идентификаторов контейнеров

В данном конкретном примере «con_id 3» представляет «pdb1», а «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: версия 12.1.0.1.0, дата выпуска: 9 октября 2013 г., среда, 13:51:39

© Oracle, 1982, 2013. Все права сохранены.

Назначение соединения:

Oracle Database 12c Enterprise Edition версия 12.1.0.1.0 — 64-разрядная производственная среда

С Real Application Clusters и Automatic Storage Management

 SQL> show con_id;

CON_ID

0

 SQL> show con_name;

 CON_NAME

Non Consolidated

 4. Использование Enterprise Manager (EM) Express для подключения к PDB

При создании базы данных с помощью Database Configuration Assistant (DBCA) на момент завершения URL-адрес для EM Express предоставляется DBCA. URL-адрес имеет формат «http://<hostname>:portnumber/em» с 5500 в качестве идентификатора порта по умолчанию.

 Прежде чем перейти по этому URL-адресу для доступа к EM Express, необходимо выполнить следующую инструкцию SQL, чтобы подтвердить порт для EM Express:

SQL> SELECT dbms_xdb_config.gethttpsport from dual;

GETHTTPSPORT

       5500

Если выходные данные совпадают с указанными выше, можно подключиться к URL-адресу, отображаемому DBCA.

Однако, если выходные данные не определены, например

GETHTTPSPORT,

необходимо выполнить процедуру PL/SQL, DBMS_XDB_CONFIG.SETTPSPORT, чтобы установить порт HTTPS для EM Express. Например:

SQL> exec dbms_xdb_config.sethttpsport(5500);

Процедура PL/SQL успешно завершена.

После этого попробуйте открыть EM Express с помощью URL-адреса.

 Порт HTTP также можно настроить для EM Express, как указано ниже:

SQL> select dbms_xdb_config.gethttpport from dual;

 SQL> exec dbms_xdb_config.sethttpport(8080);

Чтобы установить порт EM Express для баз данных PDB, необходимо изменить контейнер на соответствующие PDB и выполнить процедуру PL/SQL для установки порта для этого контейнера.

После этого можно проверить порт HTTP для «cpdb», «pdb1» и «pdb2» следующим образом:

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 ПРИМЕЧАНИЕ. Если по-прежнему не удается подключиться к URL-адресу EM Express, перезагрузите элемент управления прослушивателя в качестве пользователя «grid» и повторите попытку.

Właściwości artykułu


Data ostatniej publikacji

21 lut 2021

Wersja

3

Typ artykułu

Solution