데이터베이스 연구실.log

SQL Developer와 관리 화면 (EM Express)

SQL Developer 접속과 DBA 패널, EM Express 포트와 접속 장애 점검 및 EM Cloud Control과의 차이

SQL DeveloperDBA 내비게이터EM ExpressDBMS_XDB_CONFIGGETHTTPSPORTEM Cloud ControlEM_EXPRESS_BASIC

#핵심 요약

SQL Developer는 개발자와 DBA용 무료 그래픽 도구임
Connections 패널은 접속 정보를 정의하고, DBA 패널은 DBA 권한 계정으로 관리 작업을 함

SQL Developer 접속 정의의 호스트, 포트, 서비스 이름은 SQL*Plus Easy Connect 문자열과 같은 정보임
PDB에는 SID가 아니라 서비스 이름으로 접속함

EM Express는 데이터베이스의 XML DB(XDB)에 내장된 웹 관리 화면임
별도 설치가 없고, 데이터베이스가 OPEN일 때만 쓸 수 있으며, 인스턴스를 시작하거나 RMAN 복구를 할 수는 없음

EM Cloud Control은 관리 서버(OMS), 에이전트, 리포지토리 데이터베이스를 따로 설치해 여러 대상을 중앙에서 관리함

#개념과 동작 원리

#SQL Developer

객체 탐색 트리, 결과 그리드, 코드 편집기를 갖춘 통합 개발 환경임

개발 작업: SQL과 PL/SQL 스크립트 작성과 실행, 객체 탐색, PL/SQL 편집과 디버깅

DBA 내비게이터 작업: 데이터베이스 시작과 종료, 초기화 파라미터와 UNDO 설정 확인, Data Pump, RMAN 백업과 복구, 리소스 매니저, 스케줄러, 감사와 프로필, 역할, 사용자, 아카이브 로그, 컨트롤 파일, 데이터 파일, 리두 로그, 테이블스페이스

DBA 패널에 등록한 접속의 사용자는 그 작업에 필요한 권한을 가져야 함
권한 없는 계정을 등록한다고 관리 작업이 되지는 않음

실습의 주의: 화면 조작 뒤에서 실제로 어떤 SQL과 PL/SQL이 실행되는지 의식해야 GUI가 없는 서버에서도 같은 작업을 SQL*Plus로 재현할 수 있음

#EM Express와 Cloud Control

구분 EM Express EM Cloud Control
설치 데이터베이스에 내장(XDB 기반) OMS, 에이전트, 리포지토리 데이터베이스 별도 설치
기본 포트 5500 7803(콘솔), 4903(업로드)
관리 범위 해당 CDB와 그 PDB들(시드 제외) 여러 데이터베이스, Oracle 미들웨어, Engineered Systems
사용 조건 데이터베이스가 OPEN 에이전트가 외부에서 감시하므로 대상이 닫혀 있어도 상태 감시 가능
기타 DBCA로 만들면 기본으로 구성됨 My Oracle Support와 연동

EM Express로 되는 것: 성능 모니터링, 대기 이벤트 확인, 구성과 초기화 파라미터 관리, 사용자와 권한 관리, 저장 영역 관리, SQL 튜닝 어드바이저 실행

EM Express로 안 되는 것: 인스턴스 시작, 백업과 복구, ARCHIVELOG 모드 전환, 여러 데이터베이스 중앙 관리

포트는 호스트 단위로 점유함
다른 호스트끼리는 같은 포트를 써도 되지만, 같은 호스트의 여러 데이터베이스는 같은 포트를 쓸 수 없음

실습 구조 설명: 브라우저 요청을 EM Express 서블릿이 받아 인증, 세션 관리, 압축, 캐싱을 처리하고, 리포트는 공통 리포팅 프레임워크로, 파일 작업은 파일 매니저로 넘김

실습 기록: 19c EM Express 로그인 화면에는 12c의 as sysdba 체크박스가 없고, SYS로 로그인하면 내부적으로 SYSDBA로 처리됨
Container Name 칸이 보이면 글로벌 포트가 켜진 상태임

#필수 명령어 또는 SQL

#SQL Developer 접속 정의 항목

