Oracle 19c 의 데이터를 Characterset Subset 인 DB 로 이관할 때, 이슈데이터 확인/추출 방법 0 3 4,699

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 기준으로 문제가 생기는 데이터들을 미리 확인 / 추출하려면 어떤 방법이 있을까요 ?  

함수 등을 제가 찾지 못하겠습니다. 

도움 부탁드려요~~ 

'

by 마농 [2022.12.19 14:49:51]

by 포동푸우 [2022.12.20 19:30:37]

마농님~ 답변 감사합니다. 


by 포동푸우 [2022.12.20 19:34:21]

제 질문 확인 과정에서 아래 내용을 알게 됬습니다. 다른 분들을 위해서 기록을 남깁니다. 
 
양 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)   
 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입