작성자: haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

ㄴ제5절 데이터베이스 구조와 성능

슈퍼타입/서브타입 모델의 성능고려 방법 가. 슈퍼/서브타입 데이터 모델의 개요 Extended ER모델이라고 부르는 슈퍼/서브타입 데이터 모델은 최근에 데이터 모델링을 할 때 자주 쓰이는 모델링 방법 자주 쓰이는 이유는 업무를 구성하는 데이터의…

제4절 대량 데이터에 따른 성능

대량 데이터발생에 따른 테이블 분할 개요 설계가 잘되어 있는 데이터 모델이라고 하더라도 대량의 데이터가 하나의 테이블에 집약되어 있고 하나의 하드웨어 공간에 저장되어 있으면 성능저하를 피하기가 힘들다 특정 테이블에 있는 경우에…

ㄴ제3절 반정규화와 성능

반정규화를 통한 성능향상 전략 가. 반정규화의 정의 반정규화(=역정규화) : 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개발(development)과 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다. 데이터…

ㄴ제2절 정규화와 성능

정규화를 통한 성능 향상 전략 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 데이터베이스에서 데이터를 처리할 때 성능이라고…

ㄴ제5절 식별자

식별자(Identifiers) 개념 하나의 엔티티에 구성되어 있는 여러 개의 속성 중에 엔티티를 대표할 수 있는 속성의 의미 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 함 보통 식별자와 키(Key)를 동일하게 생각하는 경우가…

ㄴ제4절 관계(Relationship)

관계의 개념 가. 관계의 정의 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태 나. 관계의 페어링 관계 페어링 : 엔티티내에 인스턴스와 인스턴스 사이에 관계가 설정되어 있는…

ㄴ제3절 속성(Attribute)

속성(Attribute)의 개념 속성이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것 데이터 모델링 관점에서 정의 하자면, “업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상…

ㄴ제2절 엔티티(Entity)

엔티티의 개념 우리말로 실체, 객체라고 함     변별할 수 있는 사물 – Peter Chen (1976) 데이터베이스 내에서 변별 가능한 객체 – C.J Date (1986) 정보를 저장할 수 있는 어떤…

TAR 명령어 정리

1. tar 소개  주요기능은?  아카이브를 만들거나 푼다.  아카이브란?  아카이브는 여러 파일을 한 파일로 묶은 것을 말한다. tar는 아카이브를 압축하지 않는다. 단지 하나의 파일로 묶을 뿐이다. 아카이브의 압축은 gzip이나 bzip2등을 이용한다. …

Opatch에 관한 소개

1.     Opatch 개요 오라클은 오라클 소프트웨어에 대해 패치로 제품 수정을 하고 있습니다. 설치된 Oracle 소프트웨어에 패치를 적용하면 해당 소프트웨어의 홈 디렉토리의 실행 파일, 라이브러리 및 오브젝트 파일이 업데이트 됩니다. 패치는…

Database Options/Management Pack Usage 확인

  cfile4.uf.2555C64D56766E1F3AB584.sql   cfile23.uf.2379FB4D56766E23172E52.sql # Query 가 길어서 파일은 첨부하였습니다 1. Database Options/Management Pack Usage 확인(option_usage.sql) DB Options/Management Pack에 대해 사용한 것을 체크할 수 있습니다. 한번이라도 사용한 적이 있다면 Used 컬럼의…

Oracle Cloud Service 분류

http://cloud.oracle.com에 접속하면 이용 가능한 oracle cloud service 종류들이 출력된다.     1. Oracle Storage Cloud Service – Storage Cloud Service : 엔터프라이즈급 데이터 보호, 안전하고 확장 가능한 스토리지, 인터넷상에서 어디든지 접근 편리…

ASM SPFILE 옮기는 방법(DISKGROUP 간 이동)

