[Oracle] 프로세서의 구조 1

·2025년 8월 21일

오라클 관리

목록 보기
19/163


이론1. 🔸 오라클 프로세서 3가지

- 오라클 프로세서의 종류 3가지 

1. 유져 프로세서 :  클라이언트 쪽에서 작동하는 프로세서 

   예:   클라이언트 ------------------------------>  서버(오라클 db)
             ↓                                         ↓
        유져 프로세서 ----------- SQL ---------->  서버프로세서 

2. 데이터 베이스 프로세서:    
     1) 서버 프로세서 : 유져 프로세서가 건네준 SQL을 처리하는 프로세서
                                                                    

     2) 백그라운드 프로세서 :  오라클 DB를 운영하는 프로세서


     3) 응용 프로그램 프로세서 :  리스너와 같이 오라클을 운영하기 위해서 필요한 프로세서

실습1. 오라클 백그라운드 프로세서들을 확인하세요

select *
 from v$bgprocess;

💡 백그라운드 프로세서들이 오라클 db를 운영하고 있음


실습2. 서버 프로세서를 확인하시오

select *
 from v$process
 where pname is null; 

scott 으로 접속해서 다음과 같이 emp 를 조회하고 다시 위의 쿼리를 실행하세요.


실습3. 응용 프로그램 프로세서인 리스너를 확인하시오

[oracle@ora19c ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 21-8-2025 10:04:45

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.13.81)(PORT=1521)))에 연결되었습니다
리스너의 상태
------------------------
별칭                     LISTENER
버전                     TNSLSNR for Linux: Version 19.0.0.0.0 - Production
시작 날짜                 21-8-2025 09:58:15
업타임                   00 시간. 6. 30 초
트레이스 수준            off
보안                     ON: Local OS Authentication
SNMP                     OFF리스너 매개변수 파일   /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
리스너 로그 파일         /u01/app/oracle/diag/tnslsnr/ora19c/listener/alert/log.xml
끝점 요약 청취 중...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.13.81)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ora19c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/ORA19/xdb_wallet))(Presentation=HTTP)(Session=RAW))
서비스 요약...
"ORA19" 서비스는 1개의 인스턴스를 가집니다.
  "ORA19" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"ORA19XDB" 서비스는 1개의 인스턴스를 가집니다.
  "ORA19" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다

문제1. (dba 작업을 편하게 하는 팁) dba.sh 스크립트에 오라클을 시작 시키고 리스너를 시작 시키는 스크립트를 추가하시오

[oracle@ora19c ~]$ vi startup.sql
[oracle@ora19c ~]$
[oracle@ora19c ~]$ cat startup.sql
startup

exit;

[oracle@ora19c ~]$ vi dba.sh
#!/bin/bash

echo -e "
           dba 작업을 자동화하는 쉘 스크립트
"
echo -e " ================================= "
echo "                                       "
echo "[1] DB에서 발생한 TX 락을 확인하려면 1번을 누르세요.
[2] DB에서 발생한 악성 SQL을 확인하려면 2번을 누르세요
[3] TOP명령어로 확인한 프로세서 번호로 해당 세션의 정보를 확인하고 싶으면 3번을 누르세요
[4] sys 유져로 접속해서 db를 startup 하려면 4번을 누르세요"
echo "                                "
echo -n "원하는 작업번호를 누르세요 "
read aa
echo "                                "
case $aa in
    1) sqlplus -s system/oracle_4U @/home/oracle/lock.sql ;;
    2) sqlplus -s system/oracle_4U @/home/oracle/bad.sql ;;
    3) sqlplus -s system/oracle_4U @/home/oracle/spid.sql ;;
    4) sqlplus -s sys/oracle_4U as sysdba @/home/oracle/startup.sql ;; 
esac
echo "
~

문제2. 리스너를 시작 시키는 명령어를 dba.sh 에 마지막 번호에 넣으시오

[oracle@ora19c ~]$ vi dba.sh
#!/bin/bash

echo -e "
           dba 작업을 자동화하는 쉘 스크립트
"
echo -e " ================================= "
echo "                                       "
echo "[1] DB에서 발생한 TX 락을 확인하려면 1번을 누르세요.
[2] DB에서 발생한 악성 SQL을 확인하려면 2번을 누르세요
[3] TOP명령어로 확인한 프로세서 번호로 해당 세션의 정보를 확인하고 싶으면 3번을 누르세요
[4] sys 유져로 접속해서 db를 startup 하려면 4번을 누르세요
[5] 리스너를 시작 시키려면 5번을 누르세요"
echo "                                "
echo -n "원하는 작업번호를 누르세요 "
read aa
echo "                                "
case $aa in
    1) sqlplus -s system/oracle_4U @/home/oracle/lock.sql ;;
    2) sqlplus -s system/oracle_4U @/home/oracle/bad.sql ;;
    3) sqlplus -s system/oracle_4U @/home/oracle/spid.sql ;;
    4) sqlplus -s sys/oracle_4U as sysdba @/home/oracle/startup.sql ;; 
    5) lsnrctl start ;; 
esac
echo "                                         "

0개의 댓글