분류전체
홈 > 블로그 > 분류전체
'분류전체'에 해당되는 글이 총 277건 있습니다
2012-02-22 공지사항 - [당첨자 발표]KDUG 회원 정보 업데이트 이벤트...  (34) Hot
2012-02-21 기타 - [News] 2012년 4월 30일, DB2 버전 9.1에 대한 지원 종료... Hot
2012-02-17 공지사항 - [KDUG 매거진 34호] IBM Champion에 도전하십시오!... Hot
2012-02-17 KDUG Event - [DB2 퀴즈 이벤트][당참자 발표] IBM의 빅 데이터 분석을 위한 새로운 기술...  (16) Hot
2012-02-15 공지사항 - [News]IBM Champion에 도전하십시오! Hot
2012-02-14 IT 컬럼 - 조기 경고, 신속한 수정 Hot
2012-02-13 공지사항 - [구인] [한국아이시스] DB2 운영 및 기술 지원 ... Hot
2012-02-01 기타 - [News] 2012 IM Big Data 매거진 편찬 Hot
2012-02-01 기타 - [News] 2012 Korea IOD 세미나가 열립니다. 지금 등록하세요!... Hot
2012-01-30 KDUG Event - KDUG 회원 정보 업데이트 이벤트 Hot
DataStage를 사용하여 DB2에서 오라클로 혹은 오라클에서 DB2로 마이그레이션 하기 – part 1, 아키텍처 비교   Hot
DB2 Tips  | 2012-01-03 15:45:56  

DataStage를 사용하여 DB2에서 오라클로 혹은 오라클에서 DB2로 마이그레이션 하기 part 1, 아키텍처 비교

원문 출처 : http://bit.ly/vMEJKJ

 

시간이 지날수록 대부분의 프로젝트는 요구사항에 따라 새로운 환경으로 이동하거나 노후된 환경에서 업그레이드를 하게 됩니다. 프로젝트에서 데이터베이스를 바꾸는 것은 일반적인 일입니다. 다음과 같은 구조로 된 DWH에서 작업한 필자의 경험을 통해 마이그레이션 과정을 설명드리고자 합니다.

 

OS-AIX

Database-DB2(DWH Database)

ETL Tool –DataStage

 

새로운 프로젝트 구현에 아래와 같은 새로운 요구사항을 받았습니다.

OS-AIX

Database-Oracle10G

ETL Tool-DataStage

 

오라클 DB로만 구성된 OLD 환경과 동일하게 구축하는 것은 처음이였습니다.

 

코딩을 많이 한다거나 새로운 DataStage 작업 생성 없이 DB2에서 오라클로 DataStage 작업을 전환하는 것은 가장 어려운 과제였습니다.

 

DB2와 오라클의 상세한 오브젝트 및 차이점을 알아보겠습니다.

 

IBM DB2 UDB

Oracle

Database

Database

Table Space

Tablespace

Schema

User

User

User

Group

Role

Table

Table

Typed Table

Object Table

Temporary Table

Temporary Table

Index

Index

Check Constraint

Check Constraint

Column Default

Column Default

Unique Key

Unique Key

Primary Key

Primary Key

Foreign Key

Foreign Key

UDB SQL Procedure

PL/SQL Procedure

UDB SQL Function

PL/SQL Function

UDB Package

PL/SQL Package

UDB Trigger

PL/SQL Trigger

Table Alias

Public Synonym

Sequence

Sequence

View

View

Typed View

Object View

Identity Column

Auto Increment Column

Structured Data Type

Abstract Datatype

Datalink

Binary File

Tables containing structured data type

Table containing abstract datatype

View containing structured data type

View containing abstract datatype

Stored Procedure

Stored Procedure

Function

Function

 

위에서 대부분의 오브젝트를 찾을 수 있으나, 가장 중요한 것은 “users” 입니다. 이는 문제가 어디에 있는지 파악합니다. User 및 스키마에 대해 상세히 다뤄보겠습니다.

 

오라클 데이터베이스 아키텍처