# 기존 DB에서처럼 Parameter파일을 생성해주시면 됩니다.(create pfile from spfile;) SPFILE이 2개의 Diskgroup에 그대로 존재 하는데 어떤 SPFILE을 보고 올라올지 궁금하였는데 테스트 결과 새로 생성해준(=가장 최근에 생성된) SPFILE을 바라보고 ASM이 Start…

ORADEBUG DUMPS

오라디버그는 데이터베이스 내부 정보를 얻을 때 유용하게 사용된다. 1. oradebug dump    덤프 수행 [ Syntax ]  oradebug dump  <dump_name> <level> [addr]  [ Parameter ] <dump_name>     <level>  [<addr>]   …

ORADEBUG 사용법 – 2

[oradebug 사용법 – 2] 1. oradebug resume 일시 중지된 프로세스를 재시작 SQL> oradebug resume  2. oradebug flush 메모리에 있는 정보를 Trace 파일에 Write 3. oradebug close_trace   프로세스가 잡고 있던 트레이스 파일 close 4. oradebug…

Solaris I/O Tunning

I/O 튜닝의 목적 파일 시스템은 모든 unix환경의 필수적인 요소로서 파일저장, 검색하는 메커니즘을 제공하며 복수의 파일들을 명명하는 계층적 디렉토리 구조를 제공한다. • IO Tuning중 ufs file system을 통한 성능 향상에 목적을…

Linux cdrom mount

cdrom mount //시디롬 마운트 mount -t iso9660 /dev/cdrom /mnt/cdrom //언마운트 umount mnt/cdrom disk mount 확인: fdisk -l 파일시스템 설정 mkfs.ext3 /dev/sdb1 fstab 등록 vi /etc/fstab 해당 폴더 생성 mkdir /fra…

통계정보 복구

테이블 이력 조회 select owner, table_name, to_char(last_analyzed,’YYYY-MM-DD HH24:MI:SS’) from dba_tables where owner=’SCOTT’ ;     통계정보 갱신 이력 조회 select table_name, stats_update_time from dba_tab_stats_history where owner=’SCOTT’ ;     테이블…

SYSAUX Table Shrink

1. 스냅샷 설정 확인 select * from dba_hist_wr_control ;     2. 현재 스냅샷 조회 col startup_time for a30 col begin_interval_time for a30 select snap_id, startup_time, begin_interval_time, snap_level from dba_hist_snapshot…

아카이브로그 장애(FULL)

리커버리 데스트 사이즈 확인 및 수정 oracle@solaris:/u01/app/oracle/fast_recovery_area/ORCL1/archivelog/2015_01_14$ ss  SQL*Plus: Release 11.2.0.4.0 Production on Thu Jan 15 00:04:29 2015     Copyright (c) 1982, 2013, Oracle. All rights reserved.     Connected to: Oracle Database…

Datafile Resize

