My Oracle Support Banner

[マスターノート] Oracle XML Database (XDB) のインストールとアンインストール (Doc ID 1608175.1)

Last updated on SEPTEMBER 28, 2020

適用範囲:

Oracle Database - Enterprise Edition - バージョン 9.2.0.3 から 12.1.0.1 [リリース 9.2 から 12.1]
Oracle Database Cloud Schema Service - バージョン N/A 以降
Oracle Database Exadata Express Cloud Service - バージョン N/A 以降
Oracle Database Exadata Cloud Machine - バージョン N/A 以降
Oracle Cloud Infrastructure - Database Service - バージョン N/A 以降
この文書の内容はすべてのプラットフォームに適用されます。

本文書利用上のご注意


  本文書は英語で提供されている Document 1292089.1 (最終更新日: 2015年04月08日) の翻訳です。

  ご利用に際しては、英語の原文を併せてご参照頂くことをお勧めいたします。

詳細

このマスターノートは XML Database(XDB) を削除およびインストールする DBA のための情報を提供します。このノートは releases 9.2.0.3 から 12.1 までカバーしています。

Ebusiness Suite をサポートするデータベースに XDB を再インストールする必要がある場合は、XDB を削除する前に、データベース上で行ういくつかのアクションがあり、EBS チームとそれを定義する必要があります。

例えば、iSetup がある場合は、XDB の再インストール前と後で iSetup dependency with Deinstall and Reinstall of XMLDB (Doc ID 402785.1) に従う必要があります。

EBS データベースの場合は、XDB を再インストールする前に EBS チームに相談してください。

 

この記事ついて質問したり、助言を得たり、経験を共有してください。

他の Oracle ユーザーや、Oracle の社員、業界の専門家とこのトピックについて探求しますか?
(ここをクリックしてディスカッションに参加してください。この記事について、質問したり、助言を得たり、経験を共有することができます。)

Oracle XDB の My Oracle Supportのコミュニティページにアクセスするには、こちらをクリックして他の記事や有益な主題についての議論を発見してください。

 

アクション

ベスト・プラクティス

(Doc ID 742156.1) 9iR2: How to Determine if XDB is Being Used in the Database?
(Doc ID 742113.1) 10g: How to Determine if XDB is Being Used in the Database?
(Doc ID 733667.1) 11g: How to Determine if XDB is Being Used in the Database?
なお、新しいバージョンの RDA により、XDB コンポーネントの現在のステータスについて詳細を確認することができます。RDA の詳細に関して、下記文書をご参照ください。
(Doc ID 314422.1) Remote Diagnostic Agent (RDA) 4 - Getting Started
  • Oracle Application Express (APEX)
  • Oracle Expression Filter
  • Oracle interMedia / Multimedia DICOM
  • Oracle Multimedia Image metadata extraction of EXIF, ORDIMAGE,  IPTC, XMP metadata
  • Spatial (Oracle Locator 含む)
  • OLAP
  • iRecruitment などの Oracle Applications
  • UTL_TCP, UTL_HTTP, UTL_SMTP を使用しているプロシージャ
  • XMLTYPE オペレーション
  • XBRL (Extensible Business Reporting Language) 11.2.0.2 以降
(Doc ID 858321.1) How To Backup XML Database (XDB)

                  connect / as sysdba
                  grant execute on DBMS_LOB to XDB;
                  grant execute on UTL_FILE to XDB;
                  grant execute on DBMS_SQL to XDB;
                  grant execute on DBMS_JOB to XDB;
                  grant execute on UTL_RAW  to XDB;
                  revoke execute on DBMS_LOB from PUBLIC;
                  revoke execute on UTL_FILE from PUBLIC;
                  revoke execute on DBMS_SQL from PUBLIC;
                  revoke execute on DBMS_JOB from PUBLIC;
                  revoke execute on UTL_RAW  from PUBLIC;

         PUBLICから実行権限を削除する際に、下記の文書を常に参照してください:

         (Doc ID 247093.1) Be Cautious When Revoking Privileges Granted to PUBLIC

  

           (Doc ID 1332182.1) ORA-01422 from DBMS_XS_PRINCIPAL_EVENTS_INT DBA|ALL|USER_XSC_* and DBA|ALL|USER_XDS_*

          (Doc ID 1574173.1) Selecting from SYS.RESOURCE_VIEW Fails with ORA-01422 and selecting from SYS.DBA_NETWORK_ACLS Fails with ORA-600 [qmxqtmChkXQAtomMapSQL:2]

 