오라클 데이터베이스는 2개 기본 컴포넌트를 포함하고 있습니다.

 

1. 인스턴스 : 인스턴스를 구성하는 메모리 구조 및 백그라운드 프로세스

2. 데이터베이스 : 디스크 리소스

 

인스턴스

위에서 다룬 바와 같이, 인스턴스는 메모리 구조 및 배경 프로세스로 구성됩니다. 메모리 구조는 자체적으로 시스템 글로벌 영역(SGA), 프로그램 글로벌 영역(PGA) 및 선택적으로 설정하는 영역(소프트웨어 영역 코드:SAC)으로 구성되어 있습니다. 반면에 필수 백그라운드 프로세스에는 데이터베이스 작성기(DBWn), 로그 작성기(LGWR), 체크포인트(CKPT), 시스템 모니터(SMON) 및 프로세스 모니터(PMON)가 있습니다. 또한 선택적인 사항 인 백그라운드 프로세스에는 아카이버 (ARCn), 리커버러(RECO) 등이 있습니다. 참고 자료 2에 있는 그림 2는 인스턴스에 컴포넌트에 대한 관계를 표시합니다.

 

메모리 구조

시스템 글로벌 영역
SGA
는 기본 메모리 구조입니다. 오라클 DBA가 말하는 메모리는 일반적으로 SGA를 의미합니다. 이 영역은 일부 메모리로 나눠지며 버퍼 캐시, 공유 풀, 리도 로그 버퍼, 라지 풀 및 자바 풀로 구성되어 있습니다.

 

l         버퍼 캐쉬
버퍼 캐쉬는 데이터 파일에서 검색된 데이터 블록의 복사본을 저장하는데 사용됩니다. 이는 사용자가 데이터베이스에서 데이터를 검색하는 경우 데이터를 버퍼 캐시에 저장하게 됩니다. 버퍼 캐시의 크기는 init.ora 초기화 매개변수 파일에 있는 DB_CACHE_SIZE 매개변수를 통해 조작할 수 있습니다.

 

l         공유 풀
공유 풀은 두개 작은 메모리인 라이브러리 캐쉬와 딕셔너리 캐쉬로 나뉩니다. 라이브러리 캐쉬는 공통으로 사용되는 SQL PL/SQL 구분에 대한 정보를 저장하는데 사용되며, LRU(Least Recently Used) 알고리즘으로 관리됩니다. 또한 사용자들 간에 구문을 공유할 수 있습니다. 반면에 딕셔너리 캐쉬는 데이터베이스에 있는 컬럼, 테이블, 인덱스, 사용자, 권한 등과 같은 오브젝트 정의에 대한 정보를 저장하는데 사용됩니다. 공유 풀의 크기는 init.ora 초기화 매개변수 파일에 있는 SHARED_POOL_SIZE 매개변수를 통해 설정할 수 있습니다.

 

l         리도 로그 버퍼
사용자가 실행한 각 DML 구문(삽입, 수정 및 삭제)이 리도 항목을 생성합니다.  리도 항목이란 사용자가 만든 모든 데이터 변경 사항에 대한 정보입니다. 리도 항목은 리도 로그 파일에 작성되기 전에 리도 로그 버퍼에 저장됩니다. 리도 로그 버퍼의 크기를 조작하는데, init.ora 초기화 매개변수 파일에 있는 LOG_BUFFER 매개변수를 사용할 수 있습니다.

 

l         라지 풀
라지 풀은 SGA에 메모리를 선택적으로 설정하는 영역입니다. 공유 풀의 부담을 덜어주는데 사용되며, 또한 I/O 프로세스를 위해 사용됩니다. 라지 풀의 크기는 init.ora 초기화 매개변수 파일에 있는 LARGE_POOL_SIZE 매개변수로 설정할 수 있습니다.

 

l         자바 풀
자바 풀은 자바 명령어의 파싱 서비스를 위해 사용됩니다. 자바 풀의 사이즈는 init.ora 초기화 매개변수 파일에 있는 JAVA_POOL_SIZE로 설정할 수 있습니다.

