My Oracle Support Banner

오라클 XML 데이터베이스(XDB) 설치/ 제거를 위한 마스터 노트 (Doc ID 1552327.1)

Last updated on AUGUST 04, 2018

적용 대상:

Oracle Database - Enterprise Edition - 버전 9.2.0.3 to 12.1.0.1 [릴리즈 9.2 to 12.1]
이 문서의 내용은 모든 플랫폼에 적용됩니다.

상세 내역

위의 코드 블록이 ORDDATA 와/또는 APEX_030200 소유의 객체가 있으면, 해당 구성 요소가 데이터베이스에 설치되어 있는 것을 의미한다. 이러한 구성요소가 운영 중일 경우에는, XDB 사용자 스키마에서 유지되는 데이터가 손실되므로 XDB는 제거와 재설치 하면 안 된다.
자세한 내용은 다음 문서를 참조한다:

(Doc ID 1207893.1) Change in default storage model of XMLType to BINARY XML in 11.2.0.2
이제 SecureFiles는 11.2에서 지원되기 때문에, 해당 릴리즈의 catqm.sql 스크립트에 추가적인 매개변수가 추가되었다.

11.1 - XDB 제거와 재설치

XDB 제거

catnoqm.sql 스크립트는 XDB를 삭제한다.

spool xdb_removal.log
set echo on;
connect / as sysdba
shutdown immediate;
startup
@?/rdbms/admin/catnoqm.sql
spool off;

XDB 설치

catqm.sql 스크립트는 실행될 때 아래 매개 변수가 전달되어 져야 한다.

A. XDB 사용자 비밀번호
B. XDB 사용자 기본 테이블스페이스(default tablespace)

   * SYSTEM,UNDO와 TEMP 테이블스페이스를 지정할 수 없다.

   * 지정된 테이블스페이스는 스크립트가 실행되기 전에 존재해야 한다.

   * 특히 많은 양의 데이터를 포함하기 위한 오라클 XML DB 리포지토리가 필요하다면  SYSAUX 이외의 테이블스페이스는 지정되어야한다.

   * 예:

      create tablespace XDB
      datafile 'xxxxxxxxx.dbf' size 2000M
      extent management local uniform size 256K segment space management auto;

C. XDB 사용자 임시 테이블스페이스(temporary tablespace)

catqm.sql를 실행하기 위한 구문은 다음과 같다:
SQL> @?/rdbms/admin/catqm.sql A B C

예:
SQL> @?/rdbms/admin/catqm.sql xdb XDB TEMP

## 중요: 삭제와 재설치 사이에 데이터베이스는 반드시 종료와 재시작 해야 한다 ##

spool xdb_install.log
set echo on;
connect / as sysdba
shutdown immediate;
startup;
@?/rdbms/admin/catqm.sql <XDB pwd> <XDB default tbs> <XDB temporary tbs> -- substitute the parameters with appropriate values
@?/rdbms/admin/utlrp.sql
spool off

11.2 - XDB 제거와 재설치

XDB 제거

catnoqm.sql 스크립트는 XDB를 삭제한다.

spool xdb_removal.log
set echo on;
connect / as sysdba
shutdown immediate;
startup
@?/rdbms/admin/catnoqm.sql
spool off;

XDB를 재설치 할 계획이 없는 경우에는 잘못된 SYS 객체를 수정하기 위하여 Note 1269470.1 문서를 참조한다.

XDB 설치

catqm.sql 스크립트는 실행될 때 아래 매개 변수가 전달되어 져야 한다.

A. XDB 사용자 비밀번호

B. XDB 사용자 기본 테이블스페이스(default tablespace)

   * SYSTEM,UNDO와 TEMP 테이블스페이스를 지정할 수 없다.

   * 지정된 테이블스페이스는 스크립트가 실행되기 전에 존재해야 한다.

   * 특히 많은 양의 데이터를 포함하기 위한 오라클 XML DB 리포지토리가 필요하다면  SYSAUX 이외의 테이블스페이스는 지정되어야한다.

   * 예:

      create tablespace XDB
      datafile 'xxxxxxxxx.dbf' size 2000M
      extent management local uniform size 256K segment space management auto;

C. XDB 사용자 임시 테이블스페이스(temporary tablespace)

