Веб-сторінка Oracle 12c Express Enterprise Manager не завантажується


13

Підсумок проблеми

Під час перегляду веб-інтерфейсу Oracle 12c EM Express сторінка очікується, коли використовується URL-адреса на зразок:

  • http (s): // ім'я хоста: 5500 / em
  • http (s): //hostname.domain: 5500 / em

При використанні URL-адреси, що містить IP-адресу або localhost, сторінка завантажується, але дуже повільно (до 5 хвилин).

  • http (s): // ip-address / em
  • http (s): // localhost / em

Під час використання імені хоста журнал слухача показує помилки (кілька з них):

03-DEC-2015 11:25:33 * http * (ADDRESS=(PROTOCOL=tcps)(HOST=<ip address>%14)(PORT=52925)) * handoff * http * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12560: TNS:protocol adapter error

Під час використання IP-адреси або localhost журнал слухача не показує помилок:

03-DEC-2015 11:23:39 * http * (ADDRESS=(PROTOCOL=tcps)(HOST=<ip address>)(PORT=52902)) * handoff * http * 0

Ця проблема з’являється в усьому Інтернеті (див. Посилання у нижньому колонтитулі), і, здається, ніхто не зможе знайти причину цього. Я спробував -every- пропозицію, яку я міг знайти, і перерахував результати нижче. Я дозволю цій великій громаді зламати це, і тоді вона переходить до підтримки Oracle ...

Інформація про платформу

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • Багатостороння база даних контейнерів (CDB) з двома базами даних Pluggable (PDB)
  • Автоматичне управління зберіганням (ASM) не використовується
  • Виконання тестів локально на сервері, при цьому брандмауер повністю відключений

Тести вже виконані

emctl
Багато людей пропонують перевірити "emctl" на звичку. Цього не існує для 12с, оскільки він використовує EM Express, а не керування базами даних.

http / https
Я налаштував і протестував це на http і https. Без різниці.

Веб-переглядач
Я перевірив це у ванільних установках IE 11, chrome та firefox. Не ввімкнено додатки.

Доступ до бази даних
Як до CDB, так і до PDB, можна отримати доступ і запити через SQLPlus

Telnet
Відкриття підключення telnet до портів (наприклад, 5500) працює.

Журнал сповіщень Журнал сповіщень
Oracle не містить повідомлень про помилки.

Мої гіпотези

  • Щось пов'язане з пошуком імені хоста, оскільки він працює -легко, коли використовується IP-адреса замість імені хоста.
  • Щось пов’язане із сертифікатом, хоча ця сама проблема виявляється і для http.
  • Щось стосується конфігурації служби XDB або слухача.
  • Щось пов’язане з включенням чи ні доменної частини імені хоста. Оскільки це додано у більшості файлів конфігурації, але, можливо, не скрізь?

Детальна інформація про платформу

Примітка. У цих фрагментах я завжди замінював фактичне ім'я хоста на "HOSTNAME", а власне домен - на "домен". Якщо використовується "HOSTNAME", це означає, що воно не було відмічене іменем домену. Випадок представляє фактичний випадок, в якому відображається ім'я хоста.

SYS_CONTEXT ("USERENV", "SERVER_HOST")
ім'я хоста

змінна
назва хоста в CMD HOSTNAME

SYS_CONTEXT ('USERENV', 'DB_DOMAIN')
домен

dbms_xdb_config.gethttpsport ()
5500

dbms_xdb_config.gethttpport ()
2200

висновок "lsnrctl status"

    LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-DEC-2015 15:33:12

    Copyright (c) 1991, 2014, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname.domain)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     listener
    Version                   TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Production
    Start Date                03-DEC-2015 12:27:51
    Uptime                    0 days 3 hr. 5 min. 21 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   C:\ORACLE\HOME\network\admin\listener.ora
    Listener Log File         C:\ORACLE\diag\tnslsnr\HOSTNAME\listener\alert\log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HOSTNAME.domain)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HOSTNAME.domain)(PORT=2200))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=HOSTNAME.domain)(PORT=5501))(Security=(my_wallet_directory=C:\ORACLE\admin\ecoomdb\xdb_wallet))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=HOSTNAME.domain)(PORT=5500))(Security=(my_wallet_directory=C:\ORACLE\admin\ecoomdb\xdb_wallet))(Presentation=HTTP)(Session=RAW))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "bibliodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "ecoomdb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "ecoomdbXDB.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "technodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    The command completed successfully