프로그램 글로벌 영역
SQL
구문 파싱의 결과가 라이브러리 캐시에 저장되어 있더라도 바인딩 변수 값은 PGA에 저장됩니다. 개인용으로 사용하거나 혹은 사용자 간에 공유되지 않아야 하기 때문입니다. PGA는 정렬 영역에도 사용됩니다.

l         소프트웨어 영역 코드
소프트웨어 영역 코드는 Oracle 응용 프로그램 소프트웨어가 상주되어 있는 메모리 위치입니다.

 

오라클 백그라운드 프로세스
오라클 백그라운드 프로세스는 메모리와 함께 작동하는 뒤에 숨겨진 프로세스입니다.

 

l         DBWn
데이터베이스 작성기(DBWn) 프로세스는 버퍼캐쉬에서 데이터파일로 데이터를 작성하는데 사용됩니다. 오래전에 데이터 작성기는 DBWR 이라고 했습니다. 일부 오라클 버전이 하나 이상의 데이터베이스 작성기를 보유하는 것을 허용한 이후로, 이름이 DBWn으로 변경되었습니다. n의 값은 숫자 0에서 9까지 사용 가능합니다.

l         LGWR
로그 작성기(LGWR) 프로세스는 DBWn과 비슷합니다. 리도 로그 버퍼에서 리도 로그 파일로 리도 항목을 작성합니다.

l         CKPT
체크포인트(CKPT) DBWn에 신호를 보내는 프로세스이며, 데이터파일에 버퍼 캐쉬에 있는 데이터를 작성합니다. 또한 로그 파일 전환이 발생할 때 데이터파일 및 제어 파일 헤더를 업데이트합니다.

l         SMON
시스템 모니터(SMON) 프로세스는 데이터파일에 리도 로그 파일에 있는 항목을 적용하여 시스템 크랙 또는 인스턴스 장애를 복구하는데 사용됩니다.

 

l         PMON
프로세스 모니터(PMON)는 프로세스는 트랜잭션 롤 백 및 다른 리소스를 해제하여 작업 실패된 프로세스를 정리하는 데 사용됩니다.

 

데이터베이스

데이이터베이스는 디스크 리소스를 참조하고 두개의 기본 구조인 논리적 구조 및 물리적구조로 나뉩니다.

논리적 구조
Oracle
데이터베이스는 관리, 저장 및 효율적인 데이터 검색을 위해 작은 논리 단위로 구분 됩니다. 논리적 단위는 테이블스페이스, 세그먼트, 범위 및 데이터 블록입니다. 참고 자료 1에 있는 그림 3은 이러한 단위 사이에 관계를 표시합니다.

 

l          테이블스페이스
테이블스페이스는 논리적 데이터베이스 오브젝트 그룹입니다. 데이터베이스는 하나 이상의 데이블스페이스가 있어야 합니다. 참고 자료 1에 있는 그림 3에서 3개의 테이블 스페이스인 시스템 테이블스페이스, 테이블스페이스 1 및 테이블스페이스 2가 있습니다. 테이블스페이스는 하나 이상의 데이터파일로 구성됩니다.

l          세그먼트
테이블스페이스는 세그먼트로 다시 나뉩니다. 세그먼트는 동일한 오브젝트 유형을 저장하는데 사용됩니다. 데이터베이스의 모든 테이블은 데이터 세그먼트라고 하는 특정 세그먼트에 저장되고 데이터베이스의 모든 인덱스 또한 인덱스 세그먼트라고 하는 자체 세그먼트에 저장됩니다. 다른 세그먼트 유형으로 임시 세그먼트 및 롤백 세그먼트가 있습니다.

 

l          범위
세그먼트는 범위로 다시 나뉩니다. 범위는 하나 이상의 데이터 블록으로 구성됩니다. 데이터베이스 오브젝트가 확대되면 범위가 할당됩니다. 테이블 스페이스 또는 세그먼트와 달리 범위는 이름이 지정될 수 없습니다.