D. YES 또는 NO

   * YES로 지정한 경우, XDB 저장소는 SecureFiles 스토리지를 사용한다.

   * NO로 지정된 경우, LOBS가 사용되지 않는다.

   * SecureFiles를 사용하기 위하여, 호환성(compatibility)은 11.2로 설정해야 한다.

   * XDB 저장소에 지정된 테이블스페이스는 SecureFiles를 사용하기 위하여 자동 세그먼트 공간 관리(Automatic Segment Space Management (ASSM))를 사용해야 한다.


catqm.sql를 실행하기 위한 구문은 다음과 같다:
SQL> catqm.sql A B C D

예:
SQL> @?/rdbms/admin/catqm.sql xdb XDB TEMP YES

## 중요: 삭제와 재설치 사이에 데이터베이스는 반드시 종료와 재시작 해야 한다 ##

spool xdb_install.log
set echo on;
connect / as sysdba
shutdown immediate;
startup;
@?/rdbms/admin/catqm.sql <XDB pwd> <XDB default tbs> <XDB temporary tbs> <YES or NO> -- substitute the parameters with appropriate values
@?/rdbms/admin/utlrp.sql
spool off

 

12.1 - XDB는 필수이다.

오라클 XML DB는 이제 오라클 데이터베이스의 필수 구성요소 이다. 설치제거를 할 수 없으며, 오라클 12c 릴리즈 1 (12.1.0.1) 또는 그 이상으로 업그레이드를 하기 전에 오라클 XML DB가 데이터베이스에 설치되어 있지 않다면 업그레이드 하는 동안에 SYSAUX 테이블스페이스에 자동으로 설치된다. 오라클 XML DB가 자동으로 설치되거나 오라클 XML DB를 사용하는 것을 원하는 경우에는 업그레이드 작업 후에 데이터베이스 호환성을 최소 12.1.0.1로 설정해야 한다. 호환성이 12.1.0.1보다 낮은 경우에는 오라클 XML DB를 사용할 때 에러가 발생할 것이다.

 

XDB 설치 확인

spool xdb_status.txt

set echo on;
connect / as sysdba
set pagesize 1000
col comp_name format a36
col version format a12
col status format a8
col owner format a12
col object_name format a35
col name format a25

-- Check status of XDB

select comp_name, version, status
from dba_registry
where comp_id = 'XDB';

-- Check for invalid objects owned by XDB

select owner, object_name, object_type, status
from dba_objects
where status = 'INVALID'
and owner = 'XDB';

spool off;

알려진 문제

ORA-04098: trigger 'SYS.XDB_INSTALLATION_TRIGGER' is invalid and failed re-validation.

이 경우 다음 문서의 단계들을 수행한다:
(Doc ID 1573175.1) Upgrading or Installing XDB could result in data loss if XDB_INSTALLATION_TRIGGER exists
(Doc ID 331378.1) Running catqm.sql Leads to ORA-4098 Trigger 'SYS.XDB_INSTALLATION_TRIGGER' is Invalid
ORA-31159: XML DB is in an invalid state
ORA-00600: internal error code, arguments: [unable to load XDB library]
ORA-00600: internal error code, arguments: [qmx: no ref]
ORA-00600: internal error code, arguments: [qmtGetColumnInfo1]
ORA-00600: internal error code, arguments: [qmtb_init_len]
ORA-00600: internal error code, arguments: [qmtGetBaseType]
ORA-00600: internal error code, arguments: [psdnop-1], [600]
ORA-00600: internal error code, arguments: [qmtInit1]
ORA-07445: exception encountered: core dump [_memcpy()+224] [SIGSEGV] [Address not mapped to object]
ORA-19051 Cannot Use Fast Path Insert For This XMLType Table
ORA-31011: XML parsing failed

 


일반적으로 이러한 종류의 내부 XDB 기능을 초기화하는 루틴이 잘못된 환경에서 실행되어 메모리 손상이 원인으로 발생한다.

데이터베이스가 인스턴스의 올바른 위치가 아닌 잘못된 $ORACLE_HOME/lib를 가르키는 LD_LIBRARY_PATH (LIBPATH for AIX or SHLIB_PATH for HP)와 함께 시작될 경우에 발생할 수 있다. LD_LIBRARY_PATH/LIBPATH/SHLIB_PATH 환경 변수는 공유 라이브러리 "libxdb.so (HP에서는 libxdb.sl)"의 위치를 확인하는데 사용된다.

