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 |
---|