뽁
DB2 TO MSSQL 데이터 이관 방법, MSSQL BCP 이용 본문
DB2 데이터를 MSSQL 2017로 전환하는 방법.
사전 준비 작업
MSSQL BCP 를 이용하기 위해 "MsSqlCmdLnUtils.msi" 를 전환 작업을 할 PC에 설치한다.
데이터 이관 프로세스
데이터 전환 순서
1. Create Table - Target DB에 Staging Table 생성. CREATE TABLE dbo.ZMIG_table_name
2. export - Source DB에서 데이터 추출해서 table_name.txt 파일로 생성
3. export data - table_name.txt 파일 저장 경로
4. clear import table - Target DB에 Staging Table 클리어. TRUNCATE TABLE dbo.ZMIG_table_name
5. import - Target DB Staging Table에 table_name.txt 데이터 로드. MSSQL BCP 이용.
6. check import - Staging Table 로드된 데이터 건수, 날짜 형식 등 확인.
7. migration - Target DB Staging Table 에서 Main Table 로 데이터 이행. CTAS 이용.
8. check migration - Main Table 데이터 건수, 날짜 형식 등 확인
데이터 전환 상세
1. Create Table
Target DB에 Staging Table 를 생성한다. 테이블 생성 스크립트는 "01.create table" 디렉토리에 저장한다.
테이블 스키마는 설계 단계에서 작성된 "전화 매핑 정의서"를 참고하여 작성한다.
파일명은 "CREATE TABLE dbo.ZMIG_table_name.sql" 으로 한다.
2. export
Source DB에서 데이터 추출할 때 사용하는 SQL문을 작성한다. SQL문은 table_name.sql 파일로 "02.export" 디렉토리에 저장한다.
DBeaver 툴을 이용하여 DB2 데이터를 추출한다.
DBeaver 에서 SQL을 실행한 후
버튼을 클릭하면 아래처럼 Data Transfer 창이 뜬다.
한글깨짐을 방지하기 위해 CSV 형식을 지정하고 다음 버튼 클릭.
파일 확장자는 "txt", 구분자는 "^" 로 지정.
날짜 형식을 한국형 "YYYY-MM-DD HH24:MI:SS" 로 지정하고 Format의 Date는 "yyyy-mm-dd"로 셋팅한다.
export 파일 저장 경로를 정의하고 Ecnoding 을 "ECUKR"로 한다. "ECUKR"로 해야 한글깨짐이 없다
최종 확인하고 Start.
Export 파일을 메모장이나 UltraEdit 등으로 열었을 때 한글이 계속 깨질 경우
파일을 UTF-8에서 ASCII로 형식 변환을 한다.
MSSQL BCP에서 UTF-8을 지원하지 않기 때문이다.
3. export data - table_name.txt 파일 저장 경로
4. clear import table
Target DB Staging Table에 export 한 데이터를 로드하기 전에 기존 데이터를 삭제한다.
TRUNCATE TABLE dbo.ZMIG_table_name 로 삭제한다.
삭제하는 SQL 스크립트 파일명은 "TRUNCATE dbo.ZMIG_table_name.sql"으로 한다.
5. import
MSSQL BCP 이용하여 Target DB Staging Table에 export 한 table_name.txt 데이터를 로드한다.
import 스크립트는 "BCP_ZMIG_table_name.sql"로 한다.
6. check import
Staging Table에 로드된 데이터 건수, 날짜 형식 등 확인하여 import 작업이 잘 끝났음을 확인한다.
7. migration
Target DB Staging Table 에서 Main Table 로 데이터를 이행한다.
INSERT INTO db_name.dbo.table_name(column1, column2)
SELECT column1
,column2...
FROM dbo.ZIMG_table_name
;
INSERT SQL 스크립트 명은 "INSERT dbo.table_name.sql" 로 한다.
8. check migration
Main Table에 로드된 데이터 건수, 날짜 형식 등 확인하여 migration 작업이 잘 끝났음을 확인한다.
이상으로 현업에서 일한 경험으로 작성해보았습니다.
다음에는 inhouse로 개발한 전환 자동화 프로그램을 소개하겠습니다.
'IT Cafe+ > MS-SQL' 카테고리의 다른 글
SQL Server sendStringParametersAsUnicode=false (0) | 2020.08.28 |
---|---|
[MSSQL] 세계 시간(타임존, Time zone) 계산 함수(function) (0) | 2019.02.21 |
[MSSQL] 다국어 사용을 위한 방법. National JDBC (0) | 2018.12.26 |
[MSSQL] 다국어 - INSERT 시 N'컬럼값' 사용 (0) | 2018.12.12 |
[MSSQL] PIVOT을 이용한 행을 열로 만들기 (0) | 2016.08.17 |