항목 일반 사용자 접속 SYS 접속
Username <USERNAME> sys
Role 기본값 반드시 SYSDBA(기본값이면 SYS 접속 실패)
Connection Type Basic Basic
Hostname / Port <HOST> / <PORT> 같음
Service name <SERVICE_NAME>(SID가 아니라 서비스 이름 선택) 같음

실습에서는 DBA 내비게이터의 Instance 항목에 보이는 가동 시간이 아래 조회 결과와 같은지 비교하게 했음
GUI가 같은 SQL을 대신 실행해 보여 줄 뿐이라는 것을 확인하는 실습임

SQL*Plus (SYSDBA)조회만 함
SELECT instance_name, status,
       TO_CHAR(startup_time, 'YYYY-MM-DD HH24:MI:SS') AS startup_time
  FROM v$instance;

결과 해석: 개별 실행 출력은 기재 없음

#EM Express 포트 확인과 설정

SQL*Plus (SYSDBA)조회만 함
SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() AS https_port,
       DBMS_XDB_CONFIG.GETHTTPPORT()  AS http_port
  FROM dual;

결과 해석:

해석: HTTPS 포트가 0이면 설정되지 않은 상태임(DBCA에서 EM Express 구성을 건너뛴 경우가 흔함)
HTTP 포트 0은 정상 기본값임
이 함수는 현재 컨테이너의 포트만 돌려주므로 CDB 루트와 각 PDB에서 따로 확인함
시드 PDB는 읽기 전용이라 확인할 필요가 없음

SQL*Plus (SYSDBA)객체 또는 설정을 변경함
EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);

결과 해석:

접속 주소는 https://<HOST>:5500/em임
실습에서는 HTTP 포트(SETHTTPPORT)를 열면 SYS 비밀번호가 평문으로 전송되므로 폐쇄망 실습에서만 임시로 쓰고 운영에서는 쓰지 말라고 적었음
12.2부터는 DBMS_XDB가 아니라 DBMS_XDB_CONFIG를 쓴다고 적었음

#접속이 안 될 때 점검 순서

SQL*Plus (SYSDBA)조회만 함
SELECT comp_id, comp_name, status, version FROM dba_registry WHERE comp_id = 'XDB';
SHOW PARAMETER dispatchers
OS 셸 (oracle 사용자)조회만 함
lsnrctl status | grep -i xdb
ss -tlnp | grep 550
OS 셸 (root)객체 또는 설정을 변경함
firewall-cmd --permanent --add-port=5500/tcp
firewall-cmd --reload
firewall-cmd --list-ports

결과 해석:

  1. XDB 구성 요소 상태가 VALID여야 함
  2. DISPATCHERS에 (PROTOCOL=TCP) (SERVICE=<SID>XDB) 형태가 있어야 함
    없으면 ALTER SYSTEM SET dispatchers=...로 설정함
  3. 리스너에 XDB 서비스가 보여야 함
    없으면 ALTER SYSTEM REGISTER로 다시 등록함
  4. 운영체제에서 포트가 LISTEN 상태여야 함
  5. 방화벽(실습에서 가장 흔한 원인)과 VM 포트 포워딩, 클라우드 인바운드 규칙을 엶
  6. 반드시 https로 접속함
    자체 서명 인증서 경고는 정상임

#일반 계정에 EM Express 권한 주기

SQL*Plus (SYSDBA)객체 또는 설정을 변경함
GRANT EM_EXPRESS_BASIC TO <USERNAME>;   -- 조회
GRANT EM_EXPRESS_ALL   TO <USERNAME>;   -- 관리 작업까지

결과 해석:

실습에서는 추가로 CONNECT 역할이 있어야 로그인할 수 있다고 적었음

#사용 조건과 주의사항

DBCA 부분(대화형과 사일런트 모드, 템플릿)은 DBCA와 데이터베이스 생성과 DBCA 템플릿과 생성 스크립트에 있음

실습 2.4의 OCP 해설은 원문에 파라미터 이름이 REKOTE_LOGIN_PASSMOREFILE로 잘못 적혀 있다고 스스로 밝혔음
인증은 사용자, 스키마, 인증에 있음

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기