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 з ядром 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. Використання служби за замовчуванням з тим самим ім'ям, що й ім'я pdb, яке створюється програмним забезпеченням бази даних автоматично.
  2. Використання користувацьких сервісів, створених за допомогою властивості pdb за допомогою утиліти SRVCTL, яка пов'язує службу з базами даних, що підключаються
  3. Використання команди alter session і встановлення контейнера в потрібний контейнер
  4. Використання Enterprise Manager Express
 1.Використання служби за замовчуванням для підключення до PDB

Щоб встановити з'єднання з pdb за допомогою служби за замовчуванням, потрібно зробити наступне.
  •    У файлі tnsnames.ora потрібно зробити запис, який визначає адреси баз даних, які дозволяють встановити зв'язок з базою даних.
  •    Стан pdb має бути змінено з mount на режим читання запису.
 Запис, який необхідно зробити у файлі 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 =








(ОПИС =

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

   (CONNECT_DATA =

     (СЕРВЕР = ВИДІЛЕНИЙ)

     (SERVICE_NAME = pdb2.dbase.lab)

   ))

Зміна

статусу бази даних, що підключається:При створенні pdbs, за замовчуванням,

open_mode має значення тільки 'Mounted'. Це можна перевірити наступним чином:

SQL> select name, open_mode from v$pdbs;

ІМ'Я OPEN_MODE
PDB$SEED ТІЛЬКИ
ДЛЯ ЧИТАННЯ PDB1 MOUNT PDB2 MOUNT



Наступна команда відкриває всі бази даних, що підключаються, у режимі читання запису.


> База даних SQL Alter, що підключається, вся відкрита;

Після цього з'єднання з базою даних можна встановити за допомогою sqlplus наступним чином:[oracle@node1 bin]$ sqlplus sys/oracle@pdb1 as sysdba

SQL*Plus:

Реліз 12.1.0.1.0 Виробництво на Вт жовтня 8 11:23:32 2013 Авторське право (c) 1982, 2013

, Oracle. Всі права захищені.

Підключено до:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64-розрядне виробництво з розбивкою на розділи, кластерами реальних додатків, автоматичним управлінням сховищем, OLAP, розширеною аналітикою та опціями

тестування реальних додатків 2. Використання визначеної користувачем служби для підключення до PDB

 Описану вище службу за замовчуванням слід використовувати лише для адміністративних цілей, і її не слід використовувати для програм. Завжди для застосунків потрібно використовувати користувацькі служби, оскільки користувацькі служби можна налаштувати відповідно до вимог програм. Встановлення з'єднання за допомогою користувацьких сервісів включає в себе наступні кроки:
  1. Створення служби баз даних з властивістю PDB за допомогою утиліти SRVCTL
  2. Створіть запис у файлі tnsnames.ora для створеного сервісу
  3. Запустити послугу
  4. Підключіться до бази даних за допомогою сервісу з властивістю pdb, створеним на кроці a
a. Створіть службу бази даних з властивістю PDB за допомогою утиліти

