ไม่โหลดหน้าเว็บ Oracle 12c Express Enterprise Manager


13

สรุปปัญหา

เมื่อเรียกดูหน้าเว็บ Oracle 12c EM Express หน้าจะหมดเวลาเมื่อใช้ URL เช่น:

  • http (s): // hostname: 5500 / em
  • http (s): //hostname.domain: 5500 / em

เมื่อใช้ url ที่มีที่อยู่ IP หรือ localhost หน้าเว็บจะโหลด แต่ช้ามาก (มากถึง 5 นาที)

  • http (s): // ที่อยู่ IP / 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

ปัญหานี้ปรากฏขึ้นทั่วเว็บ (ดูข้อมูลอ้างอิงในส่วนท้าย) และดูเหมือนว่าไม่มีใครสามารถหาสาเหตุของสิ่งนี้ได้ ฉันได้ลอง - ข้อเสนอแนะ - ฉันสามารถค้นหาและแสดงรายการผลลัพธ์ด้านล่าง ฉันจะปล่อยให้ชุมชนที่ยอดเยี่ยมมีรอยแตกจากนั้นก็ปิดการสนับสนุน Oracle ...

ข้อมูลแพลตฟอร์ม

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • ฐานข้อมูลคอนเทนเนอร์ที่หลากหลาย (CDB) ที่มีฐานข้อมูล Pluggable สองฐาน (PDB)
  • ไม่ได้ใช้การจัดการที่เก็บข้อมูลอัตโนมัติ (ASM)
  • ทำการทดสอบแบบโลคัลบนเซิร์ฟเวอร์โดยปิดใช้งานไฟร์วอลล์อย่างสมบูรณ์

ทำการทดสอบแล้ว

emctl
ผู้คนจำนวนมากจะแนะนำให้ตรวจสอบ "emctl" ออกมาจากนิสัย ไม่มีอยู่สำหรับ 12c เนื่องจากใช้ EM Express ไม่ใช่การควบคุมฐานข้อมูล

http / https
ฉันได้ตั้งค่าและทดสอบสิ่งนี้สำหรับ http และ https ไม่แตกต่าง.

เบราว์เซอร์
ฉันได้ทดสอบสิ่งนี้ในการติดตั้งวานิลลาของ IE 11, chrome และ firefox ไม่ได้เปิดใช้งานส่วนเสริม

การเข้าถึงฐานข้อมูล
สามารถเข้าถึงและสืบค้นทั้ง CDB และ PDB ผ่านทาง SQLPlus

Telnet การ
เปิดการเชื่อมต่อ telnet ไปยังพอร์ต (เช่น 5500) ใช้งานได้

บันทึก
การแจ้งเตือนบันทึกการแจ้งเตือนของ Oracle ไม่มีข้อความแสดงข้อผิดพลาดใด ๆ

สมมติฐานของฉัน

  • สิ่งที่เกี่ยวข้องกับการค้นหาชื่อโฮสต์เนื่องจากใช้งานได้ -slighty- เมื่อใช้ที่อยู่ 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"

    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 (ตัดแต่งยังมีการตั้งค่าอื่น ๆ ... )

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 hosts
(ไฟล์นี้ว่างเปล่า)

ตัวแปรสภาพแวดล้อม

  • 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 / หมดเวลา
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) tnsping tnsalias

แก้ไข:

โปรแกรมเลือกจ่ายงาน D000 แสดงการเชื่อมต่อ 21 รายการที่ถูกปฏิเสธคุณมีปัญหาเครือข่าย

ลองรีสตาร์ทเครื่องรับฟังและเชื่อมต่อกับ em express และดูผลลัพธ์ของบริการ lsnrctl ที่ปฏิเสธว่าการเชื่อมต่อควรเป็นศูนย์


