기존 오라클 DB에서 Postgresql로 데이터를 마이그레이션 하기위해 사용하는 Ora2Pg에 대해서 소개하고자 합니다.
Postgresql의 상용버전인 PPAS(Postgresql Plus Advance Server)는 별도의 마이그레이션 툴킷을 제공하고 있고
Postgresql용 마이그레이션 도구로는 SwissSQL이라는 상용툴이 있습니다.
Ora2Pg는 오픈소스 마이그레이션 도구로써 http://ora2pg.darold.net 에서 현재 8.13 버전까지 릴리즈가 되어 있습니다.
이번 포스트에서는 Ora2Pg를 설치하고 간단하게 설정하는 법에 대해서 설명하겠습니다.
1. 설치 및 환경 설정
Ora2Pg는 Perl로 작성이 되어 있기때문에 반드시 Perl이 설치되어 있어야 합니다. 또 한, 오라클 접속 드라이브를 설치해야 하기
때문에 Ora2Pg가 설치된 곳에는 Oracle 서버 혹은 클라이언트가 반드시 설치되어 있어야 합니다. Ora2Pg는 윈도우와 리눅스
두가지 플랫폼에서 사용 할 수 있지만 본 포스팅에서는 리눅스 기준으로 설명하도록 하겠습니다.(사실 윈도우도 크게 다르지 않습
니다. 저는 CentOS에 yum 을 통해 Perl을 설치하였습니다.
Perl설치가 끝나면 몇 가지 Perl 모듈을 설치해야 합니다. 모듈은 cpan을 통해 설치 할 수 있으며 cpan으로 모듈을 설치 하는 방법
은 구글링을 통해 쉽게 찾을 수 있으므로 본 포스트에서는 언급하지 않겠습니다. 아래는 설치해야할 모듈들 입니다.
- DBD::Oracle
- DBI::Oracle
- DBD::Pg
- Compress:Zlib
모듈 설치시 대소문자를 구분하기 때문에 정확하게 입력을 하셔야 설치가 됩니다. 여기까지가 끝났으면 .bash_profile을 열어서
Oracle이 설치된 경로를 환경변수로 설정해야 합니다. 제가 설정했던 .bash_profile은 아래와 같습니다.
ORACLE_BASE=/oracle;
|
Perl 설치와 Oracle 환경 변수 설정이 끝났으니 Ora2Pg를 설치해 봅시다. http://ora2pg.darold.net 에서 Ora2Pg를 다운 받아
압축을 풀고 아래와 같이 설치 합니다.
perl MakeFile.PL |
설치가 끝나면 /etc/ora2pg/에 ora2pg.conf 파일이 생성됩니다. 마이그레이션 할 항목 및 환경 설정을 하기위해 사용되는 파일로
타겟인 Oracle DB의 주소, 스키마, exoprt 할 타입( TABLE,DATA 등), 인덱스나 제약조건을 추출시 Drop 할건지 여부 등 다양한
옵션등을 지정 할 수 있습니다. 아래는 제가 설정했던 ora2pg.conf 파일입니다.
#################### Ora2Pg Configuration file ##################### # Support for including common config file that may containt any # Set this directive to a file containing PL/SQL Oracle Code like function, # Set the Oracle home directory # Set Oracle database connection (datasource, user, password) # Set this to 1 if you connect as simple user and can not extract things # Trace all to stderr # Export Oracle schema to PostgreSQL schema # Oracle schema/owner to use ...................... # Type of export. Values can be the following keyword: ...................... |
type 을 export 하는 기능은 환경설정말고 ora2pg를 실행할때 인자로 줄 수 있습니다.
자세한 설명은 설치 파트에서 설명해 드리겠습니다.
2. 실행
Ora2Pg는 변환된 SQL문을 Postgrsql 서버에 바로 삽입하거나 SQL문 형태로 파일로 변환 합니다.
ora2pg.conf 안에
#PG_DSN
#PG_USER
#PG_PWD
세가지 항목에 #을 제거하고 DB 주소 ID,패스워드를 입력하면 됩니다. 이 항목을 설정하지 않으면 변환된 SQL문을 파일로 만들어
줍니다. 제가 설정한 ora2pg.conf에는 export 할 내용을 TABLE로만 잡아 두었는데 DATA로 출력하고 싶을 경우 아래와 같이 인자
를 주면 됩니다.
ora2pg -t DATA -o DATA.sql
이렇게 명령을 주면 TABLE 관련 SQL문이 담긴 output.sql 파일과 데이타만 담긴 DATA.sql파일이 출력이 됩니다.
이번 포스팅은 여기서 마치고 다음 포스팅에서는 ora2pg.conf의 옵션 설명 및 실행 방법에 대해 좀더 자세히 설명 드리겠습니다.
'기술' 카테고리의 다른 글
블록체인 환경에서 난수 생성 - 1 (0) | 2019.04.22 |
---|---|
RANDAO (0) | 2019.04.15 |
블록체인에서의 난수 생성 (0) | 2019.03.28 |
탈중앙화(Decentralization)에 관하여 (0) | 2019.02.25 |
블록체인에 대한 단상 (0) | 2019.02.20 |