Oracle 12c Express Enterprise Manager 웹 페이지가로드되지 않습니다


13

문제 요약

Oracle 12c EM Express 웹 인터페이스를 탐색 할 때 다음과 같은 URL을 사용하면 페이지가 시간 초과됩니다.

  • http (s) : // 호스트 이름 : 5500 / em
  • http (s) : //hostname.domain : 5500 / em

IP 주소 또는 로컬 호스트가 포함 된 URL을 사용하면 페이지가로드되지만 매우 느리게 (최대 5 분).

  • http : // 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 주소 또는 로컬 호스트를 사용하면 리스너 로그에 오류가 표시되지 않습니다.

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

이 문제는 웹 전체에 나타나며 (바닥 글의 참조 참조) 아무도이 원인을 찾을 수없는 것 같습니다. 나는 찾을 수있는 모든 제안을 시도하고 아래 결과를 나열했습니다. 이 위대한 커뮤니티에 균열이 생기도록 한 다음 Oracle 지원 부서에 맡기십시오.

플랫폼 정보

  • Windows Server 2012 R2 x64
  • 오라클 12.1.0.2.0
  • 두 개의 플러그 가능 데이터베이스 (PDB)가있는 멀티 테넌트 컨테이너 데이터베이스 (CDB)
  • ASM (자동 스토리지 관리) 을 사용 하지 않습니다
  • 방화벽이 완전히 비활성화 된 상태에서 서버에서 로컬로 테스트 수행

이미 수행 된 테스트

emctl
많은 사람들이 "emctl"을 습관적으로 검사 할 것을 제안합니다. 데이터베이스 제어가 아닌 EM Express를 사용하므로 12c에는 존재하지 않습니다.

http / https
내가 설정하고 http 및 https에 대해 테스트했습니다. 차이 없음.

브라우저
IE 11, 크롬 및 파이어 폭스의 바닐라 설치에서 이것을 테스트했습니다. 추가 기능을 사용할 수 없습니다.

데이터베이스 액세스
CDB와 PDB 모두 SQLPlus를 통해 액세스하고 쿼리 할 수 ​​있습니다.

Telnet
포트 (예 : 5500)에 대한 Telnet 연결을 여는 것이 작동합니다.

경고 로그
Oracle 경고 로그에는 오류 메시지가 없습니다.

내 가설

  • 호스트 이름 대신 IP 주소를 사용할 때 호스트 이름 조회와 관련이 있습니다.
  • 동일한 문제가 http에 표시되지만 인증서와 관련된 것입니다.
  • XDB 또는 리스너 서비스 구성과 관련이 있습니다.
  • 포함되는 호스트 이름의 도메인 부분과 관련된 것. 이것이 대부분의 구성 파일에 추가되었지만 어디에도 없습니까?

자세한 플랫폼 정보

참고 :이 스 니펫에서는 항상 실제 호스트 이름을 "HOSTNAME"으로 바꾸고 실제 도메인을 "domain"으로 바꿨습니다. "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 서비스"출력

    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

관련 및 중복 (응답되지 않은) 질문 / 문서

온라인 자료

스택 교환 질문

레딧 스레드

오라클 커뮤니티


컴퓨터의 호스트 이름이 DNS에 있습니까, 아니면 호스트 파일에 추가 했습니까?
Philᵀᴹ

호스트 파일이 비어 있습니다. 호스트 이름이 정확히 어떻게 관리되는지 확실하지 않지만 네트워크는 서버가 호스트 이름으로 등록 된 ActiveDirectory 서버를 사용하며 DNS 서버는이를 호스트 서버로 인식합니다.
Wouter

DNS 문제 / 시간 초과와 같은 것으로 들립니다.
Philᵀᴹ

디버깅하는 방법에 대한 아이디어, 정확한 원인 추적?
Wouter

답변:


2

DB 호스트에서 이러한 명령을 실행할 때 무엇을 얻습니까?

명령 프롬프트에서 ping host ping ipaddress (host ipaddress) tnsping tnsalias

lsnrctl 서비스를 실행하고 연결이 거부되었는지 확인하십시오.

Oracle 클라이언트가 클라이언트 시스템에 설치된 경우 (Oracle Em Express에 액세스하는 위치에서)

명령 프롬프트에서 실행 1) ping ipaddress (db host ipaddress)->> 오류가 발생하면 호스트 파일에 ipaddress 및 도메인 이름을 추가하십시오 2) tnnsping tnsalias

편집하다:

디스패처 D000은 21 개의 연결이 거부되었음을 나타냅니다. 네트워크 문제가 있습니다.

리스너를 다시 시작하고 em express에 연결하고 lsnrctl 서비스 출력에서 ​​이상적으로 거부 된 연결이 0이어야 함을 확인하십시오.


DB 호스트에서 모든 테스트를 실행하고 있습니다. 호스트 이름과 ipaddress를 Ping하고 CDB와 PDB에 tnsping을 수행하면 정상적으로 작동합니다. 거부 된 연결에 대한 좋은 캐치! 리스너를 다시 시작하고 호스트 이름 -EM-URL을 사용했습니다. 동일한 문제 "웹 페이지를 사용할 수 없음"과 lsnerctl에 XDB에 대한 항목이 아직 표시되지 않습니다. ip-EM-URL을 사용할 때 EM이 느리게로드되고 XDB 항목이 있지만 거부 된 연결이 없습니다. 이걸로 무엇을 만들어야할지 모르겠지만 어쩌면 당신에게 있습니까?
Wouter

