오라클 서버 변경으로 인해 기존 서버(10g)에서 변경 서버(11g)로 백업후 복원을 진행하려고 합니다.
일단 테스트로 테이블 하나만 진행해보니
방법1. export실행
C:\Documents and Settings\Administrator>exp 계정/비번 tables=(테이블1,테이블2) file=d:\exp_test.dmp
Export: Release 10.2.0.4.0 - Production on 수 7월 22 17:02:27 2015
Copyright (c) 1982, 2007, Oracle. All rights reserved.
다음에 접속됨: Oracle Database 10g Release 10.2.0.4.0 - Production
KO16MSWIN949 문자 설정과 UTF8 NCHAR 문자 설정에서 엑스포트가 종료되었습니다
서버는 KO16KSC5601 문자 집합을 사용합니다 (문자집합 변환이 가능합니다)
지정된 테이블을 엑스포트하려고 합니다 via 규정 경로...
. . 테이블 테이블1(를)을 엑스포트 중
EXP-00008: ORACLE 오류 6552이(가) 발생했습니다.
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다
. . 테이블 테이블2(를)을 엑스포트 중
EXP-00008: ORACLE 오류 1003이(가) 발생했습니다.
ORA-01003: 해석된 문이 없습니다
엑스포트가 경고를 보이며 성공적으로 끝났습니다
방법2. expdp 실행
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:\Documents and Settings\Administrator>expdp 계정/비번 DIRECTORY=dpump_dir
2 tables=테이블 DUMPFILE=test_201507.dmp logfile=test_201
507.log
Export: Release 10.2.0.4.0 - Production on 수요일, 22 7월, 2015 16:26:13
Copyright (c) 2003, 2007, Oracle. All rights reserved.
접속 대상: Oracle Database 10g Release 10.2.0.4.0 - Production
ORA-39006: 내부 오류
ORA-39065: DISPATCH에 예상치 않은 마스터 프로세스 예외 사항 발생
ORA-00600: 내부 오류 코드, 인수 : [kokle_lob2lob13:input mismatch], [1], [], [],
[], [], [], []
ORA-39097: 데이터 펌프 작업에서 예상치 않은 오류 -600 발생
위와 같은 오류가 발생합니다. 게시판을 검색해 보니 캐릭터셋이 중복등록(?)된 문제라고 하여 확인해 보니 아래와 같습니다.
select distinct(nls_charset_name(charsetid)) CHARACTERSET, decode(type#, 1, decode(charsetform, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'), 9, decode(charsetform, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'), 96, decode(charsetform, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'), 112, decode(charsetform, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN from sys.col$ where charsetform in (1,2) and type# in (1, 9, 96, 112) order by types_used_in;
기존 서버(10g) | 변경 서버(11g) | ||
AL32UTF8 | CHAR | KO16KSC5601 | CHAR |
KO16KSC5601 | CHAR | KO16KSC5601 | CLOB |
AL32UTF8 | CLOB | AL16UTF16 | NCHAR |
UTF8 | NCHAR | AL16UTF16 | NCLOB |
UTF8 | NCLOB | AL16UTF16 | NVARCHAR2 |
AL16UTF16 | NVARCHAR2 | KO16KSC5601 | VARCHAR2 |
UTF8 | NVARCHAR2 | ||
AL32UTF8 | VARCHAR2 | ||
KO16KSC5601 | VARCHAR2 |
캐릭터셋만 변경하면 해결될것으로 보이나 문제는 캐릭터셋 변경시 접속이 안되거나 기존 데이터가 깨지는등의 문제가 발생할 수 있다고 하여 망설여집니다.
1. 그냥 진행(캐릭터셋 변경)해도 별 문제 없을까요? 변경하는 방법은 검색으로 확인했습니다.
2. 캐릭터셋 변경에 따른 문제사항 및 변경에 관한 부분만 도움을 받을수 있는 업체가 있나요? 이것만 해결되면 백업/복원은 개발팀에서도 가능할듯 싶어서요.