현재 사용률 조회 select df.tablespace_name “Tablespace”, round(df.TBS_byte /1048576,2) “Total(MB)”, round((df.TBS_byte – fs.Free_byte)/1048576,2) “Used(MB)”, round(fs.Free_byte /1048576,2) “Free(MB)”, round((fs.Free_byte/df.TBS_byte) *100,0) “Free(%)”, fs.pieces “Pieces”, round(fs.Max_free /1048576,2) “MaxFree(MB)”, db.EXTENT_MANAGEMENT from ( select tablespace_name, sum(bytes)…

프로세스의 상태 고찰

실행된 프로세스는 다양한 상태 중 하나를 가진다. 요청을 처리하기 위해 CPU를 사용하고 있는지, 요청이 오기를 기다리는 등의 상태를 나타낸다. 앞에서 하나의 프로세스가 fork() 해서 exec(), exit()까지의 과정을 살펴 보았다. 아래…

프로세스 생명 주기

프로세스가 생성에서 종료하기까지의 과정 디스크에 있는 프로그램이 실행되어 활성화 된 것이 프로세스이다. 프로세스는 종료(terminated) 되기전까지 항상 메모리에 상주하며, 다양한 상태를 가진다. 프로세스가 활성화 되어 종료될 때까지를 프로세스가 살아 있는 시간으로…

튜닝 관련 용어 정리 2탄

■ 문맥 교환(Context switch) 하나의 쓰레드가 실행되다가 쓰레드에게 주어진 시간을 다 사용하거나, 자발적인 잠듬(sleep),자원이 준비되기를 기다림, 또는 우선순위가 높은 쓰레드가 CPU를 사용하기 위해 대기하고 있으면 다른 쓰레드로 전환이 발생하는데 이를…

조인의 튜닝 방법 -2

Outer Join 어떤 집합을 기준으로 해서 조인되는 다른 집합과의 연결에 실패했더라도 그 결과를 추출하는 조인 특징 조인 순서가 미리 정해지므로 조인순서를 이용한 튜닝이 불가함 가능한 Outer Join은 피하도록 함 Outer…

인덱스 리빌드(Index Rebuild) 란

0. 인덱스는 사용자가 임의적으로 생성 변경이 가능한 데이터 베이스에 저장가능한 물리적인 구조입니다. 하지만 인덱스는 단순하게 색인이라는 개념에 앞서 옵티마이저가 실행계획을 수립할 때 최적의 경로를 찾도록 하는 ‘전략적 요소’라는 시각에서 접근하여야…

테이블 별 I/O 확인 쿼리

Enterprise Edition 환경에서 테이블 별 I/O를 확인할 수 있는 쿼리 입니다. 해당하는 OWNER, OBJECT_NAME으로 쿼리 수행하셔서 SNAP_TIME 컬럼에서 해당기간을 확인하실 수 있습니다. 아래 쿼리는 AWR를 정보를 가지고 있는 뷰를 조회하기 때문에…

통계정보 활용 방안

통계정보 개요 통계정보 통계정보는 해당 Table 및 Index,        Column 에 대한 통계치로서 Optimizer 가 가장 효율적인 Execution plan 을 수립하기 위해 최소비용을 계산하기 위해 사용하는 정보이다.        또한 Object구조 및 Chain정보도 제공한다.  …

무료 모델링 툴 소개 – DBDesigner

제작사 홈페이지 : http://www.fabforce.net/dbdesigner4/ 아래는 DBDesigner(이하 DBD)가 지원하는 내용입니다. ORACLE, MySQL, MS-SQL 등을 지원하고 리버스 엔지니어링을 지원한다는 점이 눈에 띄네요. 최근 프로젝트시 ERWin 프로그램이 설치 되어 있지 않아서 잠깐 사용하였었는데, ER모델만…

Exadata Smart Scan 모니터링 쿼리

Exadata Smart Scan 모니터링 하는 3가지 쿼리 입니다. ” Exadata에서 Smart Scan은 Query 성능 향상을 위한 핵심 기술입니다. Smart Scan은 Partitioning,HCC 압축과 함께 사용되면 그 효율성이 더욱 좋아집니다. Smart Scan으로…

Oracle 권장 파라미터(11.2.0.4)

DB Parameter의 설정에 대한 Best Practices는 오라클에서 가이드를 바탕으로 하여 고객사의 DBMS 운영 경험과 고객사의 표준 파라미터를 반영하여 고객사 고유의 DB Parameter를 만들어 가는 것이 것입니다.  여기서 주의할 점은 권고…

Oracle Linux Huge Page

일반적인 컴퓨팅 시스템은 물리적 메모리 크기의 한계를 극복하기 위해 Virtual Memory 기법을 사용 하며, 상이한 두 메모리를 매핑하기 위해 Page Table이 존재하고 Page단위로 관리됩니다. 리눅스 시스템의 경우 보통 4k 크기의…

Oracle DB Hang 상태

Oracle Database Hang 상태의 정의 1. What`s the problem ? 현상 발싱시 상황 인지 시간 필요 현상을 정의하기 어려움 누가 현상을 분석하는가? 무엇을 확인하는가? Hang 현상으로 인해 상황 분석 불가…

User의 Profile 설정

흔히 공공기관이나 금융권에서는 패스워드의 사용기간 및 복잡도를 정책에 맞도록 설정 합니다. User 마다 Profile 이 설정 되어 있는데, 기본적으로는 Default Profile 로 설정 되어 있으며 각각 User 마다 Profile 을…

OERR 활용법

OERR 이란? Oracle을 설치 하게 되면 사용할 수 있는 기능으로 $ORACLE_HOME/bin/ 아래 있습니다.   Oerr 을 이용하여 아래와 같이 해당 Error 가 무엇 인지와 Error에 대한 솔루션을 확인 하실 수…

Table Analyze 추출 쿼리

% 해당 명령어는 SYSTEM User가 가지고 있는 Table의 통계정보를 생성한지 180일 이전와 통계정보가 생성이 안되어 있는 Table을 출력 하는 쿼리입니다. select OWNER,TABLE_NAME,TO_CHAR(LAST_ANALYZED,’YYYY-MM-DD hh24:mi:ss’) from dba_tableswhere OWNER=’SYS’and (LAST_ANALYZED < sysdate –…

Exadata 환경에서 ASM 가용공간 산정하기(Normal Redundancy 경우)

# Normal Redundancy의 경우 Normal Redundancy 설정에서 ASM은 2개 이상의 Failgroups을 요구합니다. Failgroups 이란, 하나의 특정 디스크그룹 내에서 failure를 허용해야 하는 공통 리소스를 공유하는 디스크 셋 이것이 성립되지 않으면 새로운 공간을 할당하는 것이 불가능합니다.   1. Usable_File_MB 양수 값 일때 ASM은 하나의 Failgroup에 대한 가용한 공간을 REQUIRED_MIRROR_FREE_MB로 출력합니다. 이는 데이터의 리밸런싱 및 Cell 장애 발생시 Redundancy를 저장하기 위해 사용합니다. 복제본을 위한 여분 공간은 Usable_File_MB로 보여집니다. Usable_File_MB의 양수 값은 사용자가 리밸런싱을 수행하거나 장애 발생시 복제본을 저장할 수 있는 충분한 공간이 있음을 의미합니다. 셀 노드 장애 발생시 아래와 같은 작업이 일어나게 됩니다. ASM은 장애가 발생한…

ORACLE BUFFER CACHE

    Buffer Cache Management   Oracle은 cache buffer를 관리하기 위해서는 세가지의 내부적인 structure를 사용하는데, 그 각각은 cache buffer chain, dirty list, LRU(Least Recently Used list)이며, 아래에 자세히 설명하다. buffer…

Oracle Shared Pool

    Oracle Memory Model   Oracle 의 주요 특징 중 하나가 SGA내에shared pool이란 structure를 도입한 것이다. shared pool을 잘 이해하고 관리하는 것은 Oracle을 사용하는데 있어서 성능 향상 및 문제…

Data recovery UnLoader 설명

  이 document는 version8에 기반하여 upgrade하였다. 또한 단순이 dul executable과 함께 download받는 usg.html을 번역한 것이 아니라 그 동안 dul을 사용하면서 쌓아 왔던 경험 등을 함께 써놓았고 raw device dul을 사용하는데…

ORACLE RMAN 의 개요

        개요 Recovery Manager는 DBA가 강력한 운영체제 독립 스크립트 언어로 백업, 복원, 그리고 복구 프로세스를 관리하는데 도움을 주는 오라클 유틸리티입니다. Recovery Manager의 기능은 명령 라인 인터페이스와 Oracle…

ORACLE DATAPUMP 정리

  Oracle 10g의 new feature인 Data Pump는 Oracle Database data와 metadata의 이동을 위한 매우 빠른 infrastructure를 사용하고 있다. 따라서 Oracle 9i까지 사용되던 export, import utility의 더욱더 향상된 performance를 목적으로 만들어진…

Oracle Flashback 정리

  Flashback Flashback이란? 사용자 실수에 의한 손상된 데이터를 Database의 크기와 상관없이 복구를 할수 있는기능이다. 이 Flashback 기능은 일반적인 복구에서 우려되는 데이터베이스의크기를 걱정하지 않아도 된다. 보통의 사용자 실수는 커다란시스템 장애가수반되며, 이를…

Oracle Fail Safer 구축 방법

node1,2에 MSCS구성,클러스터링 node1,2에 각각 오라클 엔진 설치 node1에서만 인스턴스 생성 node1,2에 각각 OFS인스톨후 재부팅 ofs maanger를 실행하여 MSCS클러스터 등록 클러스터에 연결 등록하기위해서 username,password,domain을 입력한다 클러스터 하드웨어,소프트웨어가 제대로 구성되었는지 Verify Cluster를…

OCR & Voting Disk

OCR => 1. oracle clusterware 가 control 하는 컴포넌트에 대한 저장/관리 (RAC DB, Service, listener, VIP) 2. 설정 정보를 key-value 쌍으로 tree 구조로 관리한다. 3. crs 데몬이 죽은거 살릴때 ocr…

ASM DISK 의 상태 풀이 설명

ASM DISK 의 상태 풀이 설명 컬럼별 상태 설명 1.    MOUNT_STATUS : GROUP MOUNT에 관련된 인스턴스별 디스크의 상태 정보 §  MISSING :  ASM 메타데이터에는 디스크가 ASM diskgroup의 일부로 표기되어 있으나,…

ASM Disk Repair Timer 설정 관리

ASM Disk Repair Timer 설정 관리   ASM repair timer이란 ASM이 손상된 디스크를 drop하고 rebalance를 수행하기 전까지 오프라인으로 남아있게 되는 총 시간을 지정한 값이다. 디스크가 오프라인으로 남아 있는 동안, ASM은…

ORACLE의 인증 제품 확인 사이트

  ORACLE사의 인증을 받은 제품들을 쉽게 확인 할 수 있습니다.    https://support.oracle.com/ 접속하여 사인인을 하면    아래와 같은 화면이 나타납니다. 이 페이지에서 인증 탭을 클릭하면      제품군, 릴리스(버전), 플랫폼을 선택하여…

ORADEBUG 사용법 – 1

[oradebug 사용법 – 1] ORADUBUG는 ORACLE에서 제공하는 디버깅을 위한 목적으로 만들어진 유틸리티로  DB가 멈추거나 Hang 상태일 때 또는 ORA-600 에러가 발생했을 경우,  특정 프로세스가 루핑을 도는 것 또는 멈춰있는 것 같이…

ORACLE의 H/W 제품군 Handbook 사이트

ORACLE사의 엔지니어드시스템, 서버, 스토리지, 백업장비 등 H/W 제품군의 스펙 및 관련 문서의 정보를 확인하실 수 있습니다. 제안작업 RFP 검토시 시스템사양 확인이나, ORACLE S/W 설치시 코어 수 확인 등 유용하게 쓰실…

SYSAUX tablespace에서 table 재생성 하는 방법

AWR 통계정보 수집을 위해 statistics_level을 ALL로 변경하였다가 이후 LEVEL을 낮췄음에도  SYSAUX tablespace에 저장된 정보들로인해 디스크 full 상태가 발생한 이슈가 있었다.  SYSAUX tablespace에 있는 WRI$_ 로 시작하는 테이블들에 AWR 수집 데이터 값이 남아있어 발생한 이슈로  해당 테이블을 $ORACLE_HOME/rdbms/admin 에 있는…

SQL 튜닝 사례

  SQL Tuning CASE   [ CASE1: 적절한 인덱스의 사용 ] <SQL> UPDATE TB_CCPIDSCNT SET END_DATE = DECODE (SIGN (( NVL (END_DATE,TO_CHAR (( ADD_MONTHS (TO_DATE (START_DATE,’YYYYMMDD’),36)– 1),’YYYYMMDD’))– :b0)),1, :b0,END_DATE) ,END_ORD_NO =…