RDBMS/ORACLE & TIBERO
ORACLE PDB(Pluggable DB) characterset 변경
junsuyoun
2022. 12. 5. 11:20
728x90
반응형
ORACLE 12c 부터 CDB 환경을 사용한다면, CDB가 아닌 PDB로 서비스 하고 있을 가능성이 크다.
PDB의 characterset을 변경하는 것은 기존 CDB가 아닌 환경에서와 조금 다르며 하기 방법으로 가능하다
※ 개발용 테스트를 위해 작성하였으며 실 업무에서는 검토가 필요하다
- NLS_CHARACTERSET=AL16UTF8
- NLS_NCHAR_CHARACTERSET=AL16UTF16
UTF8에서 EUCKR 변경 진행, 데이터 없다는 전재하에 진행
- NLS_CHARACTERSET=KO16KSC5601
- NLS_NCHAR_CHARACTERSET=AL16UTF16
CDB 접속 및 PDB 확인
[oracle@56c517b8f964 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Mon Dec 5 02:00:46 2022
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
set pagesize 1000
set linesize 500
col name for a30
col open_mode for a10
col open_time for a50
SQL> select name, open_mode, open_time from v$pdbs;
NAME OPEN_MODE OPEN_TIME
------------------------------ ---------- --------------------------------------------------
PDB$SEED READ ONLY 07-NOV-22 05.32.42.299 AM +00:00
ORCLPDB1 READ WRITE 05-DEC-22 01.25.52.367 AM +00:00
PDB 접속
SQL> alter session set container=ORCLPDB1;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
ORCLPDB1
PDB 중지
SQL> shutdown immediate
Pluggable Database closed.
set pagesize 1000
set linesize 500
col name for a30
col open_mode for a10
col open_time for a50
SQL> SELECT NAME, OPEN_MODE, RESTRICTED, OPEN_TIME FROM V$PDBS;
NAME OPEN_MODE OPEN_TIME
------------------------------ ---------- --------------------------------------------------
ORCLPDB1 READ WRITE 05-DEC-22 01.25.52.367 AM +00:00
restricted 활성 및 PDB open 진행
SQL> alter system enable restricted session;
System altered.
SQL> alter database open;
Database altered.
PDB characterset 변경 진행
set linesize 300
col name for a30
col value$ for a30
SQL> select name, value$ from sys.props$ where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
NAME VALUE$
------------------------------ ------------------------------
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET AL16UTF8
SQL> alter database character set internal_use ko16ksc5601;
Database altered.
SQL> alter database character set ko16ksc5601;
Database altered.
set linesize 300
col name for a30
col value$ for a30
SQL> select name, value$ from sys.props$ where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
NAME VALUE$
------------------------------ ------------------------------
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET KO16MSWIN949
ERROR
- ORA-12719: operation requires database is in RESTRICTED mode
- alter system enable restricted session; 수행 후 진행 - ORA-00604: error occurred at recursive SQL level 1
ORA-01109: database not open
- alter database open; 수행 후 진행
위 처럼 PDB의 characterset을 변경하는 방법에 대해 알아 봤습니다.
ORACLE Multitenant Architecture CDB, PDB
기존 ORACLE은 1ENGINE에 1INSTANCE 구성으로 데이터베이스를 운영해왔습니다. (경우에 따라 환경 변수를 바꿔 1ENGINE에 여러개의 INSTANCE를 구성할 수 있지만, 권장은 아님) ORACLE 12c 부터 "Multitenant Architec
junsuyoun.tistory.com
728x90
반응형