티스토리 뷰
환경
MySQL : 5.0.89, AIX 6.1
Informix : 11.50.FC9, AIX 6.1
MySQL의 BLOB데이터를 Informix로 마이그레이션 해보았습니다.
샘플 테이블 및 데이터 생성 (MySQL)
echo "create table blotest(a int, b blob)" | mysql -u user -ppassword test
echo "insert into blobtest values (2,load_file('/home/mysql/logo.gif'))" | mysql -u user -ppasswd test
처음에는 mysqldump의 --hex-blob, --tab 옵션으로 데이터를 추출하였으나 구분자가 있는 형태로 추출했을 때 hex형태로 추출되지 않아
아래와 같이 OUTFILE문으로 추출했습니다.
echo "SELECT a,hex(b) INTO OUTFILE '/home/mysql/blobtest.txt' FIELDS TERMINATED BY '|' LINES TERMINATED BY '|\n' FROM blobtest;" | mysql -u user -ppasswd test
위와 같이 MySQL에서 OUTFILE로 데이터를 추출하면 NULL값은 \N으로 추출되기 때문에 이에대한 처리가 필요합니다.
그리고 인포믹스의 구분자 파일에는 레코드 끝에 구분자가 있으므로 LINES TERMINTAED BY를 '|\n' 으로 했습니다.
MySQL에서는 hex값의 알파벳이 대문자로 추출되는 반면 인포믹스는 소문자로 추출되는데, 로드할 때 문제는 없었습니다.
인포믹스에 BLOB 데이터를 입력할 테이블 생성 (Informix)
echo "create table blobtest (a byte)" | dbaccess stores_demo
echo "create table blobtest1 (a blob)" | dbaccess stores_demo
인포믹스에 BLOB 타입에 입력할때는 구분자 파일과 BLOB파일이 별도로 존재하므로 우선 BYTE 타입에 먼저 입력후 BLOB으로 변환하여
다시 입력하는 순서로 진행했습니다.
echo "load from /home/mysql/blobtest.txt insert into blobtest" | dbaccess stores_Demo
echo "insert into blobtest1 select b::blob from blobtest" | dbaccess stores_demo
GUI 툴로 확인한 결과 이미지가 잘 입력되었음을 확인할 수 있었습니다.
How to migrate large blob table from mysql to postgresql?
http://dba.stackexchange.com/questions/4211/how-to-migrate-large-blob-table-from-mysql-to-postgresql
Migrate a database from MySQL to IBM Informix Innovator-C Edition, Part 1: Comparing MySQL to IBM Informix Innovator-C Edition
http://www.ibm.com/developerworks/data/library/techarticle/dm-1102mysqltoinnovatorc/
Migrate a database from MySQL to IBM Informix Innovator-C Edition, Part 2: Step-by-step walk-through of the migration process
http://www.ibm.com/developerworks/data/tutorials/dm-1102mysqltoinnovatorc2/index.html
- Total
- Today
- Yesterday