1
컨테이너 db 에서이 두 명령의 출력은 무엇입니까? 이중에서 UTL_INADDR.get_host_address를 선택하십시오. 이중에서 UTL_INADDR.get_host_name을 선택하십시오.

host_address는 ipv6 주소를 반환하고 호스트는 도메인을 연결하지 않고 호스트 이름을 대문자로 반환합니다. 또한 RDA 보고서를 실행했으며 "DNS 조회-실패"를 표시했습니다. 또한 호스트 이름을 사용할 때는 Cloud Control이 설치되지 않지만 IP 주소를 사용할 때는 작동합니다. 나는 이것이 일종의 DNS 문제라고 확신한다. 나는 디버깅 / 분석 방법에 대한 단서가 없다.
Wouter

1

오라클 고객 지원 센터에 연락 한 후, 진행 상황을 파악할 수있었습니다. 이 서버에는 4 개의 네트워크 어댑터, 1 개의 어댑터가 네트워크에 연결되어 있고 3 개의 구성되지 않은 어댑터가 iSCSI 저장소에 연결되어 있습니다. 웹 클라이언트 또는 EM 서버 (여기서는 확실하지 않음)가 웹 페이지 요청을 잘못된 어댑터로 보내려고하면 문제가 발생한 것 같습니다.

동일한 문제에 직면 한 사람은 호스트 이름을 사용하여 URL을 찾은 다음 listener.log 파일 (-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener)을 확인하여이를 확인할 수 있습니다. 로그). 저에게 오류 메시지에 서버의 주 네트워크 어댑터 IP 주소와 다른 IP 주소가 표시되었습니다. 표시된 경우 iSCSI에 연결된 네트워크 어댑터 중 하나의 IP 주소입니다. 원래 게시물에서 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"로 이동하면 네 개의 네트워크 어댑터 모두의 IP 주소가 호스트 이름으로 표시되었습니다.

분명히 다른 호스트에서 웹 페이지를 탐색 할 때이 문제는 발생하지 않습니다. 또한 nslookup은 올바른 IP 주소 만 반환합니다. 따라서 이것은 DNS 문제가 아니라 로컬 문제인 것 같습니다. 네트워크 어댑터를 비활성화하면 최종 솔루션이 될 수 없기 때문에 이것이 문제에 대한 완전한 답은 아니라고 생각하지만 앞으로이 문제에 직면 한 사람은 이제 "계속 갈 것"입니다.

DNS 서버에서 반환 한 IP 주소와 웹 브라우저에서 사용하는 IP 주소 간의 불일치는 어디에서 발생합니까?

또한 최종 솔루션에 영향을 줄 수있는 몇 가지 추가 변경 사항을 만들었으므로 완벽 성을 기하기 위해 포함시킬 것입니다. 관련이 있는지 확실하지 않은 경우 ... :

  • 데이터베이스의 프로세스 매개 변수를 300에서 1000으로 증가
  • "(DISPATCHERS = 5)"를 추가하여 "dispatchers"매개 변수를 변경했습니다.

0

IP 주소를 사용해보십시오 :

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

이렇게하면 네트워크 카드를 IP에 바인딩해야합니다.


URL에 포트 번호를 추가해보십시오. 내 게시물에서 나는 http (s) : // ip-address / em을 시도했지만, 그것이 오타라고 생각하고 실제로 포트 번호로 시도했습니다. 기본 포트 (80) 전체에로드 될 것이라고 생각하지 않습니다. 어느 쪽이든, Oracle에서 SQL Server로 전환했으며 결코 뒤돌아 보지 않을 것이기 때문에 지금은 이것을 테스트 할 방법이 없습니다. 오라클은 거대한 환경을 제외하고는 아무 의미가 없습니다.
Wouter

0

Windows 2016에 Oracle 12.2.0.1을 설치 한 후 동일한 문제가 발생했습니다.

먼저 TCP / IPv6이 켜져 있다는 것을 알았습니다.

그런 다음 Oracle Note Number (Doc ID 1608258.1)-12c EM Express가 웹 브라우저에 유효하지 않은 인증서 오류를 표시합니다.

또한 작동하지 않았습니다.

나는 옛날 방식으로 고쳤다 ... :)

PC에 로그온하여 Oracle 12c를 설치하는 데 사용 된 Windows 사용자 Oracle_DBA가 "xdb_wallet"폴더 아래 2 개의 파일에 대한 권한이 없음을 발견했습니다.

그래서:

1- "xdb_wallet"폴더의 소유권을 Oracle_DBA에서 변경했습니다.

여기에 이미지 설명을 입력하십시오

2-는 "xdb_wallet"폴더에있는 2 개의 파일 (ewallet.p12, cwallet.sso)의 소유권을 Oracle_DBA에서 변경했습니다.

여기에 이미지 설명을 입력하십시오

3- 1 단계를 다시 수행하고 2 파일의 소유권이 변경되었는지 확인했습니다.

IE11 / Win2016에는 Flash Player 관련 문제가 있기 때문에 https : // hostname : 5500 / em 웹 사이트 는 FireFox에서 제대로 작동했습니다.

보안 관점에서 그 의미 (1-3 단계) 또는 이러한 변경으로 인해 어떤 위협이 발생할 수 있는지 알 수 없습니다.

알고 있다면 조언하십시오.


-1

/etc/hosts파일 에서 호스트 이름의 IP 주소 확인

예를 들어 다음은 내 호스트 파일입니다.

127.0.0.1       localhost
10.148.180.115  tom

tom내 호스트 이름이며 내 호스트 10.148.180.115의 IP 주소입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.