XDBの再ロード

再ロードにより、すべてのPL/SQLパッケージとタイプを再作成します。DBA_REGISTRY における XDB が INVALID になっている場 合や、XDB特有のオブジェクトが無効になっている場合など、再ロードが役立ちます。  XDB の削除と再インストールを行う場合、XDB の再ロードは実行されます。xdbrelod.sql が xdbpatch.sql で呼び出されるため、 xdbpatch.sql を実行して XDB 関連のすべてのオブジェクトを再作成することもできます。

Oracle 9i - XDB 再ロード

SQL> spool xdbreload.log
SQL> connect / as sysdba
SQL> set echo on;
SQL> shutdown immediate;
SQL> startup migrate;
SQL> @?/rdbms/admin/xdbrelod.sql
SQL> shutdown immediate;
SQL> startup;
SQL> @?/rdbms/admin/utlrp.sql
SQL> spool off

Oracle 10.1 以降- XDB 再ロード

SQL> spool xdbreload.log
SQL> connect / as sysdba
SQL> set echo on;
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> @?/rdbms/admin/xdbrelod.sql
SQL> shutdown immediate;
SQL> startup;
SQL> @?/rdbms/admin/utlrp.sql
SQL> spool off

 

XDBのアンインストールと再インストール

          (Doc ID 1573175.1) Upgrading or Installing XDB could result in data loss if XDB_INSTALLATION_TRIGGER exists

connect  / as sysdba
set serveroutput on

DECLARE
    v_xdb_installation_trigger number;
    v_dropped_xdb_instll_trigger number;
    v_dropped_xdb_instll_tab number;

BEGIN
    select count(*) into v_xdb_installation_trigger
    from dba_triggers
    where trigger_name = 'XDB_INSTALLATION_TRIGGER' and owner = 'SYS';

    select count(*) into v_dropped_xdb_instll_trigger
    from dba_triggers
    where trigger_name = 'DROPPED_XDB_TRIGGER' and owner = 'SYS';

    select count(*) into V_dropped_xdb_instll_tab
    from dba_tables
    where table_name = 'DROPPED_XDB_INSTLL_TAB' and owner = 'SYS';

  IF v_xdb_installation_trigger > 0 OR v_dropped_xdb_instll_trigger > 0 OR v_dropped_xdb_instll_tab > 0 then

  IF v_xdb_installation_trigger > 0 THEN

dbms_output.put_line('Please proceed to run the command SQL> drop trigger sys.xdb_installation_trigger');
--   drop trigger sys.xdb_installation_trigger;
  END IF;

  IF v_dropped_xdb_instll_trigger > 0 THEN
   dbms_output.put_line('Please proceed to run the command SQL> drop trigger sys.dropped_xdb_instll_trigger');
--   drop trigger sys.dropped_xdb_instll_trigger;
  END IF;

  IF v_dropped_xdb_instll_tab > 0 THEN
   dbms_output.put_line('Please proceed to run the command SQL> drop table sys.dropped_xdb_instll_tab');
--   drop table sys.dropped_xdb_instll_tab;
  END IF;

   ELSE
   dbms_output.put_line('Please proceed to run the XDB install or upgrade');

  END IF;

END;
/
set serveroutput on

DECLARE
    v_exists number;
    V_size number;

BEGIN
    select count(*) into v_exists
    from dba_tablespaces
    where tablespace_name = 'XDB';

  IF v_exists > 0 THEN

    select bytes into v_size