ฉันใช้การทดสอบทั้งหมดในโฮสต์ db ส่ง Ping ชื่อโฮสต์และ ipaddress และ tnsping ไปยัง CDB และ PDB ทำงานได้ดี จับได้ดีเกี่ยวกับการเชื่อมต่อที่ถูกปฏิเสธ! ฉันรีสตาร์ทผู้ฟังและใช้ชื่อโฮสต์ - EM-URL: ปัญหาเดียวกัน "ไม่มีหน้าเว็บ" และ lsnerctl ไม่แสดงรายการใด ๆ สำหรับ XDB เมื่อใช้ ip-EM-URL EM จะโหลด (ช้า) และฉันได้รับรายการ XDB แต่ไม่มีการเชื่อมต่อที่ถูกปฏิเสธ ฉันไม่รู้ว่าจะทำอย่างไร แต่อาจเป็นเช่นนั้นกับคุณ?
Wouter

1
เอาต์พุตของสองคำสั่งจาก container db คืออะไร เลือก UTL_INADDR.get_host_address จากคู่; เลือก UTL_INADDR.get_host_name จากคู่;

host_address ส่งคืนที่อยู่ ipv6 โฮสต์ส่งคืนชื่อโฮสต์เป็นตัวพิมพ์ใหญ่โดยไม่ต้องต่อโดเมน ฉันได้เรียกใช้รายงาน RDA แล้วและนั่นแสดงว่า "การค้นหา DNS - ล้มเหลว" นอกจากนี้การควบคุมคลาวด์ล้มเหลวในการติดตั้งเมื่อใช้ชื่อโฮสต์ แต่ทำงานได้เมื่อใช้ที่อยู่ IP ตอนนี้ฉันมั่นใจว่านี่เป็นปัญหา DNS บางอย่างฉันแค่ไม่รู้วิธีแก้ปัญหา / วิเคราะห์ ...
Wouter

1

หลังจากติดต่อฝ่ายสนับสนุนของ Oracle ฉัน -kinda- สามารถทราบได้ว่าเกิดอะไรขึ้น เซิร์ฟเวอร์นี้มีอะแดปเตอร์เครือข่าย 4 ตัวอะแดปเตอร์ 1 ตัวที่เชื่อมต่อกับเครือข่ายและอะแดปเตอร์ที่ไม่ได้กำหนดค่า 3 ตัวที่เชื่อมต่อกับที่เก็บข้อมูล iSCSI ดูเหมือนว่าปัญหาเกิดจากเว็บไคลเอนต์หรือเซิร์ฟเวอร์ EM (ไม่แน่ใจที่นี่) พยายามส่งคำขอเว็บเพจไปยังอะแดปเตอร์ผิด

สำหรับทุกคนที่ประสบปัญหาเดียวกันคุณสามารถตรวจสอบสิ่งนี้ได้โดยการเรียกดู URL (โดยใช้ชื่อโฮสต์โดเมน) จากนั้นตรวจสอบไฟล์ listener.log (-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener log) สำหรับฉันในข้อความข้อผิดพลาดที่อยู่ 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 เป็น 1,000
  • แก้ไขพารามิเตอร์ "ผู้มอบหมายงาน" โดยเพิ่ม "(DISPATCHERS = 5)"

0

ลองใช้ที่อยู่ IP:

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

วิธีนี้คุณจะต้องแน่ใจว่าได้กดการ์ดเครือข่ายเข้ากับไอพี


ฉันคิดว่าคุณหมายถึงลองเพิ่มหมายเลขพอร์ตไปยัง 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- เปลี่ยนความเป็นเจ้าของของ 2 ไฟล์ (ewallet.p12, cwallet.sso) ภายใต้โฟลเดอร์ "xdb_wallet" จากสิ่งที่มันเป็น Oracle_DBA:

ป้อนคำอธิบายรูปภาพที่นี่

3- ฉันทำขั้นตอนที่ 1 อีกครั้งและตรวจสอบว่าการเปลี่ยนแปลงความเป็นเจ้าของสำหรับ 2 ไฟล์

เว็บไซต์ https: // hostname: 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 สำหรับโฮสต์ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.