Oracle VMSTAT을 이용한 CPU 사용량 활용법
DB Version : Oracle 11.2.0.2
OS Version : AIX 6.1
(1). Table 생성
- DB User : SYSTEM
- Table : VMSTAT (Compress BASIC)
- Tablespace : NEW_TABLESPACE
CREATE TABLE SYSTEM.VMSTAT ( HOSTNAME VARCHAR2(30 BYTE), TIMESTAMP DATE, KTHR_R VARCHAR2(30 BYTE), KTHR_B VARCHAR2(30 BYTE), MEMORY_AVM VARCHAR2(30 BYTE), MEMORY_FRE VARCHAR2(30 BYTE), PAGE_RE VARCHAR2(30 BYTE), PAGE_PI VARCHAR2(30 BYTE), PAGE_PO VARCHAR2(30 BYTE), PAGE_FR VARCHAR2(30 BYTE), PAGE_SR VARCHAR2(30 BYTE), PAGE_CY VARCHAR2(30 BYTE), FAULTS_IN VARCHAR2(30 BYTE), FAULTS_SY VARCHAR2(30 BYTE), FAULTS_CS VARCHAR2(30 BYTE), CPU_US VARCHAR2(30 BYTE), CPU_SY VARCHAR2(30 BYTE), CPU_ID VARCHAR2(30 BYTE), CPU_WA VARCHAR2(30 BYTE) ) TABLESPACE NEW_TABLESPACE COMPRESS BASIC; CREATE INDEX SYSTEM.VMSTAT_N1 ON SYSTEM.VMSTAT (TIMESTAMP, HOSTNAME) TABLESPACE NEW_TABLESPACE;
(2). Shell Script 내용 작성
- Script Directory : /oracle/DBAWORK/DB_JOB/
- Shell Script Name : insert_vm.sql
################################################################### # VMSTAT CPU Usage Insert Script ################################################################### export ORACLE_SID=ORCL export ORACLE_UNQNAME=ORCL export ORACLE_BASE=/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.2 export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:$PATH export ORACLE_OWNER=oracle export DATE=`date +'%Y%m%d%H%M%S'` export HOST=`hostname` export OUTPUT=/oracle/DBAWORK/DB_JOB/insert_vm.sql echo " insert into system.vmstat values ('${HOST}',sysdate,`vmstat 1 2 | tail -1 | awk '/ /{print $1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14","$15","$16","$17 }' `) ; " > $OUTPUT sqlplus / as sysdba <<EOF @/oracle/DBAWORK/DB_JOB/insert_vm.sql commit; EOF
(3). OS에 contrab 등록
- 30s 단위로 저장할수 있게 crontab이 등록
- chmod 변경
## vmstat information * * * * * /oracle/DBAWORK/DB_JOB/insert_vm.sh & sleep 30; /oracle/DBAWORK/DB_JOB/insert_vm.sh >> /dev/null vi /oracle/DBAWORK/DB_JOB/insert_vm.sh chmod 700 /oracle/DBAWORK/DB_JOB/insert_vm.sh
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
14 | 테이블 컬럼의 Default 값에 대한 흔적은 Dictionary에 계속 남게 된다. | 명품관 | 2016.04.05 | 1590 |
13 | Alert log 에서 갑자기 패치 정보가 나타나는 현상 | Talros | 2019.09.23 | 1677 |
12 | Pga 메모리 설정관련 내용 [1] | 우뽕 | 2021.03.05 | 1829 |
11 | Alert Log를 SQL 사용하여 보기 (X$DBGALERTEXT) [1] | 에밀리오 | 2016.01.28 | 2043 |
10 | Kill Session Script (GV$SESSION) | 에밀리오 | 2016.07.12 | 2145 |
9 | Partition 추가의 계절 - Range Partition 추가시 알아 두어야할 부분 [1] | 명품관 | 2015.12.03 | 2229 |
8 | Oracle Resource Limit를 이용한 간단한 Parameter Check (GV$RESOURCE_LIMIT) | 에밀리오 | 2016.07.15 | 2263 |
7 | Fixed Table에 대한 권한은 직접적으로 부여되지 않는다. | 명품관 | 2016.08.26 | 2698 |
6 | [12cR2 이상] 오브젝트 이름 30자이상 사용 가능 | 우뽕 | 2020.01.22 | 3181 |
5 | Schema Password 복사 하기 | Talros | 2016.10.05 | 3289 |
4 | 오라클 패치 정보를 조회할 수 있는 뷰 DBA_REGISTRY_SQLPATCH | 명품관 | 2017.03.02 | 5500 |
3 | DBMS_SCHEDULER을 통해 OS 레벨(EXTERNAL)의 shell 수행하기 | 명품관 | 2017.04.05 | 5767 |
2 | 내가 돌린 SQL ID 찾기 [1] | Talros | 2016.05.12 | 8821 |
1 | Oracle Archive log 사용량 확인(GV$ARCHIVED_LOG) [1] | 에밀리오 | 2016.08.04 | 11248 |