월: 2016년 1월월

8. PL/SQL 예외처리

8. PL/SQL 예외처리   A. 예외란?   – SELECT 문이 행을 하나만 읽어 들일 것으로 예상했지만 여러 행을 읽어 오류 발생하며 블록이 종료됨 – 위와같이 런타임에 발생하는 오류를 예외라고 한다.…

4. PL/SQL 프로그램의 SQL문

4. PL/SQL 프로그램의 SQL문 (오라클 데이터베이스 서버와 상호작용)   A. PL/SQL의 SQL문 §SELECT 명령을 사용한 DB 행 검색 §DML 명령을 사용한 DB 행 변경 §COMMIT, ROLLBACK, SAVEPOINT 명령을 사용한 TX…

3. PL/SQL 실행문 작성

3. 실행문 작성   A. Lexical Unit §모든 PL/SQL 블록의 기본 구조 §문자, 숫자, 탭, 공백, Return 및 기호를 포함한 문자, 시퀀스 §다음과 같이 분류 §식별자 : v_fname, c_percent §구분자…

2. PL/SQL 변수 선언

2. PL/SQL 변수 선언 A. 변수 사용 및 처리 §Use §Data 의 임시 저장 영역 §저장된 값 조작 §재사용성 §Handling §선언 섹션에서 선언 및 초기화(optionally) §실행 섹션에서 사용되고 새 값이…

1. PL/SQL 소개

1. PL/SQL 소개 A.  PL/SQL SQL을 확장한 절차적 언어(Procedural Language) 관계형 DB에서 사용되는 Oracle 표준 데이터 액세스 언어 코드 실행 단위에 블록 구조 제공 쉬운 코드 유지 관리 가능 프로시저…

OS 별 정보 확인

오라클은 타 DB와는 다르게 AIX,LINUX,HP,SOLARIS,WINDOWS OS에 설치가 가능합니다. 그에 따라 OS 마다 필요한 정보를 가져 갈 줄 알아야하는데 대표적인 명령어를 기술했습니다.   1. CPU 정보 AIX lsdev -Cc processor HP-UX…

Datapump – expdp, impdp

 Oracle datapump는 oracle 10g 버전부터 등장한 export/import 의 향상된 유틸리티입니다. 1. Datapump의 장점 -작업 관리의 편이성 : 작업 중지가 가능함.(job의 제어가 가능) -필요한 디스크 공간의 예측 : ESTIMATE 파라미터를 사용하여…

Oracle 저장 구조 – Data Block

  위 그림에서 제일 위에 있는 Block Header는 Cache layer(common)와 Transaction layer(varaible,fixed) 나뉩니다. 위에서 구분한 부분들의 각각 크기를 비교해보겠습니다. SQL> select component, type, description, type_sizefrom v$type_sizewhere component in (‘KCB’,’KTB’); COMPONEN…

오라클 콜드백업

DB 종료 후 전체 파일을 백업 받는 방식 특징 모든 파일은 동일한 SCN을 가져야 함. 즉 shutdown 시점이 같이야 함. 또한 정상적으로 종료해야 함. 아카이브, 노아카이브 모두 사용 가능 datafile,…

인덱스 모니터링

