반응형
[ 서 론 ]

Oracle 10g 에서 SQL Server 2005 Version 으로 마이그레이션 작업 진행을 회사에서 최근에 진행을 했다.

여타 다른 Tool을 사용 할 수 없는 환경에서 선택한 것은 오라클 10g 에 sqlplus로 접속하여 txt or csv 파일로 떨군 다음

mssql에서 사용한 것이다. 사용방법은 다음과 같다.

[ 본 론 ]

(1) Oracle10G 에서 sqlplus로 접속하여 backup_ori.txt 파일로 Export 하는 방법.

-------------------------
-- Export 실행 Script --
-------------------------
 SQL>
SET ECHO OFF
SET SPACE 0
SET PAGESIZE 0
set linesize 400
set colsep ','
SET FEEDBACK OFF
SET HEADING OFF
SET TRIMSPOOL ON
set Null ''
set rowsize 100
spool backup_ori.txt;
SELECT * FROM TEST_TABLE;
spool off;


(2) backup.txt 파일에서 불필요한 데이터를 삭제 하여 backup_backup.txt파일을 생성한다.

 -------------------------
-- Unix 실행 Script --
-------------------------
sed '1,1d' ./backup_ori.txt> backup_temp1.txt
sed '$d' backup_temp1.txt> backup_temp2.txt
awk '{printf("%s", $0)}' backup_temp2.txt> backup_backup.txt
rm -rf ./backup_ori.txt./backup_temp1.txt./backup_temp2.txt

(3) SQL Server 2005 Version 에서 backup_backup.txt파일을 Bulk Insert 문을 이용하여 Insert 한다.

 -------------------------
-- MS-SQL 실행 Script --
-------------------------
BULK INSERT dbo.tb_drm_dosirak_stats
   FROM 'c:\backup_backup.txt'
   WITH
     (
   DATAFILETYPE = 'char',
   FIELDTERMINATOR ='|',
   ROWTERMINATOR ='#',
    KEEPNULLS,
   TABLOCK
      )


(4) 위 처럼 하면 정상적으로 Insert가 이루어진다. 속도도 타 Tool을 이용하는 것 보다 현저히 빠른 스피드로 Insert 할 수 있습니다.

[ 결 론 ]

Migration의 방법은 여러가지가 있다. 실제 Field에 나가면 주어진 제약 환경에서 작업 환경은 아주불리하다 왜냐하면 해당 업체의 DBA는 매우 까칠하기 때문이다.

결국 프로그래머 입장에서는 이렇게 치사하고 좀 별루 대단하진 않지만, 이런 방법으로 진행 할 수 밖에 없는 현실이 고달프다.


흑... 역시 갑이 되어야 일을 잘 할 수 있따.


이상 랑이의 마이그레이션 방법 이었다.

                                                                                                                    -- 2010.05.26 새벽 1시에 공부한 글 --


반응형

+ Recent posts