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

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

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

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

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

База данных 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» и повторите попытку.

Article Properties


Last Published Date

21 Feb 2021

Version

3

Article Type

Solution