[참조]
http://rocksea.tistory.com/241
http://glory74.blogspot.kr/2014/07/oracle-database.html
https://dbacatalog.wordpress.com/2013/12/09/ora-12720-operation-requires-database-is-in-exclusive-mode/
http://withmule.tistory.com/2
[참조]
------------------------------------------------------------------------------
# 첫번째
1. client set
export NLS_LANG=KOREAN_KOREA.KO16KSC5601 #한글
export NLS_LANG=KOREAN_KOREA.KO16MSWIN949 #한글(추천:지원캐릭터가 더 많음 -뷃,숖..)
export NLS_LANG=AMERICAN_AMERICA.UTF8 #유니코드
2. db 환경변수 확인
select * from nls_database_parameters where parameter like '%CHARACTERSET%';
select VALUE$ from sys.props$ where name='NLS_LANGUAGE';
3. db 환경변수 변경
update props$ set VALUE$='UTF-8' where name='NLS_CHARACTERSET';
update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';
update props$ set VALUE$='KO16KSC5601' where name='NLS_CHARACTERSET';
update props$ set VALUE$='KOREAN' where name='NLS_LANGUAGE';
update props$ set VALUE$='KOREA' where name='NLS_TERRITORY';
4. shutdown 및 startup
shutdown immediate;
startup;
------------------------------------------------------------------------------
# 두번째
1. sysdba 접속
sqlplus / as sysdba
2. 일반 사용자의 세션 가능 제한 모드
alter system enable restricted session;
3. job_queue_processes 에 등록된 job 프로세스 정지
alter system set job_queue_proccesses = 0;
4. aq_tm_processes에 등록된 job 프로세스 정지
alter system set aq_tm_processes = 0;
5. db 오픈
alter database open;
6. 변경할 캐릭터 셋으로 변경
alter database character set internal_se KO16MSWIN949;
7. shutdown 및 startup
shutdown immediate;
startup;
------------------------------------------------------------------------------
# 이슈사항
EXP-00008: ORACLE 오류 6552가 발생했습니다
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다
캐릭터셋 확인 쿼리 :
select distinct(nls_charset_name(charsetid)) CHARACTERSET,
decode(type#, 1, decode(charsetform, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'),
9, decode(charsetform, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
96, decode(charsetform, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
112, decode(charsetform, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
from sys.col$ where charsetform in (1,2) and type# in (1, 9, 96, 112);
# 중복으로 설정된 변수 타입의 캐릭터셋이 있음. #
해결 방법 :
1. INIT.ORA 안에 있는 parallel_server parameter 가 false 거나 아예 세팅되어있지 않은지 확인.
SQL>show parameter parallel_server
2. sqlplus "/as sysdba"로 다음 쿼리 실행(기존 데이터 백업 필수)
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
COL VALUE NEW_VALUE CHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
COL VALUE NEW_VALUE NCHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
-- UTF8로 바꿀 경우(선택)
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
-- 한글로 바꿀 경우(선택)
ALTER DATABASE CHARACTER SET INTERNAL_USE KO16MSWIN949
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
-- oracle reboot 2번.
SHUTDOWN IMMEDIATE;
STARTUP;
SHUTDOWN IMMEDIATE;
STARTUP;
# 이슈사항 2
ERROR at line 1:
ORA-12720: operation requires database is in EXCLUSIVE mode
# 클러스터 중인 경우 위 에러 발생 #
alter system set cluster_database=FALSE scope=spfile sid='*';
shutdown immdeiate;
startup nomount;
alter system set cluster_database=TRUE scope=spfile sid='*';
shutdown immdeiate;
startup nomount;
'Study > DB' 카테고리의 다른 글
Oracle Procedure Or Function 확인 (0) | 2016.08.09 |
---|---|
Oracle sid 확인 (0) | 2016.08.05 |
Oracle DataBase Version 확인 Query. (0) | 2014.12.10 |
Oracle 다중 Row 를 한개의 Row 로 변형 (0) | 2014.03.14 |
Oracle Hex to Decimal, Decimal to Hex (0) | 2014.01.22 |