Вихід "lsnrctl services"

    LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-DEC-2015 15:34:22

    Copyright (c) 1991, 2014, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME.domain)(PORT=1521)))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:0 refused:0
             LOCAL SERVER
    Service "bibliodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    Service "ecoomdb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    Service "ecoomdbXDB.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "D000" established:8 refused:21 current:0 max:1022 state:ready
             DISPATCHER <machine: HOSTNAME, pid: 4040>
             (ADDRESS=(PROTOCOL=tcp)(HOST=HOSTNAME.domain)(PORT=49179))
    Service "technodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    The command completed successfully

listener.ora

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\ORACLE\HOME)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\ORACLE\HOME\bin\oraclr12.dll")
        )
      )

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME.domain)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )

init.ora (Обрізаний, також містить інші налаштування ...)

db_domain=domain
db_name="ecoomdb"
dispatchers="(PROTOCOL=TCP) (SERVICE=ecoomdbXDB)"
local_listener=LISTENER*

netstat -a
(відповідний вибір)

 TCP    0.0.0.0:1521           ECONECOOMDB1:0         LISTENING
TCP    0.0.0.0:5500           ECONECOOMDB1:0         LISTENING
TCP    0.0.0.0:5501           ECONECOOMDB1:0         LISTENING
TCP    [::]:5500              ECONECOOMDB1:0         LISTENING
TCP    [::]:5501              ECONECOOMDB1:0         LISTENING

файл хостів Windows
(цей файл порожній)

Змінні середовища

  • PATH містить C: \ ORACLE \ HOME \ bin
  • ORACLE_HOME = C: \ ORACLE \ HOME
  • ORACLE_SID = ecoomdb

Реєстр HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDB12Home1

  • ORACLE_HOME = C: \ ORACLE \ HOME
  • ORACLE_SID = ecoomdb

Суміжні та дублюючі (без відповіді) запитання / документи

Інтернет-ресурси

Питання Stackexchange

Reddit нитки

Спільнота Oracle


Чи ім'я хоста для вашої машини в DNS, чи ви додали його до файлу хостів?
Philᵀᴹ

Файл хостів порожній. Не впевнено, як саме керується ім'ям хоста, але мережа використовує сервер ActiveDirectory, на якому сервер зареєстрований під своїм ім’ям хоста, а сервери DNS визнають його таким.
Wouter

Все це підозріло звучить як проблеми / тайм-аути DNS.
Філ

Будь-яка ідея, як налагодити, відстежити точну причину?
Wouter

Відповіді:


2

Що ви отримуєте при виконанні цих команд на хобі db

з командного рядка ping host ping ipaddress (host ipaddress) tnsping tnsalias

та запустіть служби lsnrctl і побачте, чи відмовлено будь-яке з'єднання

якщо клієнт Oracle встановлений на клієнтській машині (звідки ви отримуєте доступ до oracle em express)

запустити з командного рядка 1) ping ipaddress (db хост ipaddress) - >> якщо ви отримаєте помилку, додайте ipaddress та доменне ім'я до файлу хостів 2) tnsping tnsalias

Редагувати:

Диспетчер D000 показує, що 21 з'єднання відмовлено. У вас проблема з мережею.

Спробуйте перезапустити слухача та підключитися до em express і побачити, що вихід lsnrctl послуг, в ідеалі відхилених з'єднань, повинен дорівнювати нулю.


Я запускаю всі тести на хобі db. Набір імені хоста та ipaddress та налаштування CDB та PDB добре працює. Приємний улов про відмовлені з'єднання! Я перезапустив слухача і застосував ім'я хоста-EM-URL: та сама проблема "веб-сторінка недоступна", і lsnerctl ще не показує запис для XDB. Під час використання ip-EM-URL EM завантажується (повільно), і я отримую запис XDB, але ніяких відмовлених з'єднань немає. Я поняття не маю, що з цього зробити, але, можливо, це робить вам?
Wouter

1
Який вихід цих двох команд з контейнера db? SELECT UTL_INADDR.get_host_address з подвійного; SELECT UTL_INADDR.get_host_name з подвійного;

host_address повертає ipv6 адресу, хост повертає ім'я хоста у великому регістрі, не додаючи домен. Я також запустив звіт про RDA, і він показав "Пошук DNS - НЕПРАВНО". Також Cloud Control не встановлюється під час використання імені хоста, але працює під час використання IP-адреси. Я зараз впевнений, що це якась проблема DNS, я просто не знаю, як налагодити / проаналізувати ...
Wouter

1

Звернувшись до служби підтримки Oracle, я -kinda- зміг зрозуміти, що відбувається. На цьому сервері є 4 мережевих адаптери, 1 адаптер, підключений до мережі, і 3 неконфігуровані адаптери, підключені до сховища iSCSI. Здається, що проблема викликана веб-клієнтом або сервером ЕМ (не впевнений тут), який намагається надіслати запит на веб-сторінку неправильному адаптеру.

