1. 해싱(Hashing)의 개요

 1-1. 해싱(Hashing)의 정의

   - 자료검색을 위해 해시 함수를 활용하여 키값을 해당 항목의 정보로 직접 바꿔서 검색하는 방법.

   - 해싱함수: 임의의 길이를 가지는 메시지를 고정된 길이의 출력값으로 바꿔주는 함수

 

 1-2. 해싱(Hashing)의 특징

   - 고속성 키 값에 해당하는 주소로 직접 접근하므로 고속 처리 가능

   - 사상함수 “<키 값 → 주소>” 사상함수(Mapping Function)의 접근으로 레코드 검색

   - 단방향성 출력된 값을 역으로 추적이 불가능

 

2. 해싱(Hashing)의 개념도, 구성요소

 2-1.  해싱(Hashing)의 개념도

 

 2-2. 해싱(Hashing)의 구성요소

   1) 해싱함수 – 해시 테이블의 주소를 생성해 내는 함수(수식 계산법)

   2) 해쉬테이블 – 해시함수에 의해 참조되는 테이블

   3) 버킷 – 하나의 주소를 갖는 파일의 한구역

   4) 슬롯 – n 개의 슬롯이 모여서 버킷을 형성

   5) 동거자(synonym) – 같은 주소를 갖는 레코드들의 집합

  6) 충돌(Collision) – 서로 다른 2개이상의 레코드가 같은 주소를 갖는 현상

  7) 오버플로우(Overflow) – 버킷내의 슬롯공간(기억공간)이 없는 현상

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

1. 회복기법(Recovery) 개요

 1-1. 데이터 회복(Recovery)의 정의

   - 데이터베이스 운영 도중 예기치 못한 장애(Failure)가 발생할 경우 데이터베이스를 장애 발생 이전의 일관된 상태로 복원시키는 것

 

 1-2. 데이터 회복(Recovery)의 유형

  1) 트랜잭션 장애
    - 내용: 트랜잭션 간 상호 실행 순서/결과 등에 의한 오류
    - 논리적 오류: 내부적인 오류로 트랜잭션을 완료할 수 없음.
    - 시스템 오류: Deadlock 등의 오류 조건으로 활성 트랜잭션을 강제로 종료
  2) 시스템 장애
    - 내용: 전원, 하드웨어, 소프트웨어 등의 고장
    - 조치: 시스템 장애로 인해 저장 내용이 영향 받지 않도록 무결성 check
  3) 디스크 장애
    - 내용: 디스크 스토리지의 일부 또는 전체가 붕괴되는 경우
    - 조치: 가장 최근의 덤프/로그를 이용 덤프 이후 완결 트랜잭션 재실행(REDO)
  4) 사용자 장애
    - 사용자들의 데이터베이스에 대한 이해 부족으로 발생
    - DBA 가 데이터베이스 관리를 하다가 발생시키는 실수

 

2. 회복기법(Recovery)의 개념도, 기법 상세

 2-1. 회복기법(Recovery)의 개념도

 2-2. 회복기법(Recovery)의 기법상세

   1) 지연 갱신기법 (Differed Update)
    - 트랜잭션이 부분완료 상태에 이르기 전까지 발생한 모든 변경 사항을 로그 파일에만 저장하고, 데이터베이스에 저장하는 것을 지연시키는 방법


   2) 즉시 갱신기법 (Immediate Update)
    - 트랜잭션이 수행도중 발생하는 변경 내용을 즉시 데이터베이스에 반영하는 방법이며, 갱신 정보는 로그 파일에도 저장


   3) Check Point 회복기법
    - 트랜잭션 수행 중 발생하는 변경 내용을 로그 파일에 기록하고, 일정기간 단위(Checkpoint)로 다음 작업을 수행


   4) 그림자 페이징 (Check Point)
    - 트랜잭션이 실행되는 동안 두 개의 페이지 테이블을 이용하는 회복기법


   5) 미디어 회복기법 (Media Recovery)
    - 데이터베이스 내용을 주기적으로 안전한 저장 장치에 덤프
    - 디스크 장애 발생시 최근의 덤프 내용을 디스크 적재, 로그를 이용하여 가장 최근 덤프 이후 완료된 트랜잭션에 대해 Redo 수행

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