l          데이터 블록
데이터 블록은 오라클 데이터베이스 스토리지의 가장 작은 단위입니다. 데이터 블록 크기는 테이블스페이스 내의 특정한 바이트 수이며, 동일한 바이트 수를 가지고 있습니다.

물리적 구조
물리적 구조는 사용자가 직접 조작할 수 없는 오라클 데이터베이스(이 경우 디스크 파일)의 구조입니다. 물리적 구조는 데이터파일, 리도 로그 파일 및 제어 파일로 구성됩니다.

l          데이터파일
데이터파일은 테이블스페이스와 대응하는 파일입니다. 하나의 데이터파일은 하나의 테이블스페이스에서 사용될 수 있으나, 하나의 테이블스페이스는 하나 이상의 데이터파일을 가질 수 있습니다.

l          리도 로그 파일
리도 로그 파일은 DML 구문으로 생성된 리도 항목을 저장하는 파일입니다. 복구 프로세스를 위해 사용할 수 있습니다.

l          제어 파일
제어 파일은 데이터파일 크기 및 위치, 리도 로그 파일 위치 등과 같은 데이터베이스의 물리적 구조에 대한 정보를 저장하는 데 사용됩니다.

 

DB2 데이터베이스 아키텍처

데이터베이스 관리자 서버(DAS) : 항상 실행 되어야 합니다. 전체 서버에 하나의 사용자만 있으며, 사용자가 다운되면 DB2 서버도 다운될 것입니다.

 

인스턴스(db2inst1) : 내부에 다수의 데이터베이스를 가질 수 있는 인스턴스입니다. DB2는 하나의 DB2 서버에 하나 이상의 인스턴스를 가질 수 있습니다.

사용자 분리(db2fence) : 데이터베이스에 있는 함수 및 프로시저를 실행하는 데 사용됩니다.

 

데이터베이스 : 데이터베이스는 디스크 리소스를 참조하고 두개의 기본 구조인 논리적 구조 및 물리적 구조로 나뉩니다. 

 

참고 자료

1. ORACLE 아키텍처 및 용어 http://ugweb.cs.ualberta.ca/~c391/manual/chapt2.html

2. Oracle9i 데이터베이스 개념 http://docs.oracle.com/cd/B10500_01/server.920/a96524/c08memor.htm

3. DB2 아키텍처 소개 http://www.craigsmullins.com/db2intro.htm

4. DB2 아키텍처 및 프로세스 개요 http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topi...

5. 스키마용 데이터 정의 명령문 생성 http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=...

6. DB2 튜토리얼 http://research.cs.queensu.ca/home/cisc332/db2-tutorial.pdf

7. DB2 필수 안내서 : http://www.michael-thomas.com/tech/db2/db2_survival_guide.htm

8. DB2 9.5에서 멀티스레드 아키텍처 구현 방법 : http://www.ibm.com/developerworks/data/library/techarticle/dm-0807k...

 

 
KDUG  
트랙백 : 0 댓글: 0
내블로그주소 :
 1 ㆍ 2 ㆍ 3 ㆍ 4 ㆍ 5 ㆍ 6 ㆍ 7 ㆍ 8 ㆍ 9 ㆍ 10 ㆍ 11 ㆍ 12 ㆍ 13 ㆍ 14 ㆍ 15 ㆍ 16 ㆍ 17 ㆍ 18 ㆍ 19 ㆍ 20 ㆍ Next  
분류전체보기
공지사항 (60)
DB2 자료 공유 (69)
기타 (57)
IT 컬럼 (14)
KDUG Event (27)
DB2 Tips (52)
[당첨자 발표]KDUG 회... (34)
[News] 2012년 4...
[KDUG 매거진 34호]...
[DB2 퀴즈 이벤트][당... (16)
[News]IBM Cham...
Total : 493,168
today:269 | Yesterday:498
 
이용약관    |    개인정보보호정책    |    운영자메일  
KDUGDB2 LUW 9.5 기반에서 운영되고 있습니다.