Для тих, хто стикається з тією ж проблемою, ви можете перевірити це, переглянувши URL-адресу (використовуючи hostname.domain), а потім перевіривши файл listener.log (-oracle_base- / diag / tnslsnr / -instan- / listener / trace / listener). журнал). Для мене в повідомленні про помилку була відображена інша IP-адреса, ніж IP-адреса основних мережевих адаптерів серверів. IP-адреса одного з мережевих адаптерів, підключених до iSCSI, де показано. Опускаючи IP-адреси у своєму початковому дописі, я не помітив цієї різниці в IP-адресах.

18-DEC-2015 14:17:04 * http * (ADDRESS=(PROTOCOL=tcps)(HOST=<NOT SERVER IP address!>%14)(PORT=62119)) * handoff * http * 12518
TNS-12518: TNS:listener could not hand off client connection
 TNS-12560: TNS:protocol adapter error

При відключенні додаткових мережевих адаптерів все працює добре.

Крім того, під час переходу до "chrome: // net-Internals / # dns" у chrome, IP-адреса всіх чотирьох мережевих адаптерів з'явилася для мого імені хоста.

Мабуть, ця проблема не виникає під час перегляду веб-сторінки з іншого хоста. Також nslookup повертає лише правильну IP-адресу. Тож здається, це не проблема DNS, а локальна проблема. Я думаю, що це не є повною відповіддю на проблему, оскільки відключення мережевих адаптерів не може бути остаточним рішенням, але я сподіваюся, що кожен, хто зіткнеться з цим питанням у майбутньому, має "більше продовжувати" зараз ...

Звідки походить розбіжність між IP-адресою, поверненою DNS-сервером, та IP-адресами, якими користуються веб-браузери?

Я також внесла деякі додаткові зміни, які могли б вплинути на кінцеве рішення, тому для повноти я включу їх. Не впевнений, чи доречно ...:

  • Збільшений параметр процесів бази даних з 300 до 1000
  • Змінено параметр "диспетчери", додавши "(DISPATCHERS = 5)"

0

Спробуйте скористатися IP-адресою:

http(s)://192.168.1.100:5500/em

Таким чином ви обов'язково потрапите на прив’язку мережевої карти до ip.


Маю на увазі, ти маєш на увазі, спробувати додати номер порту до URL? У своєму дописі я сказав, що спробував http (s): // ip-address / em, але, підозрюю, це помилка друку, і я насправді спробував це з номером порту. Я не думаю, що він взагалі завантажиться через порт за замовчуванням (80). Так чи інакше, у мене немає можливості перевірити це зараз, оскільки ми перейшли з Oracle на SQL Server і ніколи не будемо озиратися назад. Oracle просто не має сенсу ні в чому, окрім колосальних середовищ.
Wouter

0

У мене була така ж проблема після встановлення Oracle 12.2.0.1 на Windows 2016.

Спочатку я виявив, що TCP / IPv6 увімкнено, тому я його вимкнув.

Потім спробуйте слідувати номеру нотатки Oracle (Doc ID 1608258.1) - 12c EM Express показує помилкову помилку сертифіката у веб-браузері.

Також не вийшло.

Я це виправив старовинною школою ... :)

Я виявив, що користувач Windows Oracle_DBA (який увійшов на ПК і використовувався для встановлення Oracle 12c) не має дозволів на 2 файли в папці "xdb_wallet".

Так:

1 - Я змінив право власності на папку "xdb_wallet" з того, що було в Oracle_DBA:

введіть тут опис зображення

2 - змінив право власності на два файли (ewallet.p12, cwallet.sso) у папці "xdb_wallet", з того, що було б для Oracle_DBA:

введіть тут опис зображення

3- Я зробив крок 1 ще раз і перевірив, чи змінилося право власності на файл 2.

Веб-сайт https: // ім'я хоста: 5500 / em відмінно працював на FireFox, тому що IE11 / Win2016 має смішні проблеми із Flash Player.

З точки зору безпеки я не знаю, що це означає (кроки 1-3) або які загрози можуть статися через ці зміни.

Будь ласка, поради, якщо знаєте.


-1

Перевірте ip-адресу для імені хоста у /etc/hostsфайлі

наприклад, наступний мій файл хостів

127.0.0.1       localhost
10.148.180.115  tom

tom- це моє ім'я хоста, і 10.148.180.115це ip-адреса для мого хоста

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.