1. 트랜잭션(Transaction)의 개요

 1-1. 트랜잭션(Transaction)의 정의

  - 한 번에 수행되어야 할 데이터베이스의 일련의 Read와 Write 연산을 수행하는 단위 (Logical Unit of Work)

 

 1-2. 트랜잭션(Transaction)의 특징

   1) Atomicity (원자성) : 분해가 불가능한 최소 단위

   2) Consistency (일관성) : 트랜잭션이 실행 성공 후 항상 모순 없이 일관성 있는 DB 상태 보존

   3) Isolation (고립성) : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션 접근 불가

   4) Durability (영속성) : 성공이 완료된 트랜잭션의 결과는 영구(속)적으로 데이터베이스에 저장됨

 

2. 트랜잭션(Transaction)의 개념도, 상태변화

 2-1. 트랜잭션(Transaction)의 개념도

 

 2-2. 트랜잭션(Transaction)의 상태변화

  1) 활동 - 트랜잭션이 시작되어 연산들이 정상적으로 실행 중인 상태(Active State)  
  2) 부분완료 - 트랜잭션에 정의된 모든 연산의 실행이 끝난 상태(Partially Committed)
  3) 완료 - 트랜잭션의 성공적 종료 상태(Committed State)
  4) 실패 - 트랜잭션이 완료되지 못하고 더 이상 실행되지 못하는 상태(Failed State)
  5) 철회 - 트랜잭션이 실패한 후 실행되기 이전으로 복귀된 상태 (Aborted State)

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

1. 데이타무결성(integrity)의 개요

 1-1. 데이타무결성(integrity)의 정의

  - 데이터의 정확성, 유효성, 일관성, 신뢰성을 위해 무효갱신으로부터 데이터를 보호하는 개념

  - 데이터의 정확성과 일관성이 보장된 상태를 의미함

 

 1-2. 데이타무결성(integrity)의 필요성

  - 데이터의 정확성 확보로 신뢰할 수 있는 정보 제공
  - 데이터의 일관성 유지로 자료의 효율적 관리

 

2. 데이타무결성(integrity)의 개념도, 종류

 2-1. 데이타무결성(integrity)의 개념도

 

 2-2. 데이타무결성(integrity)의 종류

  1) 개체 무결성 (Entity)
   - 릴레이션의 기본키 속성은 절대 널값(Null Value)을 가질 수 없음
   - 기본키는 유일성을 보장해주는 최소한의 집합이어야 함
   - Primary Key , Unique index

 

  2) 참조 무결성 (Referential)
    - 외래키 값은 그 외래키가 기본키로 사용된 릴레이션의 기본키 값이거나 널(Null) 값이어야 함
    - 릴레이션의 외래키 속성은 참조할 수 없는 값을 가질 수
    - Foreign Key

 

  3) 속성(도메인) 무결성 (domain)
    - 릴레이션의 각 속성값들은 그 속성이 정의된 도메인에 속한 값이어야 함
    - 데이터의 속성, 기본값, Null 여부에 대한 제한
    - Check Constraints, Null/Not Null, Default, Rule

 

  4) 사용자 정의 무결성
    - 사용자의 비즈니스 요구에 따른 의미적 제한을 준수
    - 업무규칙 및 프로세스에 대한 데이터 규칙
    - Trigger, User Define Data Type

 

  5) 키 무결성 Key Integrity
    - 한 릴레이션에 같은 키 값을 가진 튜플들은 허용 안됨 (중복 배제)
    - Primary Key, Unique index

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

 매년 이맘쯤에 독감이 유행하면서 전국에 있는 유치원과 어린이집에 1명만 독감이 결리면 모두가 걸리는 현상이 빈번하게 발생되는 시즌이다. 면역이 약한 아이들은 사전의 예방접종은 필수이며 받아야하는 예방접종도 다양하다.

 물론 성인들도 예외는 될수는 없는데, 성인이라고 해도 자신이 어떠한 예방 접종을 맞아야하며 사전에 준비를 해야하는지 정확히 아는 사람은 거의 없는 것 같다. 병에 걸리면 그때서야 치료하려하거나 어떠한 예방접종들이 있는지에 대한 인식과 지식이 부족하다.

 이에 질병관리본부에서는 예방접종도우미 사이트를 통하여 예방접종에 대한 지식과 국가예방접종관련 다양한 서비스들을 지원하고 있다. IT를 통하여 다수에 사람들에게 예방접종에 대한 인식의 개선과 건강증진을 위한 노력을 하고 있다.

 

