오라클 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 |