테스트 정보
AS - IS : 9i
TO -BE : 19.12
기존에 쓰던 DB의 데이터를 새로운 DB로 이관하는 내용이었습니다.
9i이므로 datapump(impdp/expdp) 는 사용불가,
서로 간의 링크도 연결이 되지 않는 상태.
그래서 EXP/IMP로 이관방법을 정했습니다.
근데 또하나의 문제가 있었습니다. 바로 DB간의 캐릭터셋이 다른것이었습니다.
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
AS-IS
PARAMETER VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_CHARACTERSET KO16KSC5601
TO-BE
PARAMETER VALUE
-----------------------------------------------------------------------------------------------
NLS_CHARACTERSET AL32UTF8
1 rows selected.
아래 글을 확인해보면 캐릭터 셋에 대한 기본적인 내용을 확인할 수 있습니다.
2020.04.20 - [Oracle/아키텍쳐] - Character Set
결론적으로는 KO16KSC5601 -> AL32UTF8 간 이관은 잘 수행되었고, 한글데이터의 바이트 처리(UTF의 경우 3bytes KO16KSC5601(MSWIN949)의 경우 2bytes)때문에 에러가 난 테이블에 한해서 컬럼 사이즈 증가작업을 수행하고 다시 시도 하여 이관을 완료하였습니다.
Source DB
1.EXP 수행
exp \'/ as sysdba\' file=xxx_211123.dmp tables=xxx log=xxx_211123.log
2.EXP 수행 후 dmp파일 Target DB로 전송
Target DB
3.테이블 메타데이터로 미리 테이블 생성(컬럼 사이즈 증가가 필요한 컬럼에 대해 미리 적용을 하기 위함)
생성을 위해선 REM을 제거하고 파일을 다듬는 과정이 필요합니다.
imp \'/ as sysdba\' fromuser=xxx touser=hr file=xxx_211123.dmp indexfile=test.sql
--test.sql 내용
REM CREATE TABLE "HR"."COL_TEST" ("ID" NUMBER, "NAME" VARCHAR2(4000),
REM "ADDRESS" VARCHAR2(4000), "SALARY" NUMBER) PCTFREE 10 PCTUSED 40
REM INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 4294967294 NEXT 1048576
REM MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "USERS" LOGGING NOCOMPRESS ;
REM ... 0 rows
현재 컬럼의 크기의 2배정도로 설정해서 증가해주었습니다.
ALTER TABLE hr.col_test ASK_TITLE VARCHAR2(200); -- (actual: 144, maximum: 100)
4.IMP 수행
ignore 옵션을 N으로 놓아서 IMP 시 테이블 생성이 되지 않게 했고,(이미 생성했기 떄문에) RESUMABLE=y옵션을 사용하여 용량부족이 발생했을 때 작업을 종료하지 말고 대기하도록 하였습니다.
imp \'/ as sysdba\' FROMUSER=xxx TOUSER=hr file=xxx_211123.dmp log=xxx_211123.log ignore=y RESUMABLE=y
mport: Release 19.0.0.0.0 - Production on Thu Nov 25 13:22:19 2021
Version 19.12.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0
Export file created by EXPORT:V09.02.00 via conventional path
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export client uses KO16KSC5601 character set (possible charset conversion)
IMP-00403:
. importing VOCUSER's objects into VCDMIG
. . importing table "VC_CHNL_ORG" 116 rows imported
. . importing table "VC_CHNL_ORG_MGR" 2371 rows imported
...생략
끝.
'Oracle > 이관' 카테고리의 다른 글
[EXPDP] QUERY 옵션 사용하여 원하는 데이터만 이관 (0) | 2022.01.20 |
---|---|
IMPDP remap_table 옵션 사용하여 이관시 인덱스에 대한 테스트 (0) | 2022.01.11 |
[이기종 DB Link 설정시 에러]ORA-28545: error diagnosed by Net8 when connecting to an agent (0) | 2021.11.22 |
ODBC를 활용한 Oracle ->Mysql DB Link (0) | 2021.04.12 |
IMPDP 시 스키마에 이미 같은 이름의 Table이 존재한다면?(TABLE_EXISTS_ACTION) (0) | 2021.02.24 |
댓글