from dba_data_files
    where tablespace_name = 'XDB';

  IF v_size > 209715200 then

   dbms_output.put_line('XDB tablespace exists and is greater than 200 MB.
                         Please proceed with XDB install.');
  ELSE
    dbms_output.put_line('XDB tablespace exists and but is smaller than
                          200 MB.If you wish to install all the XDB
                          metadata into the XDB tablespace, then please add
                          more space so that its greater than 200 MB before
                          installing XDB.');
  END IF;
  ELSE
    dbms_output.put_line('XDB tablespace does not exist.Please either
                          create XDB tablespace of at least 200 MB or
                          specify another tablespace when installing XDB.');
 END IF;
END;
/

 

 

 

9.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 スキーマ配下にある一部の XDB 関連オブジェクトが削除されません。  次の文書を参考にして、これらのオブジェクトをクリーンアップしてください。

(Doc ID 285045.1) Resolving Invalid XDB Objects After XDB Has Been Deinstalled From A Database


XDBのインストール

catqm.sql スクリプトを実行する際に、次のパラメータを渡す必要があります。

A. XDB ユーザパスワード


B. XDB ユーザーのデフォルト表領域

   * SYSTEM, UNDO, TEMP 表領域は指定できません。

   * 指定された表領域はスクリプトを実行する前に存在している必要があります。.

   * 特に、Oracle XML DB リポジトリに大量のデータが含まれることが予想される場合は、SYSAUX 以外の表領域を指定する必要があります。

   * 例:

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


C. XDB ユーザの一時表領域

そのため、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/catxdbj.sql
@?/rdbms/admin/utlrp.sql
spool off

10g - 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 スキーマにある一部の XDB 関連オブジェクトは削除されません。  また、SYS.KU$_% ビューは INVALID になります。  次の文書を参考にして、これらのオブジェクトをクリーンアップしてください。

(Doc ID 1375280.1) Invalid KU$ Views and CATALOG, CATPROC components after XDB Deinstall in 10.2


XDB のインストール

catqm.sql を実行するために、次のパラメータを渡す必要があります。

A. XDB ユーザのパスワード


B. XDB ユーザのデフォルト表領域

   * SYSTEM, UNDO, TEMP 表領域は指定することはできません。

   * 指定された表領域はスクリプトを実行する前に存在している必要があります。

   * 特に、Oracle XML DB リポジトリに大量のデータが含まれることが予想される場合は、SYSAUX 以外の表領域を指定する必要があります。

   * 例:

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


C. XDBユーザの一時表領域

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

11g - XDB の削除と再インストール

connect / as sysdba
--
-- Check the storage of XMLType tables.
--
select owner, table_name
from dba_xml_tables
where storage_type in ('OBJECT-RELATIONAL', 'BINARY');

-- A default seed database with the example schemas installed
-- will have ones owned by XDB, MDSYS and OE.
--
-- Check the storage of XMLType columns.
--
select owner, table_name
from dba_xml_tab_cols
where storage_type in ('OBJECT-RELATIONAL', 'BINARY');

-- A default seed database with the example schemas installed
-- will have ones owned by XDB, MDSYS, ORDDATA, APEX_030200 and OE.
-- Please see the following section as it relates to ORDDATA and APEX_030200
もし上記のコードブロックが ORDDATA  と/または APEX_030200 が所有しているオブジェクトを返す場合、これらのコンポーネントもデータベースにインストールされていることを意味しま す。製品上でこれらのコンポーネントが使用されている場合、XD Bユーザスキーマにメンテナンスされているデータを失わないよう、XDB を削除/再インス トールはしないでください。
詳しくは下記文書をご参照ください。

(Doc ID 1207893.1) Change in default storage model of XMLType to BINARY XML in 11.2.0.2
11.2 で SecureFiles がサポートされているため、このリリースの 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 ユーザのデフォルト表領域

   * SYSTEM, UNDO, TEMP 表領域は指定することはできません。

   * 指定された表領域はスクリプトを実行する前に存在している必要があります。

   * 特に、Oracle XML DB リポジトリに大量のデータが含まれることが予想される場合は、SYSAUX 以外の表領域を指定する必要があります。

   * 例:

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

C. XDBユーザの一時表領域

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 の削除l

catnoqm.sql スクリプトで XDB を削除します。

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

XDB の削除を行う際に、SYS スキーマ配下にある一部の XDB 関連オブジェクトは削除されません。  また、SYS.KU$_% ビューは INVALID になります。  次の文書を参考にして、これらのオブジェクトをクリーンアップしてください。

(Doc ID 1269470.1) XDB Deinstallation script catnoqm.sql leads to Invalid SYS Objects


XDBのインストール

catqm.sql スクリプトを実行する際に、次のパラメータを渡す必要があります。

A. XDB ユーザのパスワード


B. XDB ユーザのデフォルト表領域

   * SYSTEM, UNDO, TEMP 表領域は指定することはできません。

   * 指定された表領域はスクリプトを実行する前に存在している必要があります。

   * 特に、Oracle XML DB リポジトリに大量のデータが含まれることが予想される場合は、SYSAUX 以外の表領域を指定する必要があります。

   * 例:

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

C. XDB ユーザの一時表領域

D. YES または NO

   * YES を指定する場合、XDB リポジトリは SecureFile ストレージを使用します。

   * 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 は必須コンポーネント

Oracle XML DB は Oracle Database の必須コンポーネントになりました。これをアンインストールできません。もしOracle Database 12c Release 1 (12.1.0.1)またはそれ以降のバージョンにアップグレードする前に Oracle XML DB がインストールされていない場合、アップグレード中にSYSAUX 表領域に自動的にインストールされます。Oracle XML DB が上記の方法で自動的にインストールされている場合、アップグレードが終わった後で Oracle XML DB を使用するには、compatibility を 12.1.0.1 以上に設定する必要があります。compatibility が 12.1.0.1 より低 い場合、Oracle 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

select owner, object_name, object_type, status
from dba_objects
where status = 'INVALID'
and owner in ('SYS', '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 関数の初期ルーチンが無効な環境で動作しており、メモリ破損を引き起こした場合、このようなエラーが発生します。

LD_LIBRARY_PATH (AIX では LIBPATH、HP では SHLIB_PATH)が該当インスタンスの正しい場所ではなく、違った$ORACLE_HOME/lib を指してている状況でデータベースを一度起動した場合、この事象が起こり得ます。LD_LIBRARY_PATH/LIBPATH/SHLIB_PATH 環境変数は、"libxdb.so (libxdb.sl on HP)" 共有ライブラリの位置解析に使用されます。

以下を実施してこの事象を対処してください。
1. リスナーを停止して、データベースをシャットダウンします。
2. LD_LIBRARY_PATH (AIX では LIBPATH、HP では SHLIB_PATH)を次のように設定します。
    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 を編集するか、ENVS= "LD_LIBRARY_PATH"の設定を追加します。
    これで、11g インスタンスへ指向けるようにします。
    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 を編集するか、ENVS= "LD_LIBRARY_PATH"の設定を追加します。
    これで、10gインスタンスへ指向けるようにします。

    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.データベースとリスナーを再起動します。

           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

 

[更新履歴]

2015/04/10 マスター(英語)の更新に合わせて以下更新。
                  Max Version を 12.1.0.1 に変更。
                  EBS データベースの場合の注意を追加。
                  DBMS_LOB と UTL_FILE パッケージに対する実行権限についての説明を追加
                  確認されている問題のエラーを追加。

 

下の ウィンドウはこの記事に関するライブ・ディスカッションです。(画面ショットではありません)。フィードバックを入力したい場合は、「Reply」をク リックしてディスカッションに参加することをお薦めします。上記の記事の情報についての質問または実装の問題がある場合は、その情報を以下で共有してくだ さい。



コンタクト

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の再ロード
 Oracle 9i - XDB 再ロード
 Oracle 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.