본문 바로가기

밥줄/DB

[DB] aexport, iloader (altibase)

aexport
데이터베이스의 객체 생성 스크립트와 데이터를 텍스트 파일로 다운로드할 수 있는 스크립트를 만들어주는 유틸리티

iloader
데이터베이스의 데이터를 '테이블 단위'로 다운로드 또는 업로드를 할 수 있는 유틸리티
보통 마이그레이션이나 백업의 용도로 많이 사용
aexport명령을 사용하면 iloader에 필요한 수행 명령을 스크립트로 생성해준다.

aexport 사용하는 법을 메모하려 했으나 관련 사이트에 친절하게 나와있었다 ;ㅅ; (감덩의 물결...)

$ aexport
Write Server Name (default:localhost) :          # 로컬에서 수행하는 경우는 엔터, 원격에 설치된 알티베이스 서버에 접속하는 경우는 IP 입력.
Write UserID :                                   # 데이터베이스 내 전체 객체를 백업할 경우는 sys 입력, 특정 유저의 객체만 백업할 경우는 해당 USER 입력
Write Password :                                 # USER 의 패스워드 입력

##### TBS #####
 
##### USER  #####
** input user ALTITEST's password(default - same with USER_NAME):            # UserID 에 sys 를 입력한 경우 데이터베이스 내 생성된 모든 USER 의 패스워드를 입력해야 합니다.
** input user USER1's password(default - same with USER_NAME): USER1         # 패스워드를 임의로 입력해도 백업 스크립트는 생성되지만 실제 iloader 백업시 패스워드가 일치하지 않으면 iloader는 실패 합니다. 또한 여기서 입력한 패스워드로 create user ~ identified by ~ 구문을 생성한다는 것을 알고 있어야 합니다.
** input user USER2's password(default - same with USER_NAME): USER2
 
##### SYNONYM #####
 
##### DIRECTORY #####
 
##### TABLE #####

##### QUEUE #####
 
##### SEQUENCE #####
 
##### DATABASE LINK #####
 
##### VIEW #####
 
##### MATERIALIZED VIEW #####
 
##### STORED PROCEDURE #####
 
##### STORED PACKAGE #####
 
##### TRIGGER #####
 
##### LIBRARY #####
 
##### REPLICATION #####
 
##### JOB #####
-------------------------------------------------------
  ##### The following script files were generated. #####
  1. run_il_out.sh            : [ iloader formout, data-out script ]
  2. run_is.sh                : [ isql table-schema script ]
  3. run_il_in.sh             : [ iloader data-in script ]
  4. run_is_refresh_mview.sh  : [ isql materialized view refresh script ]
  5. run_is_index.sh          : [ isql table-index script ]
  6. run_is_fk.sh             : [ isql table-foreign key script ]
  7. run_is_repl.sh           : [ isql replication script ]
  8. run_is_job.sh            : [ isql job script ]
-------------------------------------------------------

다른 내용들은 더 공부를 해야겠지만... 단순히 iloader를 위해 필요한 파일들은 4가지 정도!
- [TABLE_NAME].dat
타겟 테이블의 데이터가 들어있는 파일.
- [TABLE_NAME].fmt
타겟 테이블의 포맷이 정의되어있는 파일.
- run_il_out.sh
다운로드 쉘, 데이터를 빼올 때 필요한 명령어가 해당 스크립트 안에 작성되어 있다.
run_il_in.sh
업로드 쉘, 데이터들을 테이블 단위로 삽입할 때 쓰는 명령어가 해당 스크립트 안에 작성되어 있다.

# run_il_out.sh에서 테이블 형태 틀 빼올 때 필요한 fmt 명령어를 준비(테이블 형태 틀을 빼올 때 필요한 명령어)
iloader -s localhost -u [USER_NAME] -p [USER_PASSWD] formout -f [TABLE_NAME].fmt -T [TABLE_NAME]
 
# run_il_out.sh에서 현재 db에 있는 데이터들을 빼올 때 쓰는 명령어(백업용으로 많이 사용)
iloader -s localhost -u [USER_NAME] -p [USER_PASSWD] out -f [TABLE_NAME].fmt -d [TABLE_NAME].dat -log [TABLE_NAME].log
 
# run_il_in.sh 넣고싶은 데이터를 DB에 넣을 때 쓰는 명령어(데이터 넣는 명령어)
iloader -s localhost -u [USER_NAME] -p [USER_PASSWD] in -f [TABLE_NAME].fmt -d [TABLE_NAME].dat -log [TABLE_NAME].log -bad [TABLE_NAME].bad

하지만 다음 난관에 봉착하였다... (이 내용은 케바케이므로 그냥 참고용으로 읽으면 될 것 같다.)
내가 export한 데이터 파일은 altibase에서 뽑은 파일이 아니라 EnterpriseDB(postgreSQL)에서 뽑은 데이터 파일이였기 떄문에 데이터 구분자 포맷 형식이 완전히 다르다는 것... 2시간 뻘 짓을 또 하고야 말았다^^;

iloader -s 127.0.0.1 -u [USER_NAME] -p "[USER_PASSWD]" in -f [TABLE_NAME].fmt -d [TABLE_NAME].dat -t "^_col_^" -r "^_row_^%n" -log [TABLE_NAME].log -bad [TABLE_NAME].bad

당장 필요한 내용들로만 정리를 하였지만... iloader를 마스터하기 위해서 더 공부를 해야겠당ㅋㅋㅋ

참고
http://docs.altibase.com/pages/viewpage.action?pageId=7341698

'밥줄 > DB' 카테고리의 다른 글

[DB] Oracle MERGE INTO  (0) 2021.04.16