Веб-страница Oracle 12c Express Enterprise Manager не загружается


13

Краткое описание проблемы

При просмотре веб-интерфейса Oracle 12c EM Express время ожидания страницы при использовании URL-адреса, например:

  • HTTP (s): // имя хоста: 5500 / эм
  • HTTP (S): //hostname.domain: 5500 / эм

При использовании URL-адреса, содержащего IP-адрес или localhost, страница загружается, но очень очень медленно (до 5 минут).

  • HTTP (S): // IP-адрес / EM
  • HTTP (s): // локальный / эм

При использовании имени хоста журнал слушателя показывает ошибки (несколько из них):

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-адреса или локального хоста журнал слушателя не показывает ошибок:

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

Эта проблема обнаруживается во всем Интернете (см. Ссылки в нижнем колонтитуле), и, кажется, никто не может найти причину этого. Я попробовал все предложения, которые смог найти, и перечислил результаты ниже. Я позволю этому великому сообществу разобраться с этим, а затем отправлюсь на поддержку Oracle ...

Информация о платформе

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • Многопользовательская контейнерная база данных (CDB) с двумя подключаемыми базами данных (PDB)
  • Автоматическое управление хранилищем (ASM) не используется
  • Локальное выполнение тестов на сервере с полностью отключенным межсетевым экраном

Тесты уже выполнены

emctl
Многие люди предлагают проверить "emctl" по привычке. Это не существует для 12c, поскольку он использует EM Express, а не управление базой данных.

http / https,
который я настроил, и проверил это для http и https. Нет разницы.

Браузер
Я проверял это в ванильных установках IE 11, Chrome и Firefox. Надстройки не включены.

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

Telnet
Открытие telnet-соединений с портами (например, 5500) работает.

Журнал оповещения
журнал оповещения Оракул не содержит каких - либо сообщений об ошибках.

Мои гипотезы

  • Нечто связанное с поиском имени хоста, так как оно работает -slighty- при использовании IP-адреса вместо имени хоста.
  • Нечто связанное с сертификатом, хотя та же самая проблема обнаруживается для http.
  • Что-то связанное с настройкой службы XDB или службы прослушивания.
  • Что-то связано с тем, включена ли доменная часть имени хоста или нет. Как это добавляется в большинстве файлов конфигурации, но, возможно, не везде?

Подробная информация о платформе

Примечание. В этих фрагментах я всегда заменял фактическое имя хоста на «HOSTNAME», а фактический домен - на «domain». Если используется «HOSTNAME», это означает, что оно не отслеживалось по имени домена. Регистр представляет собой фактический регистр, в котором отображается имя хоста.

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

переменная hostname в 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 ( Trimmed , также содержит другие настройки ...)

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

Связанные и дублирующие (без ответа) вопросы / документы

Интернет ресурсы

Вопросы по обмену

Reddit темы

Сообщество Oracle


Имя хоста для вашей машины в DNS или вы добавили его в файл hosts?
Philᵀᴹ

Файл hosts пуст. Не уверен, как именно управляется имя хоста, но сеть использует сервер ActiveDirectory, где сервер зарегистрирован под своим именем хоста, и DNS-серверы распознают его как таковой.
Воутер

Все это звучит подозрительно, как проблемы DNS / тайм-ауты.
Philᵀᴹ

Любая идея о том, как отлаживать, отслеживать точную причину?
Воутер

Ответы:


2

Что вы получаете, когда запускаете эти команды на хосте БД

из командной строки ping хост ping ipaddress (хост ipaddress) tnsping tnsalias

и запустите службы lsnrctl и посмотрите, отказано ли какое-либо соединение (я)

если на клиентском компьютере установлен клиент oracle (откуда вы обращаетесь к oracle em express)

запустить из командной строки 1) ping ipaddress (db host ipaddress) - >> если вы получаете ошибку, добавьте ipaddress и имя домена в файл hosts 2) tnsping tnsalias

Редактировать:

Диспетчер D000 показывает 21 соединение отказано. У вас проблемы с сетью.

Попробуйте перезапустить прослушиватель и подключиться к em express и посмотреть, что на выходе служб lsnrctl в идеале отклоненные соединения должны быть равны нулю.


Я запускаю все тесты на хосте БД. Пингует имя хоста и ipaddress, а tnsping к CDB и PDB работает нормально. Хороший улов про отказавшиеся соединения! Я перезапустил прослушиватель и использовал hostname-EM-URL: та же проблема «веб-страница недоступна», и lsnerctl не показывает записи для XDB. При использовании ip-EM-URL EM загружается (медленно), и я получаю запись XDB, но нет отклоненных соединений. Я понятия не имею, что с этим делать, но, может быть, это с тобой?
Воутер

1
что вывод этих двух команд из контейнера БД? ВЫБЕРИТЕ UTL_INADDR.get_host_address из двойного; ВЫБЕРИТЕ UTL_INADDR.get_host_name из двойного;

host_address возвращает адрес ipv6, хост возвращает имя хоста в верхнем регистре, без присоединенного домена. Я также выполнил отчет RDA, и это показало "DNS Lookup - FAILED". Кроме того, Cloud Control не удается установить при использовании имени хоста, но работает при использовании IP-адреса. Теперь я уверен, что это какая-то проблема с DNS, я просто не знаю, как отлаживать / анализировать ...
Wouter

1

Обратившись в службу поддержки Oracle, я смог выяснить, что происходит. Этот сервер имеет 4 сетевых адаптера, 1 адаптер, подключенный к сети, и 3 ненастроенных адаптера, подключенных к хранилищу iSCSI. Кажется, проблема вызвана тем, что веб-клиент или EM-сервер (здесь не уверен) пытаются отправить запрос веб-страницы не тому адаптеру.

Для тех, кто сталкивается с той же проблемой, вы можете проверить это, перейдя по URL (используя hostname.domain) и затем проверив файл listener.log (-oracle_base- / diag / tnslsnr / -instance- / 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 просто не имеет смысла ни в чем, кроме колоссальных сред.
Воутер

0

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

Сначала я обнаружил, что TCP / IPv6 включен, поэтому отключил его.

Затем попытался выполнить следующий номер примечания Oracle (идентификатор документа 1608258.1) - 12c EM Express показывает неверную ошибку сертификата в веб-браузере.

Также не работал.

Я исправил это по старой школьной манере ... :)

Я обнаружил, что пользователь Windows Oracle_DBA (который вошел в систему на компьютере и использовал для установки Oracle 12c) не имеет каких-либо разрешений для 2 файлов в папке "xdb_wallet".

Так:

1- Я изменил владельца для папки "xdb_wallet" с того, что было на Oracle_DBA:

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

2 - изменил владельца 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.115IP-адрес моего хоста

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.