database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 17321 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 17321
Oracle8에서의 character set 변경
작성자
정재익(xlib)
작성일
2004-02-11 19:57
조회수
13,271

No. 11546

여기에서 기술되는 사항은 공식적으로 지원되는 사항은 아니며, sql reference
manual에서도 언급되지 않은 사항입니다.

작업을 진행하기 전에 반드시 cold backup을 확보하시기 바랍니다.
현재 TEST DB인 o200 (IRIX64 6.4, oracle 8.0.4.1)과 krrcsun (SunOS 5.4,
oracle 8.0.4.0), NT oracle 8.0.5에서 TEST 한 결과 정확한 동작을 하고
있구요, 여타 다른 OS에서도 크게 이상이 없이 작업이 가능하리라 생각됩니다.


Oracle8에서의 character set 변경

oracle7에서는 SYS.PROPS$ table을 update하여 character set을 변경할 수
있었으나, oracle8에서는 character set에 대한 정보가 여러 곳에 저장되어 있어,
단순히 SYS.PROPS$ table을 update하는 것만으로 character set을 변경할 수는
없으며, 다음의 방법으로 character set 변경을 지원합니다.
여기에서 사용되는 command는 8.0.X version에서는 manual 상에 소개되지 않으며,
8.1.X version에서는 manual 상에 언급할 것이라고 합니다.

ALTER DATABASE [<db_name>] CHARACTER SET <new_character_set>
ALTER DATABASE [<db_name>] NATIONAL CHARACTER SET
 <new_NCHAR_character_set>

db_name은 optional이며 character set name은 single quotes 없이 그대로
사용됩니다.
예)  ALTER DATABASE CHARACTER SET KO16KSC5601;

Database의 character set을 변경하기 위해서는 아래의 절차대로 작업을
수행하시기 바랍니다.

SVRMGR> SHUTDOWN IMMEDIATE; -- or NORMAL

 < do a full backup >

SVRMGR> STARTUP MOUNT;
SVRMGR> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SVRMGR> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SVRMGR> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SVRMGR> ALTER DATABASE OPEN;
SVRMGR> ALTER DATABASE CHARACTER SET <new_character_set>;
SVRMGR> ALTER DATABASE NATIONAL CHARACTER SET <new_character_set>;
SVRMGR> SHUTDOWN IMMEDIATE; -- or NORMAL
SVRMGR> STARTUP;

National character set을 변경하기 위해서는 "alter database national
character set ..." command를 사용하실 수 있으며, db character set과
동시에 변경이 가능합니다.


<발생 가능 문제>

작업을 수행하는 도중 다음과 같은 error를 만날 수 있으며, 이 때는 아래의

사항을 check하여 보시기 바랍니다.

ORA-01679: database must be mounted EXCLUSIVE and not open to activate

- enable restricted session 이 수행되었나 ?
- queue process의 값을 0로 setting 하였나 ?
- 작업자 이외의 다른 login user가 존재하는가 ?

Error message가 잘못 기술된 사항으로 보이며, 작업자 이외의 다른 session이
존재하지 않아야 하며, command를 수행하는 단 한사람만이 db에 connect하여야
합니다.

***< 중요 >***
상기 작업은 이전의 character set이 US7ASCII 이거나, 변경하려는 character
set과 동일한 경우(old character set itself)를 제외하고는 수행되지 않으며,
그렇지 않은 경우에는 ORA-24329 error를 받게 됩니다.

ORA-24329: invalid character set identifier

***< TEST 필요 >***

oracle 8.1에서는 manual 상에는 소개하지 않았지만 INTERNAL_USE option을
character set 변경 command에 추가하여 사용할 수 있다고 하며, 이 option을
사용하는 경우, character set verification을 off함으로써 어떤 database
character set이라도 변경이 가능하다고 합니다.

ALTER DATABASE [NATIONAL] CHARACTER SET INTERNAL_USE <new_character_set>;

INTERNAL_USE option에 대해서는 이후에 좀 더 test를 진행하여 본 후
user에게 open하여야 할 사항으로 보이며, 8.0 version에서 INTERNAL_USE
option의 사용이 반드시 필요한 고객이 있는 경우에는 backport를 요청하는
것도 허용된다고 합니다.
<bug:508017>

참조 : <Note:66320.1>

[Top]
No.
제목
작성자
작성일
조회
17324OFSA의 DEBUG 하는 방법
정재익
2004-02-11
11403
17323프린터가 ORACLE ERP에서 작동하기까지 확인할 점
정재익
2004-02-11
9289
17322CONCURRENT MANAGER가 뜨지 않을 경우 써야 하는 방법
정재익
2004-02-11
9038
17321Oracle8에서의 character set 변경
정재익
2004-02-11
13271
17320COST UPDATE 성능과 데드락의 관계
정재익
2004-02-11
10194
17319CONCURRENT MANAGER STARTUP 시의 일반적인 문제 및 해결 방법
정재익
2004-02-11
9577
17318Oracle Enterprise Manager 9i Commands
정재익
2004-02-11
12081
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다