SRVCTLНаступні команди за допомогою утиліти SRVCTL створюють дві служби баз даних hr1 і sales1, які будуть пов'язані з базою даних, що підключається pdb1 :
[[oracle@node1 bin]$ srvctl add service -db cpdb -service hr1 -pdb pdb1 -pdb pdb1 -available cpdb2[oracle@node1 bin]$ srvctl add service -db cpdb -service sales1 -pdb pdb1 -ppdb1 -available cpdb2



Властивість pdb можна переглянути з all_services словника даних.


SQL> SELECT NAME, PDB FROM all_services;

 NAME PDB pdb1.dbase.lab PDB1 hr1 PDB1 sales1 PDB1 PDB1





Команда $ srvctl config service –db <databasename> також виводить список доступних служб.



b.Створіть запис у файлі tnsnames.ora для створеної

служби бази даних Ми можемо створити HR_PDB1 та SALES_PDB1, мережеві назви послуг, які HR-додаток та додаток для продажів можуть використовувати, відповідно, для підключення до бази даних, що підключається, pdb1, наступним чином:

 HR_PDB1 =
(ОПИС = (АДРЕСА = (ПРОТОКОЛ = TCP)(ХОСТ = OracleRACscan.dbase.lab)(ПОРТ = 1521)) (CONNECT_DATA = (СЕРВЕР = ВИДІЛЕНИЙ) (SERVICE_NAME = hr1.dbase.lab) ))SALES_PDB1 =(ОПИС = (АДРЕСА = (ПРОТОКОЛ = TCP)(ХОСТ = OracleRACscan.dbase.lab)(ПОРТ = 1521)) (CONNECT_DATA = (СЕРВЕР =









ВИДІЛЕНИЙ)














     (SERVICE_NAME = sales1.dbase.lab)

   )

)

c. Запустіть службу[oracle@nsnode1 bin]$ srvctl status service -db cpdb -service hr1 Service hr1 не запущено

[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 ПОКАЗАТИ 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 13:56:27 2013 Авторське право (c) 1982, 2013

, Oracle. Всі права захищені. 

Підключено до:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64-розрядне виробництво

з розбивкою на розділи, кластерами реальних додатків, автоматичним управлінням сховищем, OLAP,

розширеною аналітикою та параметрами

тестування реальних додатків SQL> show con_name;



CON_NAME CDB$ROOT

SQL> ALTER SESSION SET CONTAINER = PDB1;

Сеанс змінено.

> SQL SHOW CON_NAME;



CON_NAME PDB1

SQL> ALTER SESSION SET CONTAINER = PDB2;

Сеанс змінено.

> SQL SHOW CON_ID;



CON_ID 4

SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;

Сеанс змінено.

 > SQL SHOW CON_NAME;



CON_NAME CDB$ROOT

Описи ідентифікаторів контейнера такі:
Ідентифікатор контейнера Опис
0 Весь ЦБД
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 13:51:39 2013 Авторське право (c) 1982, 2013

, Oracle. Всі права захищені.

Підключено до:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64-розрядна продакшн

з реальними кластерами додатків і опціями

автоматичного управління сховищем SQL> show con_id;



CON_ID 0

SQL> показати con_name;

 

CON_NAME Не консолідований

4.Використання Enterprise Manager(EM) Express для підключення до PDB

Коли база даних створюється за допомогою Database Configuration Assistant (DBCA), на момент завершення URL-адреса для EM Express надається DBCA. URL-адреса має формат http://< hostname>:p ortnumber/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. SETHTTPSPORT, щоб встановити порт HTTPS для EM Express. Наприклад:

SQL> exec dbms_xdb_config.sethttpsport(5500);

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

Після цього спробуйте отримати доступ до EM Express за допомогою URL-адреси.

 Порт HTTP також можна налаштувати для EM Express, як показано нижче:

SQL> виберіть dbms_xdb_config.gethttpport з dual;

 > SQL exec dbms_xdb_config.sethttpport(8080);

Щоб встановити порт EM Express для pdbs, потрібно змінити контейнер на відповідний pdbs і виконати процедуру PL /SQL для встановлення порту для цього контейнера.

Після цього можна перевірити порт HTTP для cpdb,pdb1 і pdb2 наступним чином:

SQL> вибрати dbms_xdb_config.gethttpport з dual;

GETHTTPPORT

8080

SQL> alter session set container = pdb1;

Сеанс змінено.

> SQL вибираємо dbms_xdb_config.gethttpport з dual;

 GETHTTPPORT

8081

SQL> alter session set container = pdb2;

Сеанс змінено.

> SQL вибираємо dbms_xdb_config.gethttpport з dual;

GETHTTPPORT

8082 
SLN310924_en_US__1icon ПРИМІТКИ: Якщо все одно не вдається підключитися до URL-адреси EM Express, перезавантажте елемент керування прослуховування як користувач сітки та повторіть спробу.

Article Properties


Last Published Date

21 Feb 2021

Version

3

Article Type

Solution