34 Oracle XML DBの管理
Oracle XML DBの管理には、インストール、アップグレードおよび構成が含まれます。
- 既存のOracle XML DBのインストールのアップグレードまたはダウングレード
Oracle Database 12c リリース1 (12.1.0.1)より前のリリースのOracle Databaseのすべてのアップグレードには、様々な考慮事項が適用されます。 - Oracle Enterprise Managerを使用したOracle XML DBの管理
Oracle Enterprise Managerを使用すると、Oracle XML DB管理タスクを簡単に実行できます。これには、Oracle XML DBの構成、XML Schema、XMLType
表およびビュー、Oracle XML DBリポジトリ・リソースとそのアクセス制御リスト(ACL)の作成、検索、編集および削除、XML Schemaの登録、ファンクション索引が含まれます。 - xdbconfig.xmlを使用したOracle XML DBの構成
Oracle XML DBは、Oracle XML DBリポジトリにリソースとして格納された構成ファイルの/xdbconfig.xml
を介して内部管理できます。Oracle Enterprise Managerを使用してOracle XML DBを構成するかわりに、Oracle XML DB構成ファイルを使用して直接構成できます。 - Oracle XML DBとデータベース統合
プラガブル・データベースごとに、独自のOracle XML DBリポジトリと独自のOracle XML DB構成ファイルxdbconfig.xml
があります。 - パッケージDBMS_XDB_ADMIN
PL/SQLパッケージDBMS_XDB_ADMIN
には、Oracle XML DBおよびOracle XML DBリポジトリを管理および構成するためのサブプログラムが含まれています。
34.1 既存のOracle XML DBのインストールのアップグレードまたはダウングレード
Oracle Database 12c リリース1 (12.1.0.1)より前のリリースのOracle Databaseのすべてのアップグレードには、様々な考慮事項が適用されます。
-
通常どおり、スクリプト
catproc.sql
を実行します。 -
ローリング・アップグレードを含むどのレプリケーション・メソッドでも、階層対応表のレプリケーションはサポートされていません。
-
追加ロギングが有効になっている場合、次の操作はサポートされません。
-
INSERT
でのAPPEND
ヒントの使用 -
XMLType
データのSQL*Loaderダイレクト・パス挿入
-
-
ローリング・アップグレード中にプライマリ・データベースで次のいずれかの操作を呼び出すと、スタンバイ・データベースでは「サポートされていない操作です。」エラーが発生します。
-
DBMS_XDB_ADMIN
: すべての操作 -
DBMS_XMLSCHEMA.copyEvolve
-
DBMS_XMLSCHEMA.compileSchema
-
DBMS_XMLINDEX.dropparameter
-
DBMS_XMLINDEX.modifyparameter
-
DBMS_XMLINDEX.registerparameter
-
-
ACLセキュリティ: Oracle Database 11g リリース1より前のリリースでは、同じプリンシパルおよび同じ権限のACE間の競合は、先行するACEに子
grant
があるかどうかに関係なく、子deny
のあるACEを優先させることで解決していました。つまり、ACEの順序は関係ありませんでした。Oracle Database 11g以降では、このdeny-trumps-grant
の動作も使用できますが、デフォルトの動作ではありません。 -
Oracle Database 12cリリース1 (12.1.0.1)より前は、Basicアクセス認証のみが使用可能なHTTP認証メカニズムでした。12cリリース1から、Digestアクセス認証が使用できるようになりました。
- データベースのインストール、アップグレードおよびダウングレードに関する認証の考慮事項
データベースのインストール、アップグレードおよびダウングレードには、様々な認証に関する考慮事項が適用されます。 - Oracle XML DBの自動インストール
Oracle XML DBは、アップグレード中に自動的にインストールされます。Oracle XML DBを使用する場合は、互換性レベルが12.1.0.1以上であることを確認してください。 - ACL文書および構成ファイルの検証
アップグレード中に、既存のACL文書およびOracle XML DB構成ファイルが、XML Schemaに対して検証されます。検証に失敗した場合は、特定の対策を講じる必要があります。
関連項目:
-
ローリング・アップグレードの実行の詳細は、Oracle Data Guard概要および管理を参照してください。
-
ACE間の競合の詳細は、ACLおよびACEの評価を参照してください。
親トピック: Oracle XML DBの管理
34.1.1 データベースのインストール、アップグレードおよびダウングレードに関する認証の考慮事項
データベースのインストール、アップグレードおよびダウングレードには、様々な認証に関する考慮事項が適用されます。
- データベースのインストールに関する認証の考慮事項
データベースのインストールでは、デフォルトでDigest認証は有効、Basic認証は無効になっています。すべてのユーザーに、Digestベリファイアが自動的に生成されます。 - データベースのアップグレードに関する認証の考慮事項
Oracle Database 12cリリース1 (12.1.0.1)より前のリリースからアップグレードすると、使用可能な認証メカニズムのリストにDigest認証が追加されます。ただし、アップグレード前にBasic認証が有効であった場合、現行の認証方法はそのままです。これは下位互換性のみのためです。 - データベースのダウングレードに関する認証の考慮事項
Digest認証がサポートされていないリリースにダウングレードすると、Digest認証は無効化され、認証の選択肢として使用できなくなります。
関連トピック
34.1.1.1 データベースのインストールに関する認証の考慮事項
データベースのインストールでは、デフォルトでDigest認証は有効、Basic認証は無効になっています。すべてのユーザーに、Digestベリファイアが自動的に生成されます。
34.1.1.2 データベースのアップグレードに関する認証の考慮事項
Oracle Database 12cリリース1 (12.1.0.1)より前のリリースからアップグレードすると、使用可能な認証メカニズムのリストにDigest認証が追加されます。ただし、アップグレード前にBasic認証が有効であった場合、現行の認証方法はそのままです。これは下位互換性のみのためです。
アップグレード後は、データベース管理者が速やかにBasic認証を無効にすることをお薦めします。アップグレード後にBasic認証を有効にしておく理由は、ユーザーがDigest認証をサポートしていないWebブラウザを使用して、各自のパスワードを変更できるようにするためです。
このようなアップグレードでは、新規ユーザーとアップグレード時にパスワードが変更された既存ユーザーすべてについて、Digestベリファイアが計算されます。それ以外のユーザーはDigestベリファイアを持っていません。
アップグレード後、DBAは次の手順に従ってデータベース・ビューDBA_DIGEST_VERIFIERS
を使用し、ユーザーごとにDigestベリファイアの有無を確認して、適切に処理できます。
34.1.2 Oracle XML DBの自動インストール
Oracle XML DBは、アップグレード中に自動的にインストールされます。Oracle XML DBを使用する場合は、互換性レベルが12.1.0.1以上であることを確認してください。
Oracle Database 12cリリース1 (12.1.0.1)以降にアップグレードする前に、Oracle XML DBがユーザーのデータベースにまだインストールされていなかった場合は、アップグレード時に表領域SYSAUX
に自動的にインストールされます。
こうしてOracle XML DBが自動的にインストールされた場合、Oracle XML DBを使用するには、アップグレード操作後にデータベースの互換性を12.1.0.1以上に設定する必要があります。互換性が12.1.0.1より低位にある場合、Oracle XML DBの使用を試みるとエラーが発生します。
アップブレード時にOracle XML DBが自動的にインストールされ、現行の互換性レベルが12.1.0.1よりも低い場合、前のリリースにダウングレードすると、Oracle DBは自動的に削除されます。
34.1.3 ACL文書および構成ファイルの検証
アップグレード中に、既存のACL文書およびOracle XML DB構成ファイルが、XML Schemaに対して検証されます。検証に失敗した場合は、特定の対策を講じる必要があります。
アクセス制御リスト(ACL)の文書は、表XDB$ACL
に格納されています。Oracle XML DBの構成ファイルxdbconfig.xml
は、表XDB$CONFIG
に格納されています。Oracle Database 12cリリース1 (12.1.0.1)以降、これらの表では事後解析(バイナリXML)記憶域モデルを使用します。これは、ACL文書および構成ファイルが、各XML Schemaに対して完全に検証されることを意味します。検証は、既存のACL文書と構成ファイル、および既存の対応するXML Schemaを使用してアップグレード時に行われます。
アップグレード時にACL文書の検証に失敗した場合、その文書は表XDB$INVALID_ACL
に移動されます。
アップグレード時に構成ファイルxdbconfig.xml
の検証に失敗した場合、そのファイルは表XDB$INVALID_CONFIG
に格納され、デフォルトの構成ファイルが表XDB$CONFIG
内でそれを置換し、データベースのXDB
コンポーネントは無効としてマークされます。その後、データベースを通常モードで起動し、データベースを使用する前にXDB
コンポーネントを修正する必要があります。
XDB
コンポーネントを修正するには、無効なファイルを修正して有効にし、PL/SQLプロシージャRecoverUpgrade
をコールします。検証後、このプロシージャは修正済のファイルを表XDB$ACL
および表XDB$CONFIG
に移動し、XDB
コンポーネントを有効としてマークします。
オプションとして、パラメータuse_default
をTRUE
に設定してプロシージャRecoverUpgrade
をコールし、無効なファイルを破棄できます。この場合、有効なファイルは表XDB$ACL
および表XDB$CONFIG
に移動され、残った無効なファイルはすべて削除されます。無効なファイルのかわりにデフォルト・ファイルが使用されます。ACLにはデフォルトのACL文書が使用されます。構成ファイルにはデフォルトのxdbconfig.xml
が使用されます(ここではACEの順序が関係します)。
注意:
古いACLファイルまたは無効な構成ファイルが確実に必要でない場合にのみ、パラメータuse_default
にTRUE
の値を使用します。これらのファイルは削除されます。
34.2 Oracle Enterprise Managerを使用したOracle XML DBの管理
Oracle Enterprise Managerを使用すると、Oracle XML DB管理タスクを簡単に実行できます。これには、Oracle XML DBの構成、XML Schema、XMLType
表およびビュー、Oracle XML DBリポジトリ・リソースとそのアクセス制御リスト(ACL)の作成、検索、編集および削除、XML Schemaの登録、ファンクション索引が含まれます。
Enterprise Managerを使用した、次のタスクの実行の詳細は、Oracle Enterprise Manager付属のオンライン・ヘルプを参照してください。
-
Oracle XML DBの構成。Oracle XML DBの構成ファイル、
/xdbconfig.xml
のパラメータを表示または編集します。 -
Oracle XML DBリポジトリ・リソースおよびそれに関連するアクセス制御リスト(ACL)の検索、作成、編集および削除の取消し。
-
XMLType
表およびビューの検索、作成、編集および削除。 -
XMLスキーマの検索、作成、登録および削除。
関連項目:
-
Oracle Enterprise Managerを使用しないOracle XML DBの構成の詳細は、xdbconfig.xmlを使用したOracle XML DBの構成を参照してください。
-
Oracle Enterprise Managerを使用しないリソースの作成および管理の詳細は、Oracle XML DBリポジトリを参照してください。
-
Oracle Enterprise Managerを使用しないXML Schemaの操作の詳細は、XML Schemaの格納と問合せ: 基本を参照してください。
親トピック: Oracle XML DBの管理
34.3 xdbconfig.xmlを使用したOracle XML DBの構成
Oracle XML DBは、Oracle XML DBリポジトリにリソースとして格納された構成ファイルの/xdbconfig.xml
を介して内部管理できます。Oracle Enterprise Managerを使用してOracle XML DBを構成するかわりに、Oracle XML DB構成ファイルを使用して直接構成できます。
構成ファイルは実行時に変更できます。構成ファイルを更新すると、このリポジトリ・リソースの新しいバージョンが作成されます。セッションが開始されると、現行のバージョンの構成ファイルがそのセッションにバインドされます。最新のバージョンにセッションをリフレッシュするように明示的にコールしないかぎり、このセッション中は、このバージョンの構成ファイルが使用されます。
- Oracle XML DBの構成ファイルxdbconfig.xml
Oracle XML DBの構成は、Oracle XML DB構成XML Schemaであるhttp://xmlns.oracle.com/xdb/xdbconfig.xsd
に準拠するOracle XML DBリポジトリ・リソースのxdbconfig.xml
で定義および格納されます。Oracle XML DBを構成または再構成するには、構成ファイル/xdbconfig.xml
を更新します。xdbconfig.xml
ファイルにアクセスするには、管理者権限が必要です。
親トピック: Oracle XML DBの管理
34.3.1 Oracle XML DBの構成ファイルxdbconfig.xml
Oracle XML DBの構成は、Oracle XML DB構成XML Schemaであるhttp://xmlns.oracle.com/xdb/xdbconfig.xsd
に準拠するOracle XML DBリポジトリ・リソースのxdbconfig.xml
で定義および格納されます。Oracle XML DBを構成または再構成するには、構成ファイル/xdbconfig.xml
を更新します。xdbconfig.xml
ファイルにアクセスするには、管理者権限が必要です。
構成ファイルの構造は、次の項で説明します。
- 要素xdbconfig (最上位)
要素xdbconfig
は、Oracle XML DB構成ファイルの最上位の要素です。 - 要素sysconfig (xdbconfigの子)
要素sysconfig
は、xdbconfig
の子です。 - 要素userconfig (xdbconfigの子)
要素userconfig
は、xdbconfig
の子です。これには追加する必要のあるパラメータが含まれます。 - 要素protocolconfig (sysconfigの子)
要素protocolconfig
は、sysconfig
の子です。 - 要素httpconfig (protocolconfigの子)
要素httpconfig
(protocolconfig
の子)について説明します。 - 要素servlet (httpconfigの子孫)
要素servlet
は、要素httpconfig
の子孫です。Javaサーブレットおよび埋込みPL/SQLゲートウェイ・サーブレットなど、サーブレットの構成に使用します。 - Oracle XML DBの構成ファイルの例
Oracle XML DBの構成ファイルの例を示します。 - Oracle XML DB Configuration API
Oracle XML DBの構成ファイルxdbconfig.xml
には、他のXML Schemaに基づくリソースと同様にアクセスできます。FTP、HTTP(S)、WebDAV、Oracle Enterprise Managerまたはあらゆるリソースおよびドキュメント・オブジェクト・モデル(DOM) API for Java、PL/SQLまたはC (OCI)を使用してアクセスできます。 - デフォルトの名前空間からスキーマの場所へのマッピングの構成
Oracle XML DBは、デフォルトのXML Schemaの場所のマッピングを構成するメカニズムを提供します。 - XMLファイル拡張子の構成
Oracle XML DBリポジトリは、特定のファイルをそのファイル拡張子に基づいてXML文書として処理します。このようなファイルがリポジトリに挿入されると、Oracle XML DBはこれらを事前解析し、XML Schemaの場所を識別(またはデフォルトのマッピングがある場合はそれを使用)して、文書を適切なデフォルト表に挿入します。
関連項目:
Oracle XML DB構成XML Schemaの完全なリストは、xdbconfig.xsd: Oracle XML DBを構成するためのXML Schemaを参照してください。
34.3.1.1 要素xdbconfig (最上位)
要素xdbconfig
は、Oracle XML DB構成ファイルの最上位の要素です。
この構造は次のとおりです。
<xdbconfig>
<sysconfig> ... </sysconfig>
<userconfig> ... </userconfig>
</xdbconfig>
要素sysconfig
は、システム固有の組込みパラメータを定義します。要素userconfig
を使用すると、新しいカスタム・パラメータを格納できます。
34.3.1.2 要素sysconfig (xdbconfigの子)
要素sysconfig
は、xdbconfig
の子です。
この構造は次のとおりです。
<sysconfig>
general parameters
<protocolconfig> ... </protocolconfig>
</sysconfig>
要素sysconfig
には、アクセス制御リスト(ACL)の最大存続期間など、すべてのOracle XML DBに適用されるいくつかの一般的なパラメータが含まれます。子要素protocolconfig
には、プロトコル固有のパラメータが含まれます。
注意:
要素case-sensitive
(要素sysconfig
の子)は、XQueryまたは全文検索の大/小文字の区別には影響しません。そうではなく、すべてのOracle XML DBの動作に影響します。
34.3.1.4 要素protocolconfig (sysconfigの子)
要素protocolconfig
は、sysconfig
の子です。
この構造は次のとおりです。
<protocolconfig> <common> ... </common> <ftpconfig> ... </ftpconfig> <httpconfig> ... </httpconfig> </protocolconfig>
要素common
には、MIMEタイプについての情報など、すべてのプロトコルに適用されるパラメータが格納されます。FTP、HTTPおよびHTTPSプロトコルに固有のパラメータは、要素ftpconfig
とhttpconfig
にそれぞれ含まれます。
関連トピック
34.3.1.5 要素httpconfig (protocolconfigの子)
要素httpconfig
(protocolconfig
の子)について説明します。
httpconfig
の構造は次のとおりです。
<httpconfig>
...
<webappconfig>
...
<servletconfig>
...
<servlet-list>
<servlet> ... </servlet>
...
</servlet-list>
</servletconfig>
</webappconfig>
...
<plsql> ... </plsql>
</httpconfig>
要素httpconfig
には、次の子要素、およびその他の子要素が含まれます。
-
webappconfig
– Webベースのアプリケーションの構成に使用します。これには、アイコン名、アプリケーションの表示名およびサーブレットのリストなど、Webベースのアプリケーション固有のパラメータが含まれます。要素
servletconfig
は、サーブレットの定義に使用されるwebappconfig
の子です。子要素servlet
を持つ子要素servlet-list
を含んでいます(「要素servlet (httpconfigの子孫)」を参照)。 -
plsql
脚注1 - 埋込みPL/SQLゲートウェイを構成する際、グローバル構成パラメータを定義するために使用されます。各グローバル・パラメータは、plsql
の子要素を使用して定義されます。要素名は、グローバル・パラメータ名と同じです。要素のコンテンツは、パラメータ値と同じです。埋込みPL/SQLゲートウェイの構成方法としては、
xdbconfig.xml
ファイルを編集するのではなく、PL/SQLパッケージDBMS_EPG
のプロシージャを使用する方法をお薦めします。
関連トピック
関連項目:
-
埋込みPL/SQLゲートウェイの構成と使用の詳細は、Oracle Database開発ガイドを参照してください。
-
DBMS_EPG
パッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。
34.3.1.6 要素servlet (httpconfigの子孫)
要素servlet
は、要素httpconfig
の子孫です。Javaサーブレットおよび埋込みPL/SQLゲートウェイ・サーブレットなど、サーブレットの構成に使用します。
要素httpconfig (protocolconfigの子)を参照してください。
注意:
次のサーブレットは、ファイルxdbconfig.xml
に事前構成済です。これらは削除しないでください。
-
ORSServlet
-
EMExpressServlet
servlet脚注1
の子であるオプションの要素plsql
は、埋込みPL/SQLゲートウェイ・サーブレットを構成します。ただし、埋込みゲートウェイの構成方法としては、xdbconfig.xmlファイルを編集するのではなく
、PL/SQLパッケージDBMS_EPGのプロシージャを使用する方法をお薦めします
。
要素plsql
は、埋込みゲートウェイの構成に必要な、埋込みPL/SQL DAD属性脚注2ごとに子要素を持っています。これらの子はすべてオプションです。要素名はDAD属性名と同じです。要素のコンテンツは、DAD属性値と同じです。
関連項目:
-
Javaサーブレットの構成の詳細は、JavaでのOracle XML DBアプリケーションのガイドラインを参照してください。
-
埋込みPL/SQLゲートウェイの構成と使用の詳細は、Oracle Database開発ガイドを参照してください。
-
Oracle Application Expressの詳細は、Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドを参照してください。
-
DBMS_EPG
パッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。
34.3.1.7 Oracle XML DBの構成ファイルの例
Oracle XML DBの構成ファイルの例を示します。
例34-1 Oracle XML DBの構成ファイル
<xdbconfig xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdbconfig.xsd
http://xmlns.oracle.com/xdb/xdbconfig.xsd">
<sysconfig>
<acl-max-age>900</acl-max-age>
<acl-cache-size>32</acl-cache-size>
<invalid-pathname-chars>,</invalid-pathname-chars>
<case-sensitive>true</case-sensitive>
<call-timeout>300</call-timeout>
<max-link-queue>65536</max-link-queue>
<max-session-use>100</max-session-use>
<persistent-sessions>false</persistent-sessions>
<default-lock-timeout>3600</default-lock-timeout>
<xdbcore-logfile-path>/sys/log/xdblog.xml</xdbcore-logfile-path>
<xdbcore-log-level>0</xdbcore-log-level>
<resource-view-cache-size>1048576</resource-view-cache-size>
<protocolconfig>
<common>
<extension-mappings>
<mime-mappings>
<mime-mapping>
<extension>au</extension>
<mime-type>audio/basic</mime-type>
</mime-mapping>
<mime-mapping>
<extension>avi</extension>
<mime-type>video/x-msvideo</mime-type>
</mime-mapping>
<mime-mapping>
<extension>bin</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
</mime-mappings>
<lang-mappings>
<lang-mapping>
<extension>en</extension>
<lang>english</lang>
</lang-mapping>
</lang-mappings>
<charset-mappings>
</charset-mappings>
<encoding-mappings>
<encoding-mapping>
<extension>gzip</extension>
<encoding>zip file</encoding>
</encoding-mapping>
<encoding-mapping>
<extension>tar</extension>
<encoding>tar file</encoding>
</encoding-mapping>
</encoding-mappings>
</extension-mappings>
<session-pool-size>50</session-pool-size>
<session-timeout>6000</session-timeout>
</common>
<ftpconfig>
<ftp-port>2100</ftp-port>
<ftp-listener>local_listener</ftp-listener>
<ftp-protocol>tcp</ftp-protocol>
<logfile-path>/sys/log/ftplog.xml</logfile-path>
<log-level>0</log-level>
<session-timeout>6000</session-timeout>
<buffer-size>8192</buffer-size>
</ftpconfig>
<httpconfig>
<http-port>8080</http-port>
<http-listener>local_listener</http-listener>
<http-protocol>tcp</http-protocol>
<max-http-headers>64</max-http-headers>
<session-timeout>6000</session-timeout>
<server-name>XDB HTTP Server</server-name>
<max-header-size>16384</max-header-size>
<max-request-body>2000000000</max-request-body>
<logfile-path>/sys/log/httplog.xml</logfile-path>
<log-level>0</log-level>
<servlet-realm>Basic realm="XDB"</servlet-realm>
<webappconfig>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<error-pages>
</error-pages>
<servletconfig>
<servlet-mappings>
<servlet-mapping>
<servlet-pattern>/oradb/*</servlet-pattern>
<servlet-name>DBURIServlet</servlet-name>
</servlet-mapping>
</servlet-mappings>
<servlet-list>
<servlet>
<servlet-name>DBURIServlet</servlet-name>
<display-name>DBURI</display-name>
<servlet-language>C</servlet-language>
<description>Servlet for accessing DBURIs</description>
<security-role-ref>
<role-name>authenticatedUser</role-name>
<role-link>authenticatedUser</role-link>
</security-role-ref>
</servlet>
</servlet-list>
</servletconfig>
</webappconfig>
</httpconfig>
</protocolconfig>
<xdbcore-xobmem-bound>1024</xdbcore-xobmem-bound>
<xdbcore-loadableunit-size>16</xdbcore-loadableunit-size>
</sysconfig>
</xdbconfig>
34.3.1.8 Oracle XML DB Configuration API
Oracle XML DBの構成ファイルxdbconfig.xml
には、他のXML Schemaに基づくリソースと同様にアクセスできます。FTP、HTTP(S)、WebDAV、Oracle Enterprise Managerまたはあらゆるリソースおよびドキュメント・オブジェクト・モデル(DOM) API for Java、PL/SQLまたはC (OCI)を使用してアクセスできます。
便宜上、構成へのアクセスには、PL/SQLパッケージDBMS_XDB_CONFIG
を使用できます。これにより次の関数およびプロシージャが公開されます。
-
cfg_get
: 現在のセッションの構成情報を表示します。 -
cfg_refresh
: 現在の構成ファイルを使用して、セッション構成情報をリフレッシュします。典型的なcfg_refresh
の使用例には、次のものがあります。-
構成の変更後、セッションで最新バージョンの構成情報を取得する必要がある場合。
-
セッションの実行が長時間におよび、同時セッションによって構成が変更され、現行のセッションで最新バージョンの構成情報を取得する必要がある場合。
-
-
cfg_update
: 構成ファイルを書き込み、構成情報を更新します。COMMIT
が実行されます。
例34-2では、構成ファイル内のftp-port
およびhttp-port
パラメータを更新します。
多くのパラメータを更新する場合、FTP、HTTP、HTTPSまたはOracle Enterprise Managerを使用すると、より簡単に構成を更新できます。
例34-2 CFG_UPDATEおよびCFG_GETを使用した構成ファイルの更新
DECLARE
v_cfg XMLType;
BEGIN
SELECT XMLQuery('declare default element namespace
"http://xmlns.oracle.com/xdb/xdbconfig.xsd";
copy $i := $cfg
modify for $j in $i/xdbconfig
return (replace value of node $j/descendant::ftp-port with
"2121",
replace value of node $j/descendant::http-port with
"19090")
return $i'
PASSING DBMS_XDB_CONFIG.cfg_get() AS "cfg"
RETURNING CONTENT)
INTO v_cfg FROM DUAL;
DBMS_XDB_CONFIG.cfg_update(v_cfg);
END;
/
関連トピック
34.3.1.9 デフォルトの名前空間からスキーマの場所へのマッピングの構成
Oracle XML DBは、デフォルトのXML Schemaの場所のマッピングを構成するメカニズムを提供します。
Oracle XML DBでは、入力XML文書を事前解析して、XML Schemaに基づくXMLType
インスタンスを識別します。適切なxsi:schemaLocation
またはxsi:noNamespaceSchemaLocation
属性が検出された場合は、指定されたスキーマの場所を示すURLを使用して、登録済スキーマが参照されます。
適切なxsi:
属性が見つからない場合、XML文書はスキーマに基づかないとみなされます。Oracle XML DBは、デフォルトのスキーマの場所のマッピングを構成するメカニズムを提供します。適切なxsi:
属性がXML文書に指定されていない場合、デフォルトのスキーマの場所のマッピングが使用されます。
Oracle XML DB構成XML Schemaであるxdbconfig.xsd
の要素schemaLocation-mappings
を使用して、(namespace, element)
の組合せとデフォルトのスキーマの場所との間のマッピングを指定できます。element
の値が空の場合、マッピングは指定した名前空間内のすべてのグローバル要素に適用されます。namespace
の値が空の場合、NULLの名前空間に対応します。
要素schemaLocation-mappings
の定義は、次のとおりです。
<element name="schemaLocation-mappings"
type="xdbc:schemaLocation-mapping-type" minOccurs="0"/>
<complexType name="schemaLocation-mapping-type"><sequence>
<element name="schemaLocation-mapping"
minOccurs="0" maxOccurs="unbounded">
<complexType><sequence>
<element name="namespace" type="string"/>
<element name="element" type="string"/>
<element name="schemaURL" type="string"/>
</sequence></complexType>
</element></sequence>
</complexType>
使用されるスキーマの場所は、Oracle XML DB構成ファイル内の使用される名前空間と文書のルート要素のマッピングによって異なります。たとえば、文書にスキーマの場所を示す適切なxsi:
属性がないと想定します。名前空間Nに文書のルート要素Rがあると仮定します。デフォルトのスキーマの場所を識別するアルゴリズムは次のようになります。
-
Oracle XML DB構成ファイルにNおよびRのマッピングが指定されている場合は、対応するスキーマの場所が使用されます。
-
構成ファイルにNのマッピングが指定されていて、Rのマッピングが指定されていない場合、Nのスキーマの場所が使用されます。
-
ドキュメント・ルートRにいずれの名前空間も指定されていない場合は、Rのスキーマの場所が使用されます。
たとえば、Oracle XML DB構成ファイルに次のマッピングが含まれているとします。
<schemaLocation-mappings>
<schemaLocation-mapping>
<namespace>http://www.oracle.com/example</namespace>
<element>root</element>
<schemaURL>http://www.oracle.com/example/sch.xsd</schemaURL>
</schemaLocation-mapping>
<schemaLocation-mapping>
<namespace>http://www.oracle.com/example2</namespace>
<element></element>
<schemaURL>http://www.oracle.com/example2/sch.xsd</schemaURL>
</schemaLocation-mapping>
<schemaLocation-mapping>
<namespace></namespace>
<element>specialRoot</element>
<schemaURL>http://www.oracle.com/example3/sch.xsd</schemaURL>
</schemaLocation-mapping>
</schemaLocation-mappings>
次のスキーマの場所が使用されます。
-
ルート要素 =
root
-
名前空間 =
http://www.oracle.com/example
-
スキーマURL =
http://www.oracle.com/example/sch.xsd
このマッピングは、インスタンス・ドキュメントによる指定が次の場合に使用されます。
<root xmlns="http://www.oracle.com/example">
-
-
ルート要素 =
null
(名前空間内の任意のグローバル要素)-
名前空間 =
http://www.oracle.com/example2
-
スキーマURL =
http://www.oracle.com/example2/sch.xsd
このマッピングは、インスタンス・ドキュメントによる指定が次の場合に使用されます。
<root xmlns="http://www.oracle.example2">
-
-
ルート要素 =
specialRoot
-
名前空間 =
null
(NULLの名前空間) -
スキーマURL =
http://www.oracle.com/example3/sch.xsd
このマッピングは、インスタンス・ドキュメントによる指定が次の場合に使用されます。
<specialRoot>
-
注意:
この機能はXMLがサーバー上で解析される場合にサーバー側でのみ使用できます。XMLがクライアント側で解析される場合は、適切なxsi:
属性も必要になります。
34.3.1.10 XMLファイル拡張子の構成
Oracle XML DBリポジトリは、特定のファイルをそのファイル拡張子に基づいてXML文書として処理します。このようなファイルがリポジトリに挿入されると、Oracle XML DBはこれらを事前解析し、XML Schemaの場所を識別(またはデフォルトのマッピングがある場合はそれを使用)して、文書を適切なデフォルト表に挿入します。
デフォルトでは、xml
、xsd
、xsl
、xlt
の拡張子がXMLファイル拡張子とみなされます。さらに、Oracle XML DBは、各アプリケーションに対して、その他のファイル拡張子をXMLファイル拡張子として指定できるメカニズムを提供します。xml-extensions
要素は、構成スキーマのhttp://xmlns.oracle.com/xdb/xdbconfig.xsd
で次のように定義されます。
<element name="xml-extensions"
type="xdbc:xml-extension-type" minOccurs="0"/>
<complexType name="xml-extension-type"><sequence>
<element name="extension" type="xdbc:exttype"
minOccurs="0" maxOccurs="unbounded">
</element></sequence>
</complexType>
たとえば、Oracle XML DB構成ファイルxdbconfig.xml
の次のフラグメントは、拡張子vsd
、vml
およびsvgl
を持つファイルをXMLファイルとして処理することを指定しています。
<xml-extensions>
<extension>vsd</extension>
<extension>vml</extension>
<extension>svgl</extension>
</xml-extensions>
34.4 Oracle XML DBとデータベース統合
プラガブル・データベースごとに、独自のOracle XML DBリポジトリと独自のOracle XML DB構成ファイルxdbconfig.xml
があります。
マルチテナント・コンテナ・データベース(CDB)は、0(ゼロ)個以上のプラガブル・データベース(PDB)、ルートおよびシードPDB(PDBを作成するためのテンプレート)で構成されます。1つのPDBは、一度に1つのCDBにのみ関連付けることができます。ユーザーおよびアプリケーションは、1つのPDBを個別のデータベースとみなします。アプリケーションは常に単一のPDBと通信します。問合せおよびディクショナリ・ビューは、PDBに対してローカルです。PDBごとに個別のOracle XML DBリポジトリと固有のOracle XML DB構成ファイルxdbconfig.xml
を保持しています。
CDB(CDB$ROOT
)のルートには、ユーザー・データは格納されません。ただし、固有の構成ファイルxdbconfig.xml
は保持しています。
CDBのルート構成ファイルには特定のパラメータのみが含まれ、これらのパラメータはルート構成ファイルからのみ使用されます。これらのパラメータが、CDBに含まれているPDBの構成ファイルにも存在する場合は無視され、ルート構成ファイル内の対応するパラメータが優先されます。
ルートから使用する(PDBからは無視される)構成パラメータを次に示します。
-
acl-cache-size
-
acl-max-age
-
resource-view-cache-size
-
xdbcore-loadableunit-size
-
xdbcore-xobmem-bound
パラメータxdbcore-loadableunit-size
およびxdbcore-xobmem-bound
はプロセス固有です。それ以外はSGA構成パラメータです。
データベース・スキーマ(ユーザー・アカウント)XDB
は共通ユーザーであり、ルートおよび任意のPDBのどちらに対しても接続および操作を実行できます。
注意:
どのような場合でも、データベース・スキーマXDBは絶対にロック解除しないことをお薦めします。
関連項目:
-
データベース統合およびPDBの詳細は、Oracle Database管理者ガイドおよびOracle Database概要を参照してください。
-
構成パラメータ
resource-view-cache-size
、xdbcore-loadableunit-size
およびxdbcore-xobmem-bound
の詳細は、Oracle XML DBリポジトリ操作のパフォーマンス・ガイドラインを参照してください。 -
構成パラメータ
xdbcore-loadableunit-size
およびxdbcore-xobmem-bound
の詳細は、コレクションでの大規模な文書のロードおよび取得の考慮事項を参照してください。 -
構成パラメータ
acl-max-age
の詳細は、ACLキャッシングを参照してください。
親トピック: Oracle XML DBの管理
34.5 パッケージDBMS_XDB_ADMIN
PL/SQLパッケージDBMS_XDB_ADMIN
には、Oracle XML DBおよびOracle XML DBリポジトリを管理および構成するためのサブプログラムが含まれています。
表34-1では、これらのサブプログラムについて説明します。
表34-1 DBMS_XDB_ADMIN管理プロシージャ
関数/プロシージャ | 説明 |
---|---|
|
データベース・スキーマ(ユーザー・アカウント) |
|
階層リポジトリ索引を再構築します。これには、特に |
注意:
Oracle Database 11gリリース2 (11.2.0.3)以前は、これらのプロシージャはPL/SQLパッケージDBMS_XDB
に付属していました。パッケージDBMS_XDB
内のこれらの2つのプロシージャはりリース11.2.0.3の時点では非推奨です。
注意:
XM操作に悪影響が生じる可能性があるため、Oracle XML DBリポジトリを含む表領域を読取り専用にすることはできません。
デフォルトでは、Oracle XML DBリポジトリは表領域SYSAUX
にあり、他のものにも使用されています。かわりに、リポジトリだけが使用する専用の表領域を作成することをお薦めします。
プロシージャDBMS_XDB_ADMIN.moveXDB_tablespace
を使用して、データベース・スキーマXDB
をリポジトリ専用のその表領域に移動します。表領域が読取り専用でないことを確認してください。
脚注の説明
脚注1:埋込みPL/SQLゲートウェイの構成に使用されるplsql
要素には、2つの異なるものがあります。1つはhttpconfig
の子で、グローバル・パラメータを定義します。もう1つはservlet
の子で、DAD属性を定義します。
脚注2:
DADは、データベース・アクセス記述子の略語です。DAD属性は、このような記述子を定義するパラメータです。