인덱스 모니터링 방법 한 번에 10개 정도의 인덱스 모니터링을 권고 ex: 출근 해서 체크, 퇴근 시 체크 후 사용 한 인덱스가 있으면 모니터링 종료, 다른 인덱스 모니터링 시작(10개 정도의 인덱스를…

인덱스 생성 및 삭제하기

인덱스란 어떤 데이터가 어디에 있다는 위치 정보를 가진 주소 개념(목차) 적절한 인덱스를 사용 할 경우 쿼리 속도 향상 테이블에 저장되어 있는 데이터를 좀 더 빠르고 효율적으로 찾기 위해 사용 됨…

Redo Log의 생성원리

 # Redo Log의 생성원리 *Write Log Ahead 실제 데이터를 변경하기 전에 Redo Log에 먼저 기록을 한 후 데이터를 변경합니다. *Log force at Commit Commit 요청이 들어오면 Redo Log File에 저장한…

update table 모니터링

참조 뷰 dba_tab_modifications 사용 방법 DBMS_STATS flush 후 수행 예시: exec dbms_stats.flush_database_monitoring_info 예시: select * from dba_tab_modifications where table_owner=’SCOTT’ ; where 절에서 필요한 값을 입력     SQL> /  …

오라클 시노님(Synonym)

# Synonym 시노님은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말합니다.  Synonym은 실질적으로 그 자체가 Object가 아니라 Object에 대한 직접적인 참조 입니다.   시노님 사용 대상데이터베이스의 투명성을 제공하기 위해서 사용…

오라클 집합쿼리

# 집합쿼리 집합 연산자를 사용시 집합을 구성할 컬러의 데이터 타입이 동일해야 합니다. UNION :합집합 ◈ UNION ALL:공통원소 두번씩 다 포함한 합집합 INTERSECT:교집합 ◈ MINUS:차집합     UNION은 두 테이블의 결합을…

오라클 다중 열 서브쿼리

# 다중 열 서브쿼리 다중 열 서브쿼리란 서브쿼리의 결과값이 두개 이상의 컬럼을 반환하는 서브쿼리 입니다.     서브쿼리가 한번 실행되면서 모든 조건을 검색해서 주 쿼리로 넘겨 줍니다.     ex)…

오라클 그룹 함수

# 그룹함수 그룹 함수란 여러 행 또는 테이블 전체의 행에 대해 함수가 적용되어 하나의 결과값을 가져오는  함수를 말합니다.. GROUP BY절을 이용하여 그룹 당 하나의 결과가 주어지도록 그룹화 할 수 있습니다.  HAVING절을 사용하여…

오라클 보안

권한 (Privilege) GRANT privilege ON objectㅁ TO [user, role, PUBLIC] [WITH GRANT OPTION] SQL> CONN system SQL> GRANT CREATE SESSION TO ora10g;     ROLE GRANT privilege01, privilege02, .. TO…

오라클 제약조건

제약 조건(Constraints)의 정의 테이블에 추가, 변경, 삭제되는 데이터를 제약. 제약 조건의 필요성 데이터의 무결성(Integrity)을 유지하기 위해 사용. 제약 조건의 종류 UNIQUE (UK) : 중복된 값을 허용하지 않음. NOT NULL (NN)…

오라클 트랜잭션(Insert)

트랜잭션: 한 작업의 단위 commit, rollback     데이터 추가 – INSERT INSERT INTO 테이블이름 (칼럼이름1, 칼럼이름2, ..) VALUES (값1, 값2, ..); 예. ‘IT Education’이라는 신규 부서를 부서번호 280으로 부서(department)…

오라클 OSWatcher 수행 방법

  + 시작방법 /opt/oracle.cellos/vldrun -script oswatcher 해당 프로그램 수행시 내부적으로 /opt/oracle.cellos/validations/init.d/oswatcher 파일내에 nohup ./startOSW.sh 15 168 bzip2 3 가 수행됨. 아래와 같이 Option으로 수집주기와 보존기간을 지정하여 실행 /opt/oracle.oswatcher/osw/startOSW.sh $arg1 $arg2…

Select 문장의 실행 원리

# Select 문장의 실행 원리  Parse(구문분석) –> Bind(치환) –> Excute(실행) –> Fetch(인출) (1) Parse (구문 분석 단계)  문법검사 : select, from, where 등의 Keyword를 검사합니다   의미검사 : 위 문법들을 제외한…

파일질라 사용법

로컬과 서버간에 파일을 옮겨야 하는 경우에 사용     사용 방법     # 접속할 서버의 ip 정보 조회 ipconfig -a     현재 ip는 192.168.56.102     # 접속정보…

오라클 SQL LOADER

SQL*Loader는 외부파일 데이터를 데이터베이스 테이블에 loading 하는 utility입니다. 다양한 데이터의 저장형태를 지원합니다. 이 utility로 아래와 같은 작업을 수행할 수 있습니다. 동일한 loading 세션을 통해 하나이상의 데이터파일 데이터를 loading 할 수…

오라클 Program Global Area(PGA)

PGA PGA는 단일 프로세스(서버나 백그라운드)에 대한 데이터와 제어 정보를 저장하는 메모리 영역입니다. 따라서 PGA를 “프로그램 글로벌 영역” 또는 “프로세스 글로벌 영역” 이라고 합니다. 운영 체제와 구성에 따라 다르지만 사용자 프로세스가…

오라클 System Global Area(SGA)

SGA SGA는 한 오라클의 인스턴스에 대한 데이터와 제어 정보를 가지는 공유 메모리 영역입니다. SGA와 오라클 백그라운드 프로세스가 오라클 인스턴스를 구축합니다. 오라클 인스턴스가 시작될 때 SGA를 할당하고 인스턴스가 종료하면 할당을 해제합니다.…

오라클 스키마 오브젝트

테이블(Table) 데이터 스토리지의 기본 단위로, 행(row)과 열(column)로 저장됩니다. 실제 디스크 공간을 사용하지 않지만 사용자가 지정한 표현식이나 함수에 의해 계산될 수 있는 가상 컬럼(virtual column)을 지정할 수 있습니다. 테이블에 대한 압축…

오라클 데이터베이스 논리적 구조

테이블스페이스(Tablespace) 데이터베이스는 논리적 저장 영역 단위인 테이블스페이스로 나누어집니다. 테이블스페이스는 연관된 논리적 구조를 그룹화합니다. 예를 들어, 테이블스페이스는 특정 관리 작업을 간단히 하기 위해 보통 응용 프로그램의 모든 객체를 그룹화합니다. 데이터베이스는 논리적으로…

오라클 데이터베이스 물리적 구조

데이터파일(datafile) 모든 Oracle 데이터베이스는 하나 이상의 물리적 데이터 파일을 가집니다. 데이터베이스의 데이터 파일은 데이터베이스의 모든 데이터를 가집니다. 테이블이나 인덱스 같은 데이터베이스의 논리적 구조는 데이터베이스를 위해 할당된 데이터 파일에 물리적으로 저장됩니다.…

옵션사용 확인

스탠다드 설치 시 control_management_pack_access 체크 비활성 확인     설치 후 조회 select name, value from v$parameter where name=’control_management_pack_access’ ;     설치 후 옵션 사용 조회 select * from…

Flashback 이란

  Flashback Database Oracle Database 10g 이전까지는 transactional point-in-time recovery를 위해서는 backup용 file과 redo log file을 이용하여 원하는 시간까지 복구를 해야만 했었습니다. 그러나 이 방법은 backup용 file이 오래됐고, archive log가…

Oracle Net 서비스

Oracle Net Service 드라이버 등은 Oracle 서버상에서 실행되는 Oracle RDBMS프로세스와 네트웍의 다른 컴퓨터에서 구동되는 Oracle Tool의 클라이언트 프로세스간의 인터페이스를 제공합니다. 이러한 드라이버들은 Oracle Tool의 인터페이스로부터 SQL문장을 받아서 Oracle 서버로 전송하기…

Client/Server 구조

일반적으로 Application과 데이터베이스는 Client와 Server라는 개념으로 분리되어 관리되며, 물리적으로도 다른 서버에 위치하게 됩니다. Client는 데이터베이스의 정보를 접근하는 application을 수행하게 됩니다. 데이터베이스 서버는 오라클 S/W를 실행하며 데이터베이스 데이터에 대한 동시 접속을…

Background Process

Oracle은 각 인스턴스에 대해 일련의 백그라운드 프로세스를 생성합니다. 이 프로세스들은 여러 Oracle 프로그램이 실행해야 하는 기능을 통합합니다. 기능을 통합하지 않는 다면 각 사용자 프로세스마다 여러 개의 Oracle 프로그램을 실행해야 합니다.…

서버 프로세스

Oracle은 서버 프로세스를 생성하여 접속된 사용자 프로세스의 요구 사항을 처리합니다. 서버 프로세스는 사용자 프로세스와의 통신과 사용자 프로세스의 요구 사항을 수행하는 Oracle과의 상호 작용을 담당합니다. 예를 들어, 사용자가 시스템 글로벌 영역의…

Recycle Bin 이란

Oracle Database 9i까지는 테이블이 Drop 되면, 즉시 그 테이블에 할당되었던 공간이 반납되었습니다. Oracle Database 10g는 테이블을 Drop 할 때, 할당된 공간과 의존관계가 있는 객체들이 회수되지 않습니다(그러나, DBA_FREE_SPACE 뷰에서는 제거된 것으로…

SYSAUX Tablespace

SYSAUX 테이블스페이스 시스템 테이블스페이스에 대한 보조 테이블스페이스입니다. 대부분의 데이터베이스 항목들이 그것에 대한 데이터를 저장하기 위해 SYSAUX 테이블스페이스를 사용합니다. 그러므로, SYSAUX 테이블스페이스는 선택사항이 아니며 항상 데이터베이스 생성이나 업그레이드시에 생성됩니다. SYSTEM 테이블스페이스와…

ASM Rebalancing & ASM Mirroring

ASM Rebalancing Disk가 추가/삭제 또는 크기 조정이 일어날 때, Disk group은 모든 Storage에 대한 load를 균등히 하기 위해 rebalancing 작업을 수행합니다. Disk group에 포함되는 Disk의 크기를 기준으로 해당 작업을 수행하게…

ASM 용어 정의

  Disk Group ASM Disk group은 논리적인 단위로써 관리되는 디스크 집합체이며, ASM에서 고려되는 최상의 데이터 구조입니다. 개별 Disk group은 자신의 파일 Directory와 Disk Directory 그리고 다른 Meta data를 포함하고 있습니다.…

ORACLE ASM

Automatic Storage Management(ASM) 개요 데이터베이스 구성 시 기본이 되는 디스크를 효율적으로 관리하기 위해 Oracle10g에서 새로 선보인 데이터베이스 서비스입니다. ASM은 하나의 SMP 장비 뿐만 아니라, RAC을 구성하는 모든 노드들에 대해서도 지원이…

Automatic Shared Memory Management (ASMM)

오라클 데이터베이스에서 사용되는 중요한 공유메모리의 관리를 자동화 해주는 기능입니다. 즉, 해당 파라미터의 지정이 필요 없게 되었습니다. 게다가, 가용한 메모리를 효율적으로 사용할 수 있게 합니다. 예를 들어, OLTP 작업이 낮에 발생하고…

Multiple Block size

Oracle 데이터베이스의 논리적 구조 중 최소의 단위는 데이터베이스 블록입니다. 데이터베이스 블록의 크기는 운영체제 블록 크기의 정수 배로 정의됩니다. Oracle 서버의 모든 I/O는 데이터베이스 블록 단위로 이루어 짐을 감안할 때 블록의…

listener.ora 설정

Listener.ora 이란? 클라이언트에서 서버로 접속할 때 필요한 정보들을 설정해 주는 파일로서 서버에만 설정합니다.     파일 위치 Single DB = $ORACLE_HOME/network/admin RAC=$GRID_HOME/network/admin     LISTENER =         (DESCRIPTION_LIST =               …

tnsnames.ora 설정

TNSNAMES.ORA란 클라이언트에서 서버로 접속할 때 필요한 서버의 정보를 기입하는 파일입니다.     파일 위치 Single DB = $ORACLE_HOME/network/admin RAC=$GRID_HOME/network/admin     ORCL(ALIAS) =         (DESCRIPTION =               (ADDRESS_LIST =                   …

AWR 재구성하는 방법

오라클은 기본적으로 AWR SNAPSHOT을 주기적으로 생성합니다. SYSAUX Tablespace 의 공간에도 문제가 없었고, DB자체에도 문제가 없었는데 Snapshot 이 생성이 되지 않는 경우가 발생하였던 적이 있습니다. 아예 발생하지 않은게 아니라 드문드문 생성이…

tnsping 사용하는방법

TNSPING 이란     OS에서는 PING 을 이용해서 해당 IP와 통신이 되는지 확인 할 수 있습니다. TNSPING은 오라클에서 제공하는 기능으로 클라이언트에서 서버로 접속을 할 때 PING은 되지만 Orange나 Toad로 접속이…

sshsetup 사용하는 방법

ORACLE RAC 구축시 ORACLE OS USER간의 SSH 통신이 비밀번호 없이 ssh host_name 을 통해 이루어져야 합니다.     흔히 ssh-keygen 을 이용해서 사용하는데 Oracle에서 제공 하는 sshsetup을 통해서도 간편하게 구성할…

Multi-version Read Consistency

오라클 데이터베이스의 multi-version read consistency는 항상 일관되고 정확한 읽기 결과를 제공합니다. 어느 트랜잭션이 데이터를 변경하면 원래의 데이터 값은 데이터베이스의 undo 레코드에 기록이 되며, 아래 그림과 같이 오라클 데이터베이스는 이 값들을…

Automatic Undo Management

Oracle 서버는 Commit 되지 않은 트랜잭션을 Rollback 시키기 위해, 데이터베이스의 복구 과정을 위해, 그리고 동시 사용자 환경에 필요한 읽기 일관성의 보장을 위해 롤백 정보 또는 Undo 정보를 관리합니다. 이러한 Undo…

Oracle-Managed Files

오라클 데이터베이스는 궁극적으로 운영체제 상의 파일에 데이터를 저장합니다. 따라서 다수의 데이터베이스 작업은 파일과 관련되며, 그 경우 SQL 명령 등에 파일에 관한 명세를 주어야 합니다 Oracle은 파일 생성, 삭제 등 관리를…

Segment shrinking

Oracle Database 9i까지는 세그먼트 HWM이하에 할당된 공간은 오직 세그먼트를 이관하거나 재 정의할 때 반납되었습니다. Oracle Database 10g부터는 세그먼트의 빈 공간을 shrink 할 수 있습니다. 세그먼트가 shrink 될 때, 그 데이터는…

SYSAUX Tablespace 사이즈 예상하기

$ORACLE_HOME/rdbms/admin/utlsyxsz.sql 간단한 인터뷰를 통해 SYSAUX의 사이즈를 예상 할 수 있다(보관주기, interval 등)         전문 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SYSAUX Size Estimation Report ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     Estimated at 13:16:38 on Jan…

ORACLE Log Miner

 # Oracle Log Miner(8i 등장) -Log Miner 유틸리티는 Redo Log file에 있는 내용을 추출해서 SQL 문장으로 변환해줍니다. -데이터베이스에서 변경된 내역을 트랜잭션, 사용자, 테이블, 발생시간대 별로 추적할 수 있습니다. 아래와 같은…

Hugepages 설정 방법

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

오라클 11g 설치 for windows

[1] Oracle 11g 설치 (1) 아래 주소에서 OS에 맞는 11g Release 2 Express Edition을 클릭한다. (스크롤 내리면 최 하단에 위치함) https://www.oracle.com/database/technologies/oracle-database-software-downloads.html (2) 아래의 설치 파일 클릭하여 다운로드 (3) 설치된 경로로…