스냅샷 목록 확인

select snap_id, snap_time from stats$snapshot;

 

PERFSTAT 계정 확인

Select * from dba_users where username='PERFSTAT';

 

job 확인

Select * from dba_jobs;

 

오라클 홈이 없으면 path에 등록이 되어있으므로 확인

Windows : path/rdbms/admin

Linux : $ORACLE_HOME/rdbms/admin

 

- spcreate.sql : statspack 설치

- spauto.sql : 스케쥴링 (job 등록)

- spdrop.sql : statspack 삭제


statspack 삭제

cd $ORACLE_HOME/rdbms/admin 접속

sqlplus / as sysdba 접속

 

linesize, pagesize 설정

SQL> set linesize 300
SQL> set pagesize 300

 

SID 에 맞게 잘 접속됐는지 확인

SQL> select instance_name from v$instance;

 

job 삭제 후 statspack 삭제

job 삭제 (perfstat 계정으로 접속) 

SQL> conn perfstat/perfstat

 

EXEC DBMS_JOB.REMOVE(job number);

SQL> EXEC DBMS_JOB.REMOVE(21);
SQL> EXEC DBMS_JOB.REMOVE(41);
SQL> commit;

SQL> alter user perfstat account unlock;

User altered.

SQL> conn perfstat/Rlaehdus1_
Connected.
SQL> EXEC DBMS_JOB.REMOVE(21);

PL/SQL procedure successfully completed.

SQL> EXEC DBMS_JOB.REMOVE(41);

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

 

job 확인

Select * from dba_jobs;

아무것도 없으면 삭제 완료

 

statspack 삭제 (sys로 접속)

spdrop.sql 로 삭제

SQL> @spdrop.sql

 

계정 삭제 확인

Select * from dba_users where username='PERFSTAT';

perfstat 계정이 없으면 삭제 완료

 

'DB ORACLE 공부 기록' 카테고리의 다른 글

UNDO tablespace 변경  (0) 2022.09.27
Client Tool에서 GUI 실행  (0) 2022.08.17
Statspack 설치  (0) 2022.06.29
데이터베이스 STARTUP  (0) 2022.06.24
Data Block, Extent, Segment, Tablespace  (0) 2022.05.27

Statspack 

: Database에 대한 부하 및 resource 사용량의 trend 분석이나 성능 문제 분석을 위하여 사용되는 tool
perfstat 사용자가 생성되고 perfstat에 성능 관련 정보 저장

- Standard Edition : statspack 설치 필요
- Enterprise Edition : statspack 설치할 필요 X
  -- AWR (Automatic Workload Repository)

    : Enterprise Edition은 AWR이 파티셔닝 기능과 성능 수집하여 스냅샷으로 만들어 일정기간 보관 자동으로 이루어짐

      (스냅샷 보관 주기 8일)

 

 

SYSAUX Tablespace

: 오라클 10g 버전부터 나온 테이블스페이스, 기존의 시스템 테이블스페이스에서 저장되고 관리되어 오던 여러 요소들 가운데 일부 또는 별도의 테이블스페이스의 생성을 요구하는 이들 요소를 한 곳에 저장, 관리하는 기능을 제공

Statspack 패키지, 정보 저장 공간 (PERFSTAT 유저 생성)


statspack 설치

(sqlplus로 sys로 로그인하여 설치)

 

1. job_queue_processes  확인

스냅샷이 언제 돌아가는지 확인

- value(값)가 0 이면 수행되고 있는 job가 없는 것

select * from v$parameter
where name like '%job%'

- value가 이미 있으면 job이 돌아가고 있다는 것을 확인 (→ statspack 설치 X)

 

value 가 있으면 현재 수행되고 있는 job을 확인

select * from dba_jobs

 

job 딕셔너리 확인

select * from dict
where table_name like '%SCHEDULE%'

 

확인된 job 딕셔너리

DBA_SCHEDULER_JOBS

 


2. 기설치 확인

select * from dba_users
where username = 'PERFSTAT'

조회했을 경우 PERFSTAT 유저가 있다면 statspack가 설치가 된 것


3. 설치할 Tablespace 확인   

-- SYSAUX 테이블 스페이스 (SYSAUX에 statspack 설치)
테이블스페이스 별 freespace 확인

SELECT A.TABLESPACE_NAME
     , SUM(A.BYTES)/(1024*1024) AS "Total(MB)"
     , trunc((SUM(A.BYTES)/(1024*1024))-NVL(SUM(SZ_MB),0), 2) AS "USED(MB)"
     , trunc(NVL(SUM(SZ_MB),0), 2) AS "FREE(MB)"
     , trunc(NVL(( 1. - SUM(SZ_MB)/(SUM(A.BYTES)/(1024*1024)) ) * 100,100),2) AS "USAGE(%)"
  FROM DBA_DATA_FILES A
     , (SELECT FILE_ID, SUM(BYTES)/(1024*1024) AS SZ_MB
          FROM DBA_FREE_SPACE
         GROUP BY FILE_ID ) B
 WHERE A.FILE_ID = B.FILE_ID (+)
   AND A.TABLESPACE_NAME NOT in (select tablespace_name from dba_tablespaces where contents = 'UNDO')
 GROUP BY A.TABLESPACE_NAME
 ORDER BY 5 DESC

 


4. statspack 설치

ORACLE_HOME 확인
- Windows 확인 방법
 제어판 > 모든 제어판 항목 > 시스템 > 고급 시스템 설정 > 환경변수 확인 (ORACLE_HOME 확인) 후 접속하여 다음 실

- Linux 확인 방법

.bash_profile 에서 ORACLE_HOME 확인

 

ORACLE_HOME 접속 후 sys로 sql 접속 (sqlplus / as sysdba)

 

인스턴스 확인

select instance_name from v$instance;

 

@spcreate.sql 수행해서 설치 (sys 접속)

SQL> @spcreate.sql
Enter value for perfstat_password: perfstat
Enter value for default_tablespace: [perfstat 용 테이블스페이스 입력, 엔터시 default 테이블스페이스로 지정]
Enter value for temporary_tablespace: [perfstat 용 템프 테이블스페이스 입력 , 엔터시 default 템프 테이블스페이스로 지정]

 


5. job 등록

perfstat 계정으로 접속해서 @spauto.sql 로 디폴트 1시간마다 수집하는 job 등록

하루치 레포트 출력 필요

spauto.sql : 배치 스크립트 (1시간마다 작동이 기본)

 

현재 job 권한이 없을 경우 sys로 로그인 후 권한 부여

계정 권한 확인

 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'PERFSTAT'

Job 생성 권한이 없음

 

Sys로 접속 후  job 권한 부여

 grant create any job to PERFSTAT;

 

perfstat로 접속 후 @spauto.sql 실행

 

 

 

 

6. dba_jobs 에서 등록된 job 확인

 -- job 확인
 select * from dba_jobs

 

 

7.  수동 스냅샷 찍는 법

begin
 statspack.snap;
end;
/

 


8. 스냅샷 확인 

스냅샷이 언제 찍혔는지 확인

 select * from STATS$SNAPSHOT
 order by snap_time desc  --snap_time 기준으로 출력

 

'DB ORACLE 공부 기록' 카테고리의 다른 글

Client Tool에서 GUI 실행  (0) 2022.08.17
Statspack 삭제  (0) 2022.07.01
데이터베이스 STARTUP  (0) 2022.06.24
Data Block, Extent, Segment, Tablespace  (0) 2022.05.27
ORACLE SCN, CKPT(Checkpoint)  (0) 2022.05.26

+ Recent posts