이 문제를 해결하려면 다음을 수행한다:
1. 데이터베이스를 중지하고 리스너를 종료한다.
2. 다음과 같이 LD_LIBRARY_PATH (LIBPATH for AIX or SHLIB_PATH for HP)를 설정한다:
    csh: setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:<other paths>
    ksh: export LD_LIBRARY_PATH=$ORACLE_HOME/lib:<other paths>
3. 클라이언트가 10g 리스너를 사용하여 11g 인스턴스에 접속할 경우, listener.ora 파일에 11g 인스턴스를 가르키도록 ENVS= "LD_LIBRARY_PATH"를 추가하거나 수정한다:
    SID_LIST_LISTENER =
     (SID_LIST =
     (SID_DESC =
     (SID_NAME = PLSExtProc)
    ...
     )
    (SID_DESC =
     (SID_NAME =11gSID)
     (ORACLE_HOME =/opt/oracle/product/11.1.0)
     (ENVS= "LD_LIBRARY_PATH=/opt/oracle/product/11.1.0/lib")
     )
    )
4. 클라이언트가 11g 리스너를 사용하여 10g 인스턴스에 접속할 경우, listener.ora 파일에 10g 인스턴스를 가르키도록 ENVS= "LD_LIBRARY_PATH"를 추가하거나 수정한다:

    SID_LIST_LISTENER =
     (SID_LIST =
     (SID_DESC =
     (SID_NAME = PLSExtProc)
    ...
     )
    (SID_DESC =
     (SID_NAME =10gSID)
     (ORACLE_HOME =/opt/oracle/product/10.2.0)
     (ENVS= "LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/lib")
     )
    )

5.  AIX에서, 커널과 라이브러리 메모리에서 현재 사용되지 않는 모듈을 제거하려면 root 계정으로 /usr/sbin/slibclean를 실행한다.

6. 데이터베이스와 리스너를 재시작 한다.

           (Doc ID 373303.1)  How to Check the Environment Variables for an Oracle Process

           PLS-00201: identifier 'DBMS_LOB' must be declared
           또는
           PLS-00201: identifier 'UTL_FILE' must be declared

           XDB는 DBMS_LOB와 UTL_FILE 패키지에 대한 실행 권한이 없다.

           다음 문서를 참조한다:

           (Doc ID 429551.1)  Invalid XDB Objects After XDB Install
           (Doc ID 1105245.1)  XDB Is INVALID In DBA_REGISTRY After Having Revoked Privileges: What Privileges Are Needed?

자세한 내용은 다음 문서를 참조한다:

(Doc ID 360907.1) Catupgrd.sql Gives ORA-4043 Error On XDB_DATASTORE_PROC
(Doc ID 1273520.1) After de-installing XDB many XSD objects are invalid

릴리즈 11.2 이후부터, catnoqm.sql는 이 객체들을 삭제할 것이다.

11.2와 관련

           (Doc ID 1337065.1) XDB is INVALID after ORA-31084 ORA-43853 errors during install

             ORA-28003: password verification for the specified password failed
             ORA-20001: Password length less than 8

             자세한 내용은 다음 문서를 참조한다:

            (Doc ID 1297620.1) XDB is INVALID in DBA_REGISTRY after Fresh Installation

 

아래 창은 이 문서에 대한 실제 논의입니다(스크린샷이 아님).  피드백을 제공하고자 하는 항목에 대해 아래의 "응답" 링크를 클릭하여 이 논의에 참석하는 것을 권장합니다. 문서의 정보와 함께 질문이나 구현 문제가 있다면, 그 아래에 공유해 주십시오.



연락

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


이 문서에서
상세 내역
조치 사항
 성공 사례
 XDB 리로드
 오라클 9i - XDB 리로드
 오라클 10.1 이상 - XDB 리로드
 XDB 제거와 재설치
 9.2 - XDB 제거와 재설치
 10g - XDB 제거와 재설치
 11g - XDB 제거와 재설치
 11.1 - XDB 제거와 재설치
 11.2 - XDB 제거와 재설치
 XDB 설치 확인
 알려진 문제
연락
참고

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.