https://nip.cdc.go.kr/irgd/index.html

 자주 사용하는 몇개의 서비스를 소개하려한다.

1. 본인/자녀 예방접종관리

    - 본인보다는 자녀의 예방접종관리 페이지를 솔직히 더 많이 보게 되는 것 같다. 예방접종한 내역을 모두 기억하기 힘들기 때문에 해당 사이트를 통하여 확인할수 있다. (로그인필요)

    - 본인과/자녀의 정보를 등록해 두면 지정의료기관과 연동되어 정보가 기록되어 편하다.

2. 예방접종별 정보

     - 결핵, B형간엽, 홍역, 수두, 인플루엔자등에 대한 예방접종별 정보가 깔끔하게 작성되어 있어 누구든 이해하기 쉽게 지식을 쌓을 수 있다.

     - 전파, 증상, 치료방법, 예방방법으로 나누어 자료가 작성되어 있어 사전에 예방하거나 질병에 결렸을때의 대처방법도 어느정도 확인할수 있다.

 

3) 국가 예방접종 사업

     - 국가에서는 다양한 예방접종 사업을 진행하며, 비싼 의료비를 무료 또는 의료지 지원, 할인등 합리적인 금액으로 예방접종을 받을 수 있는 소개 페이지가 존재한다.

     - 현재 진행하고 있는 예방접종 사업을 한눈에 확인할 수 있으며 때를 맞추어 참여할 수 있도록 소개하고 있다.  

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

1. v$active_session_history 기준, Session 조회


set pagesize 300
set lines 200
set echo off
set feedback off
set timing off
set verify off
col spid format a8
col no format 99
col sid format 99999
col sql_id format a13
col stime format a15
col serial# format 9999999
col event format a25
col module format a12
col command format a6
col waiting_on format a50
col block format 99999
col TIME for 9999.99
col s for a1

