오라클 character set 변경 하는 방법은 다음과 같습니다. (참조 Note 260192.1)

 

1. DB character 확인

SELECT value FROM NLS_DATABASE_PARAMETERS WHERE parameter='NLS_CHARACTERSET'

(NLS_CHARACTERSET은 char, varchar2, long, clob 데이터 타입에 characterset를 정의)

 

2. oracle 12c : DMU tool 사용 ( Note 1272374.1 )

 

3. oracle 10g/11g : csalter (or DMU) tool 사용

   Csscan and Csalter combined with partial Export / Import 

 

   

   1) csscan install  (csscan character set 전환이 가능한지 check)

      - $ORACLE_HOME/rdbms/admin/csminst.sql    ( 생성 schema : CSMIG )

      - 체크할 DB가 대용량일 경우 테이블 스페이스 변경  ( system -> csmigtbs )

        alter user csmig default tablespace csmigtbs quota unlimited on csmigtbs;

 

   2) csscan 동작 테스트

      - csscan TABLE='(SYS.SQL_VERSION$)' fromchar=us7ascii tochar=us7ascii log=instchkc capture=no process=1 array=1024000

 

      # user에 대해 수행

      - csscan user='TEST' fromchar=KO16MSWIN949 tochar=UTF8  log=test  capture=n process=1 array=1024000

 

Type of scan command line 

User scan: csscan ... USER='\"DQu1\"' ... USER='"DQu1"' USER  -> "DQu1"
Table scan: csscan ... TABLE='(\"DQu1\".\"DQt1\")' ... TABLE=(\"DQu1\".\"DQt1\") TABLE -> "DQu1"."DQt1"
Column scan: csscan ... COLUMN='(\"DQu1\".\"DQt1\".\"DQcol1\")' ... COLUMN=(\"DQu1\".\"DQt1\".\"DQcol1\") COLUMN -> "DQu1"."DQt1"."DQcol1"
Exclude scan: csscan ... EXCLUDE='(\"DQu1\".\"DQt1\")' ... EXCLUDE=(\"DQu1\".\"DQt1\") n/a
Query: QUERY='\"DQcol1\">1' QUERY='"DQcol1">1' n/a

    3) csalter 수행 ( database character set 변경 _

    csscan 수행후 7일이내 수행하여 변경가능 ( csscan full=y 옵션을 수행해야 함 )

    csalter 수행시 작업 하는 1개 세션만 가능하며, rac일경우 cluster_database = false로 1개 인스턴스 가동

 

    sqlplus / as sysdba

    show parameter cluster_databae 

    show parameter job_queue_processes

    show parameter aq_tm_processes

    shutdown immediate

    startup restrict

    spool csalter.log

    purge dba_recyclebin

    @?/rdbms/admin/csalter.plb   (마지막 csscan으로 alter 수행)

    shutdown immediate;

    exit;

    sqlplus / as sysdba

    startup

 

    4) csalter 수행후 작업

    drop user csmig cascade;

    

    # invalid 객체 확인 compile

    SELECT owner,
    object_name,
    object_type,
    status
    FROM dba_objects 
    WHERE status ='INVALID'

 

    # 통계 정보 수집

    exec dbms_stats.gather_database_stats(degree=> '5')

 

4. oracle 9i 이하 : alter database character set 사용

   Csscan and " Alter database" combined with a partial Export / Import 

 

'RDB > Oracle' 카테고리의 다른 글

[hint] pq_distribute  (0) 2019.06.18
Oracle 테이블 상세내용 확인  (0) 2019.06.04
오라클 DB 패치 버전  (0) 2019.04.24
oracle 제품 가격  (0) 2019.04.11
oracle 12c varchar2 확장  (0) 2019.04.10

+ Recent posts