by 포동푸우 [DB 기타] Oracle DB 19c Characterset KO16KSC5601 AL16UTF16 [2022.12.16 00:30:43]
안녕하세요~ 혹시 좋은 방법을 알고 계실까 싶어서 질문하게 되었습니다.
환경 소개
- host_a 서버의 DB_A 는 Oracle 19c , Characterset AL16UTF16 이고
> 데이터 량이 상대적으로 적음
- host_b 서버의 DB_B 는 Oracle 19c , Characterset KO16KSC5601 입니다.
> 데이터 량이 많음
> DB_B 는 Characterset 을 변경할 수 없는 상황 입니다.
요구사항은
- DB_A 의 데이터를 DB_B Instance 에 합치려 합니다.
> DB_A ( AL16UTF16 ) 데이터 --> DB_B ( KO16KSC5601 ) 로 합침
- host_b 서버에 또 다른 DB Instance 를 만들기는 어렵습니다. 기존 DB_B 에 분리된 스키마로 합쳐야 합니다.
- Downtime, 한글바이트 차이 등은 상관 없습니다.
고민하는 찾고 있는 부분은
이럴 경우 DB_A 가 superSet 이라, DB_B 로 정상적으로 이관하지 못하는 Data 들이 있을텐데, 이 부분을 미리 확인할 수 있는 방법이 있을까요 ?
특정 함수를 수행하거나 Query 를 수행해서, KSC5601 로 가는 경우 깨지는 데이터를 확인 / 추출하려면 어떤 방법이 있을까요 ?
가능하다면 Table, Column 기준으로 문제가 생기는 데이터들을 미리 확인 / 추출하려면 어떤 방법이 있을까요 ?
함수 등을 제가 찾지 못하겠습니다.
도움 부탁드려요~~
'
제 질문 확인 과정에서 아래 내용을 알게 됬습니다. 다른 분들을 위해서 기록을 남깁니다.
양 DB 가 이미 19c 인 이유로 CSSCAN 은 버전이 낮아 쓰기 어렵고, DMU 도 " KO16KSC5601 --> AL16UTF16 " 이 가능하고 막상 필요한 " AL16UTF16 --> KO16KSC5601 " 는 지원을 하지 않습니다.
아래는 CSSCAN, DMU 에 대한 개요 입니다.
1. CSSCAN
- CSSCAN (Database Character Set Scanner utility)은 command-line utility로, database의 모든 character data를 체크하여 새로운 character set으로의 이관에 대한 summary report를 제공한다.
- Express edition을 제외한 모든 edition에서 사용 가능
- Oracle 12c 부터는 사용을 권장하지 않는다
> CSSCAN and CSALTER To Be Desupported after DB 11.2. (Doc ID 1418321.1)
> 12c WARNING: Possible Data Loss In Character Set Conversions (문서 ID 2241155.1)
2. DMU
- DMU(Database Migration Assistant for Unicode)는 scan/csalter보다 더 interative한 GUI based tool이며, 자동으로 Unicode character set (UTF8혹은 AL32UTF8)로의 migrate를 지원
- Oracle 12c 부터, 사용을 권장
> https://docs.oracle.com/database/121/DUMAG/preface.htm#DUMAG309
> The Database Migration Assistant for Unicode (DMU) Tool (문서 ID 1272374.1)