prompt *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
prompt *                                    < Active Session History  >                                    *
ACCEPT begin_time CHAR PROMPT "Enter the begin_time(YYYYMMDD/HH24/MI, default : 1 hour before) : "
ACCEPT end_time CHAR PROMPT   "Enter the end_time  (YYYYMMDD/HH24/MI, default :  current time) : "
select session_id sid,
       to_char(SAMPLE_TIME, 'YYMMDD HH24:MI:SS') STIME,
       SQL_ID,
       decode(SQL_OPCODE, '0', 'NO', '1', 'Create Tab', '2', 'Insert', '3', 'Select', '6', 'Update', '7'

, 'Delete', '9', 'Create Idx', '10', 'Drop Idx', '15', 'Alter Tbl', '24', 'Create Proc', '32', 'Create Link', '33'

, 'Drop Link', '36', 'Create RBS', '37', 'Alter RBS', '38', 'Drop RBS', '40', 'Alter TBS', '41', 'Drop TBS'

, '42', 'Alter Sess', '45', 'Rollback', '47', 'PL/SQL', '62', 'Anal Table', '63', 'Anal Index', '85', 'Truncate') Command,
       substr(module, 1, 12) module,
       decode(WAIT_TIME, 0, 'W', 'R') s,
       TIME_WAITED/10000 TIME,
       blocking_session block,
       rtrim(event)||': '||(SELECT OBJECT_NAME
        FROM   DBA_OBJECTS
        WHERE  OBJECT_ID = CURRENT_OBJ#) as waiting_on
from   v$active_session_history
where  sample_time between nvl(to_timestamp('&begin_time', 'YYYYMMDD/HH24/MI'), sysdate-2/24) and nvl(to_timestamp('&end_time', 'YYYYMMDD/HH24/MI'), sysdate)
and    event not like '%pmon timer%'
and    event not like '%rdbms ipc%'
and    event not like '%smon timer%'
and    event not like '%SQL*Net message%'
and    event not like '%lock manager wait for%'
and    event not like '%slave wait%'
and    event not like '%io done%'
and    event not like '%queue messages%'
and    event not like '%wakeup time%'
order by STIME, sid;
prompt *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
exit

 

2. v$session기준, Session 조회

set lines 300
set pages 700
set echo off
set feedback off
set verify off
set pause off
set timing off
col username format a10
col sid format 9999
col serial# format 999999
col spid format a8
col osuser format a8
col status format a8
col machine format a9
col module format a15
col command format a6
col program format a9
col event format a23
col l_read format 999999999
col s_ratio format 999
col time for 9999
col sql_id for a13
col hash_value for 9999999999
select /*+ ordered */ s.username, s.sid, s.serial#, p.spid, substr(s.osuser,1,8) osuser, 
case 
when s.command=1                then 'CREATE TABLE'
when s.command=2                then 'INSERT'
when s.command=3                then 'SELECT'
when s.command=6                then 'UPDATE'
when s.command=7                then 'DELETE'
when s.command=9                then 'CREATE INDEX'
when s.command=10               then 'DROP INDEX'
when s.command=11               then 'ALTER INDEX'
when s.command=12               then 'DROP TABLE'
when s.command=13               then 'CREATE SEQUENCE'
when s.command=14               then 'ALTER SEQUENCE'
when s.command=15               then 'ALTER TABLE'
when s.command=16               then 'DROP SEQUENCE'
when s.command=22               then 'DROP VIEW'
when s.command=24               then 'CREATE PROCEDURE'
when s.command=25               then 'ALTER PROCEDURE'
when s.command=28               then 'RENAME'
when s.command=39               then 'CREATE TABLESPACE'
when s.command=40               then 'ALTER TABLESPACE'
when s.command=41               then 'DROP TABLESPACE'
when s.command=42               then 'ALTER SESSION'
when s.command=44               then 'COMMIT'
when s.command=45               then 'ROLLBACK'
when s.command=46               then 'SAVEPOINT'
when s.command=47               then 'PL/SQL'
when s.command=48               then 'SET TRANSACTION'
when s.command=49               then 'ALTER SYSTEM'
when s.command=50               then 'EXPLAIN'
when s.command=62               then 'ANALYZE TABLE'
when s.command=63               then 'ANALYZE INDEX'
when s.command=64               then 'ANALYZE CLUSTER'
when s.command=71               then 'CREATE MATERIALIZED VIEW LOG'
when s.command=72               then 'ALTER MATERIALIZED VIEW LOG'
when s.command=73               then 'DROP MATERIALIZED VIEW LOG'
when s.command=74               then 'CREATE MATERIALIZED VIEW'
when s.command=75               then 'ALTER MATERIALIZED VIEW'
when s.command=76               then 'DROP MATERIALIZED VIEW'
when s.command=85               then 'TRUNCATE TABLE'
when s.command=86               then 'TRUNCATE CLUSTER'
when s.command=91               then 'CREATE FUNCTION'
when s.command=92               then 'ALTER FUNCTION'
when s.command=93               then 'DROP FUNCTION'
when s.command=94               then 'CREATE PACKAGE'
when s.command=95               then 'ALTER PACKAGE'
when s.command=96               then 'DROP PACKAGE'
when s.command=97               then 'CREATE PACKAGE BODY'
when s.command=98               then 'ALTER PACKAGE BODY'
when s.command=99               then 'DROP PACKAGE BODY'          
ELSE 'UNKWON' 
end command
,s.status, substr(s.event,1,23) event, 
si.consistent_gets + si.block_gets L_READ,
-- substr(s.machine,1,8) machine, 
substr(s.module,1,9) module,
s.last_call_et time,
s.sql_id
from v$session s, v$process p,  v$sess_io si
where s.paddr= p.addr and s.status <> 'INACTIVE' 
      and s.sid=si.sid(+) 
      and s.type <> 'BACKGROUND' 
      and s.event not like 'jobq slave wait%'
      and s.event not like 'single-task message%'
      and s.event not like 'Streams AQ%'
      and s.event not like 'pipe get%'
      and s.event not like 'wakeup time manager%'
      and s.event not like 'rdbms ipc message%'
      and s.event not like 'queue messages%'      
order by s.username asc, s.sid, s.serial# ;

 

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

 SELECT sysmetric_history.sample_time,

         cpu / 60 AS cpu,

         bcpu / 60 AS bcpu,

         DECODE (SIGN ( (cpu + bcpu) / 60 - cpu_ora_consumed),

                 -1, 0,

                 ( (cpu + bcpu) / 60 - cpu_ora_consumed))

            AS cpu_ora_wait,

         scheduler / 60 AS scheduler,

         uio / 60 AS uio,

         sio / 60 AS sio,

         concurrency / 60 AS concurrency,

         application / 60 AS application,

         COMMIT / 60 AS COMMIT,

         configuration / 60 AS configuration,

         administrative / 60 AS administrative,

         network / 60 AS network,

         queueing / 60 AS queueing,

         clust / 60 AS clust,

         other / 60 AS other

    FROM (SELECT TRUNC (sample_time, 'MI') AS sample_time,

                 DECODE (

                    session_state,

                    'ON CPU', DECODE (session_type,

                                      'BACKGROUND', 'BCPU',

                                      'ON CPU'),

                    wait_class)

                    AS wait_class

            FROM v$active_session_history

           WHERE sample_time > TO_DATE ('201501120000', 'YYYYMMDDHH24MI') -- 일자 조정 필요

                 AND sample_time <= TRUNC (SYSDATE, 'MI'))               --ASH

                                                          PIVOT (COUNT (*)

                                                           FOR wait_class

                                                           IN  ('ON CPU' AS cpu,

                                                               'BCPU' AS bcpu,

                                                               'Scheduler' AS scheduler,

                                                               'User I/O' AS uio,

                                                               'System I/O' AS sio,

                                                               'Concurrency' AS concurrency,

                                                               'Application' AS application,

                                                               'Commit' AS COMMIT,

                                                               'Configuration' AS configuration,

                                                               'Administrative' AS administrative,

                                                               'Network' AS network,

                                                               'Queueing' AS queueing,

                                                               'Cluster' AS clust,

                                                               'Other' AS other)) ash,

         (SELECT TRUNC (begin_time, 'MI') AS sample_time,

                 VALUE / 100 AS cpu_ora_consumed

            FROM v$sysmetric_history              -- 해당 최대 BEGIN_TIME까지만 조회 가능

           WHERE GROUP_ID = 2 AND metric_name = 'CPU Usage Per Sec') sysmetric_history

   WHERE ash.sample_time(+) = sysmetric_history.sample_time

ORDER BY sample_time;

 

/* Formatted on 2015-02-25 15:29:21 (QP5 v5.163.1008.3004) */

-- v$active_session_history,v$sysmetric_history

-- With CPU wait

-- With Oracle pre 11g

  SELECT sysmetric_history.sample_time,

         cpu,

         bcpu,

         DECODE (SIGN ( (cpu + bcpu) - cpu_ora_consumed),

                 -1, 0,

                 ( (cpu + bcpu) - cpu_ora_consumed))

            AS cpu_ora_wait,

         scheduler,

         uio,

         sio,

         concurrency,

         application,

         COMMIT,

         configuration,

         administrative,

         network,

         queueing,

         clust,

         other

    FROM (  SELECT TRUNC (sample_time, 'MI') AS sample_time,

                   SUM (

                      DECODE (

                         session_state,

                         'ON CPU', DECODE (session_type, 'BACKGROUND', 0, 1),

                         0))

                   / 60

                      AS cpu,

                   SUM (

                      DECODE (

                         session_state,

                         'ON CPU', DECODE (session_type, 'BACKGROUND', 1, 0),

                         0))

                   / 60

                      AS bcpu,

                   SUM (DECODE (wait_class, 'Scheduler', 1, 0)) / 60 AS scheduler,

                   SUM (DECODE (wait_class, 'User I/O', 1, 0)) / 60 AS uio,

                   SUM (DECODE (wait_class, 'System I/O', 1, 0)) / 60 AS sio,

                   SUM (DECODE (wait_class, 'Concurrency', 1, 0)) / 60

                      AS concurrency,

                   SUM (DECODE (wait_class, 'Application', 1, 0)) / 60

                      AS application,

                   SUM (DECODE (wait_class, 'Commit', 1, 0)) / 60 AS COMMIT,

                   SUM (DECODE (wait_class, 'Configuration', 1, 0)) / 60

                      AS configuration,

                   SUM (DECODE (wait_class, 'Administrative', 1, 0)) / 60

                      AS administrative,

                   SUM (DECODE (wait_class, 'Network', 1, 0)) / 60 AS network,

                   SUM (DECODE (wait_class, 'Queueing', 1, 0)) / 60 AS queueing,

                   SUM (DECODE (wait_class, 'Cluster', 1, 0)) / 60 AS clust,

                   SUM (DECODE (wait_class, 'Other', 1, 0)) / 60 AS other

              FROM v$active_session_history

             WHERE sample_time > TO_DATE ('201501120000', 'YYYYMMDDHH24MI')                -- 간격조정

                   AND sample_time <= TRUNC (SYSDATE, 'MI')

          GROUP BY TRUNC (sample_time, 'MI')) ash,

         (SELECT TRUNC (begin_time, 'MI') AS sample_time,

                 VALUE / 100 AS cpu_ora_consumed

            FROM v$sysmetric_history -- 해당 최대 BEGIN_TIME까지만 조회 가능

           WHERE GROUP_ID = 2 AND metric_name = 'CPU Usage Per Sec') sysmetric_history

   WHERE ash.sample_time(+) = sysmetric_history.sample_time

ORDER BY sample_time;

 

/* Formatted on 2015-02-25 15:45:53 (QP5 v5.163.1008.3004) */

--Without CPU Wait

-- v$active_session_history

SELECT sample_time,

       cpu / 60 AS cpu,

       bcpu / 60 AS bcpu,

       scheduler / 60 AS scheduler,

       uio / 60 AS uio,

       sio / 60 AS sio,

       concurrency / 60 AS concurrency,

       application / 60 AS application,

       COMMIT / 60 AS COMMIT,

       configuration / 60 AS configuration,

       administrative / 60 AS administrative,

       network / 60 AS network,

       queueing / 60 AS queueing,

       clust / 60 AS clust,

       other / 60 AS other

  FROM (SELECT TRUNC (sample_time, 'MI') AS sample_time,

               DECODE (

                  session_state,

                  'ON CPU', DECODE (session_type,

                                    'BACKGROUND', 'BCPU',

                                    'ON CPU'),

                  wait_class)

                  AS wait_class

          FROM v$active_session_history

         WHERE sample_time > TO_DATE ('201501120000', 'YYYYMMDDHH24MI') -- 일자 조정 필요

               AND sample_time <= TRUNC (SYSDATE, 'MI'))                 --ash

                                                        PIVOT (COUNT (*)

                                                         FOR wait_class

                                                         IN  ('ON CPU' AS cpu,

                                                             'BCPU' AS bcpu,

                                                             'Scheduler' AS scheduler,

                                                             'User I/O' AS uio,

                                                             'System I/O' AS sio,

                                                             'Concurrency' AS concurrency,

                                                             'Application' AS application,

                                                             'Commit' AS COMMIT,

                                                             'Configuration' AS configuration,

                                                             'Administrative' AS administrative,

                                                             'Network' AS network,

                                                             'Queueing' AS queueing,

                                                             'Cluster' AS clust,

                                                             'Other' AS other));

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

1. Hang 발생시 해당 명령어로 접근 후, oradebug 수행

 # sqlplus –prelim “/ as sysdba”

   SQL>alter system set events ‘immediate trace name ashdump level 10’;

   SQL> oradebug setmypid

   SQL> oradebug unlimit

   SQL> oradebug dump ashdump 10 (level 10) --ASHDUMP 생성

   SQL> oradebug tracefile_name

 

2. DB 정상화 후, ASHDUMP파일을 SQL Loader로 테이블 생성 

# sqlldr userid=test/test control='/home/oracle/ashldr.ctl'

data='/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_28661.trc‘

 

3. ASHDUMP 내역을 확인하여 이슈 분석

 SQL> select * from ashdump;

 

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,