この付録では、現在のOracle DatabaseリリースでOracleセマンティク・テクノロジ・サポートに関連する任意の型、シノニムまたはPL/SQLパッケージを使用するために実行する必要がある手順について説明します。この手順を実行する前に、1つ以上のスクリプトを実行し、Spatialがインストールされていること、およびPartitioningオプションが使用可能になっていることを確認する必要があります。これらの要件は、A.1項で説明されています。
この付録では、セマンティク・テクノロジ・サポートを有効にした後、次のいずれかを実行する必要がある場合、その手順についても説明します。
A.2項の説明にあるとおり、以前のOracle Databaseリリースに付属のセマンティク・テクノロジ・サポートをダウングレードします。
A.3項の説明にあるとおり、データベースからセマンティク・テクノロジのすべてのサポートを削除します。
現在のOracle DatabaseリリースでOracleセマンティク・テクノロジ・サポートに関する任意の型、シノニムまたはPL/SQLパッケージを使用するには、状況に応じた次の各項の手順に従って、この機能を新しいOracle Databaseインストールにインストールするか、この機能を以前のリリースからアップグレードする必要があります。
リリース11.2.0.2.0へのアップグレード後に、セマンティク・テクノロジのインストールが無効になっている場合は、A.1.4項「リリース11.2.0.2: セマンティク・テクノロジのインストールが無効になっている場合の必要なアクション」を参照してください。
また、A.1.5項の説明にあるとおり、Spatialがインストール済で、Partitioningオプションが有効化されていることを確認する必要があります。
Oracle Databaseリリース11.2の新規インストールでセマンティク・テクノロジ・サポートを有効化するには(または、A.1.3項の説明にあるとおり、RDFネットワークが存在しない場合に、リリース10.2からアップグレードするには)、次の手順を実行します。
SYSDBA権限を持つSYSユーザーとしてデータベースに接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
SQL*Plusを起動し、次の文を入力します。
Linuxの場合: @$ORACLE_HOME/md/admin/catsem.sql
Windowsの場合: @%ORACLE_HOME%\md\admin\catsem.sql
セマンティク・ネットワークがすでに存在する場合、またはセマンティク・テクノロジの型、表、PL/SQLパッケージがすでに存在する場合、catsem.sql
スクリプトはエラーで終了します。
スクリプトが正常に実行された場合、次の列値を持つ行がMDSYS.RDF_PARAMETER表に挿入されます。
名前空間: MDSYS
属性: SEM_VERSION
値: (112
で始まる文字列)
説明: VALID
6.1項「RDFデータに対するWorkspace Managerサポートの有効化」の説明にあるとおり、Workspace ManagerでRDFデータを使用する場合、catsem.sql
を実行した後に適切なスクリプトを実行する必要もあります。
リリース11.1のセマンティク・テクノロジ・サポートが含まれるOracle Databaseリリース11.1からのアップグレードでは、データベースがアップグレードされると、セマンティク・テクノロジ・サポートがリリース11.2に自動的にアップグレードされます。6.1項「RDFデータに対するWorkspace Managerサポートの有効化」の説明にあるとおり、Workspace ManagerでRDFデータを使用する場合、セマンティク・テクノロジ・サポートのアップグレードを実行した後に適切なスクリプトを実行する必要もあります。
ただし、既存のリリース11.1のRDFネットワークにxsd:float、xsd:double、xsd:booleanまたはxsd:timeの型付きリテラル値を含むトリプルがある場合は、RDFデータの移行も必要になります。
RDFデータを移行する必要があるかどうかを調べるには、DBA権限を持つユーザーとしてデータベースに接続し、次のようにMDSYS.RDF_PARAMETER表を問い合せます。
SELECT namespace, attribute, value FROM mdsys.rdf_parameter WHERE namespace='MDSYS' AND attribute IN ('FLOAT_DOUBLE_DECIMAL', 'XSD_TIME', 'XSD_BOOLEAN', 'DATA_CONVERSION_CHECK');
FLOAT_DOUBLE_DECIMAL属性、XSD_TIME属性またはXSD_BOOLEAN属性に文字列値INVALID
がある場合、またはDATA_CONVERSION_CHECK属性に文字列値FAILED_UNABLE_TO_LOCK_APPLICATION_TABLES
、FAILED_INSUFFICIENT_WORKSPACE_PRIVILEGES
またはFAILED_OLS_POLICIES_ARE_ENABLED
がある場合は、RDFデータを移行する必要があります。
ただし、FLOAT_DOUBLE_DECIMAL属性、XSD_TIME属性、XSD_BOOLEAN属性が存在しないか、文字列値VALID
がなく、DATA_CONVERSION_CHECK属性が存在しない場合は、RDFデータを移行する必要はありません。ただし、セマンティク・ネットワークに空のRDFリテラルがある場合は、A.1.2.1項「空のRDFリテラルの処理」を参照し、既存の空のリテラルを新しい形式に移行することを選択した場合は、この項の手順に従います。
RDFデータを移行するには、次の手順に従います。
SYSDBA権限を持つSYSユーザーとしてデータベースに接続し(SYS AS SYSDBAを使用して、SYSアカウントのパスワードを求められたら入力し)、SET CURRENT_SCHEMA=MDSYS
を入力します。
ユーザーMDSYSに次の権限があることを確認します。
セマンティク・ネットワークのすべてのアプリケーション表へのINSERT権限
ALTER ANY INDEX権限(オプション: ドキュメントのセマンティク索引付けが使用されている場合のみ必要)
バージョン対応アプリケーション表が変更されたワークスペースに対するACCESS権限(オプション: RDFデータにWorkspace Managerを使用する場合のみ必要)
RDFデータに対するOLSポリシーを一時的に無効化します(オプション: RDFデータにOLSが使用されている場合のみ必要)。OLSポリシーは、convert_old_rdf_dataを実行した後に、再度有効にできます。
SQL*Plusを起動します。既存の空のリテラルを新しい形式に変換することなくRDFデータを移行する(A.1.2.1項を参照)には、次の文を入力します。
EXECUTE sdo_rdf_internal.convert_old_rdf_data;
RDFデータを移行し、既存の空のリテラルも新しい形式に変換する場合は、convert_old_rdf_data
にflags
パラメータ('CONVERT_ORARDF_NULL'
に設定)を付けてコールします。また、オプションでtablespace_name
パラメータを使用し、データ移行中に中間表を作成するときに使用する表領域を指定できます。たとえば次の文は、古いセマンティク・データを移行し、既存の"orardf:null "
値を""に変換して、中間表にMY_TBS表領域を使用します。
EXECUTE sdo_rdf_internal.convert_old_rdf_data( flags=>'CONVERT_ORARDF_NULL', tablespace_name=>'MY_TBS');
セマンティク・ネットワークにxsd:float、xsd:double、xsd:timeまたはxsd:booleanの型付きリテラルを使用する(または使用の影響を受ける)多数のトリプルが含まれている場合、sdo_rdf_internal.convert_old_rdf_data
プロシージャの実行に非常に長い時間がかかることがあります。
Linuxの場合: @$ORACLE_HOME/md/admin/semrelod.sql
Windowsの場合: @%ORACLE_HOME%\md\admin\semrelod.sql
注意: リリース11.2にアップグレードした後に、sdo_rdf_internal.convert_old_rdf_data プロシージャとsemrelod.sql スクリプトが実行されなかった場合、SEM_MATCH問合せの実行時にORA-00904 (無効な識別子)エラーが発生することがあります。 |
リリース11.2では、値が空のRDFリテラルを処理する方法が変更されました。以前のリリースでは、値が空のリテラルは"orardf:null "
に変換されていました。リリース11.2では、そのような値は変更されることなく(""のまま)格納されます。ただし、既存の"orardf:null "
値を""に移行するかどうかはオプションです。
"orardf:null "
値がセマンティク・ネットワークに存在するかどうかを調べるには、DBA権限を持つユーザーとしてデータベースに接続し、次のようにMDSYS.RDF_PARAMETER表を問い合せます。
SELECT namespace, attribute, value FROM mdsys.rdf_parameter WHERE namespace='MDSYS' AND attribute = 'NULL_LITERAL';
NULL_LITERAL属性に値EXISTS
がある場合、セマンティク・ネットワークに"orardf:null "
値が存在することになります。
リリース10.2のセマンティク・テクノロジ・サポートが含まれるOracle Databaseリリース10.2からのアップグレードでは、RDFネットワークが存在するかどうかで必要なアクションが異なります。
RDFネットワークが存在しない場合は、この項の残りの部分をスキップして、A.1.1項「新規データベース・インストールでのセマンティク・テクノロジ・サポートの有効化」の指示に従ってください。
RDFネットワークが存在する場合は、Oracle Databaseのアップグレード後に次の手順を実行します。
SYSDBA権限を持つSYSユーザーとしてデータベース(リリース11.2)に接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
Linuxの場合: @$ORACLE_HOME/md/admin/catsem10i.sql
Windowsの場合: @%ORACLE_HOME%\md\admin\catsem10i.sql
catsem10i.sql
スクリプトでリリース11.2のセマンティク・テクノロジ・サポートを有効化し、リリース10.2からリリース11.2の形式にRDFデータを移行します。既存のリリース10.2のRDFネットワークに大量のRDFデータが含まれている場合は、スクリプトの実行に時間がかかることがあります。
リリース11.2.0.2.0へのアップグレード後にセマンティク・テクノロジのインストールが無効である場合、追加アクションが必要になることがあります(リリース11.2.0.3以降にアップグレードする場合は、この問題は発生しません)。次のいずれかまたは両方に該当する場合は、リリース11.2.0.2.0へのアップグレード後にアクションが必要です。
MDSYS.RDF_PARAMETER表に次の値を持つ行が存在する。
MDSYS SEM_VERSION 11202 INVALID
次の問合せによって戻される行で、STATUS列の値がINVALIDである。
SELECT object_name, status FROM all_objects WHERE object_name = 'SEMCONTEXTINDEXMETHODS' or object_name = 'PRLLIDX_CREATE';
このような場合は、SYSDBAとして次の一連のコマンドを入力し、インストールのアップグレードを完了します。
SQL> @ $ORACLE_HOME/md/admin/sdordfctx.sql SQL> @ $ORACLE_HOME/md/admin/semrelod.sql SQL> EXECUTE sys.validate_sdo;
前述のコマンドに関する注意事項:
sdordfctx.sql
の実行時における、ORA-01921、ORA-02303、ORA-00955、ORA-29809の各エラーは無視してかまいません。
sys.validate_sdo
を実行するのは、SDOが無効になっているために、セマンティク・テクノロジが無効化されていると考えられる場合にのみ必要ですが、いずれにしてもsys.validate_sdo
を実行して問題ありません。
前述のコマンドを実行したら、MDSYS.RDF_PARAMETER表に次の値を持つ行があるかどうかをチェックして、セマンティク・テクノロジのインストールが有効になったかどうかを確認します。
MDSYS SEM_VERSION 11202 VALID
Oracle Spatialは、RDFおよびOWLの機能を使用する前にインストールする必要があります。Oracle Locatorだけでは不十分です。SpatialおよびLocatorの詳細は、『Oracle Spatial開発者ガイド』を参照してください。
Partitioningオプションは、RDFおよびOWLの機能を使用する前に有効にする必要があります。Partitioningオプションに関するライセンス情報は、『Oracle Databaseライセンス情報』を参照してください。パーティショニングの使用に関する情報は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
この項では、セマンティク・テクノロジ・サポートをダウングレードする方法について、Oracle Databaseのリリース11.1や10.2へのダウングレードとあわせて説明します。
まれに必要になる場合を除き、ダウングレードはしないことをお薦めします。以前のリリースにダウングレードすると、その間のリリースで行われたバグ・フィックスや機能拡張のメリットが得られないことになります。
RDFデータのWorkspace Managerサポートを有効にした場合、6.1.1項の説明にあるとおり、データベースのセマンティク・テクノロジ・サポートをダウングレードする前に、そのサポートを削除する必要があります。
Oracle Databaseリリース11.1にダウングレードする必要がある場合、データベースをダウングレードすると、セマンティク・テクノロジ・コンポーネントは自動的にダウングレードされます。ただし、リリース11.2に固有のRDFデータまたはOWLデータ(以前のバージョンでサポートされない、リリース11.2のRDF/OWLの永続的な構造)は、データベースとリリース11.1の互換性のために、ダウングレードを実行する前に削除する必要があります。
仮想モデルは、2008年11月にMy Oracle Support (MetaLink)で導入されたリリース11.1.0.7.0のパッチ(番号: 7600122)を介してのみ使用できるため、ダウングレード時に保持されません。仮想モデルを使用するには、ダウングレード後にこのパッチを再適用して、仮想モデルを再作成する必要があります。semvmrecreate.sql
スクリプトを実行して、リリース11.2のセマンティク・ネットワークに存在していた仮想モデルを自動的に再作成するスクリプトを生成しておき、それを後で(ダウングレード後に)使用すると便利です。そのためには、データベースをダウングレードする前に次の手順を実行します。
SYSDBA権限を持つSYSユーザーとしてデータベース(リリース11.2)に接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
Linuxの場合: @$ORACLE_HOME/md/admin/semvmrecreate.sql /
my_dir_path/my_vm_recreate.sql
Windowsの場合: @%ORACLE_HOME%\md\admin\semvmrecreate.sql \
my_dir_path\my_vm_recreate.sql
ここで、my_dir_pathはmy_vm_recreate.sql
スクリプト・ファイルの作成先のパスです。(必要に応じて、スクリプトのファイル名を変更できます。)
リリース11.1と互換性のないリリース11.2のRDFデータがあるかどうかをチェックするには、次の手順を実行します。
SYSDBA権限を持つSYSユーザーとしてデータベース(リリース11.2)に接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
SQL*Plusを起動し、次の文を入力します。
SET SERVEROUT ON EXECUTE SDO_SEM_DOWNGRADE.CHECK_111_COMPATIBLE;
リリース11.1と互換性のないRDFデータがある場合は、プロシージャによってエラーが生成され、互換性のないデータのリストが表示されます。この場合、データベースをダウングレードした後で、次のようにsemrelod111.sql
スクリプトを実行する必要があります。
リリース11.2のデータベースで、次の場所にあるsemrelod111.sql
ファイルのコピーを保存します。
Linuxの場合: $ORACLE_HOME/md/admin/semrelod111.sql
Windowsの場合: %ORACLE_HOME%\md\admin\semrelod111.sql
ダウンロード後に再作成する仮想モデルがある場合は、この項の前半の説明にあるように、semvmrecreate.sql
スクリプトを実行します(まだ実行していない場合)。
リリース11.2のリリース固有のRDFデータまたはOWLデータ(仮想モデルを含む)がある場合は、この項の前半の説明にあるように、それらを削除します(まだ実行していない場合)。
データベースのダウングレードを実行します。
リリース11.1のデータベースで、semrelod111.sql
ファイルの保存コピーを次の場所にコピーします。
Linuxの場合: $ORACLE_HOME/md/admin/
Windowsの場合: %ORACLE_HOME%\md\admin\
SYSDBA権限を持つSYSユーザーとしてリリース11.1のデータベースに接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
SQL*Plusを起動し、次の文を入力します。
Linuxの場合: @$ORACLE_HOME/md/admin/semrelod111.sql
Windowsの場合: @%ORACLE_HOME%\md\admin\semrelod111.sql
semrelod111.sql
スクリプトが正常に完了すると、リリース11.1のOracleセマンティク・テクノロジ・サポートが有効になり、使用する準備が整います(リリース11.1対応のデータはすべて保持されています)。
仮想モデルのサポートを有効にする場合は、リリース11.1.0.7の個別パッチ番号7600122を適用します。
ダウングレード後に仮想モデルを再作成するためのmy_vm_recreate.sql
スクリプトを作成してある場合は、my_dir_pathの場所に移動して、SYSDBA権限を持つSYSユーザーとしてデータベースに接続し、SQL*Plusを起動し、my_vm_recreate.sql
スクリプトを実行します。
Oracle Databaseリリース10.2にダウングレードする必要がある場合は、A.2.1項の指示に従ってリリース11.1にダウングレードし、この項の残りの指示(リリース11.1のマニュアルから抜粋)にあるとおり、リリース11.1からリリース10.2にダウングレードします。
Oracle Databaseリリース10.2にダウングレードする必要がある場合で、Oracle Databaseリリース11のRDFまたはOWL機能をすでに使用しており、既存のセマンティク・データおよびルールベースを保存する場合、ダウングレードを準備する文を実行してからダウングレードを実行し、次にセマンティク・データをリストアする別の文を実行する必要があります。
ただし、次の考慮事項が適用されます。
伴意グラフ・データは保存されません(Oracle Databaseリリース10.2のRDF推論APIを使用して同じ情報を生成できるためです)。
OWLに関連するルールベースまたはルール索引は保存されません(Oracle Databaseリリース10.2ではOWLボキャブラリがサポートされないためです)。
次の手順を実行します。
データベースのダウングレードの前に、SYSDBA権限を持つSYSユーザーとしてリリース11のデータベースに接続します(SYS
AS SYSDBA
を使用して接続し、プロンプトが表示されたらSYSアカウントのパスワードを入力します)。
SQL*Plusを起動し、次の文を入力します。
EXECUTE SDO_SEM_DOWNGRADE.PREPARE_DOWNGRADE_FROM_11;
この文の実行に成功すると、既存のすべてのセマンティク・データとルールベースが保存されます。これらのセマンティク・データは、データベースのダウングレード後にリストアします。
データベースのダウングレードを実行します。
Oracle Technology Networkサイトの「Semantic Technologies」ページからsdosemdgu.plb
というファイルをダウンロードします。
現在使用中のOracle Databaseリリース10.2のリリース番号が10.2.0.1の場合にのみ、「Software」リンクをクリックし、RDF固有のパッチをダウンロードしてインストールします。(リリース10.2.0.1にはセマンティク・データをリストアするためのバッチ・ロード機能が含まれていないため、このパッチが必要です。)
SYSDBA権限を持つSYSユーザーとしてリリース10.2のデータベースに接続します。
SQL*Plusを起動し、次の文を入力します。
EXECUTE SDO_SEM_DOWNGRADE_UTL.PREPARE_DOWNGRADE_TO_102('<tablespace-name>');
<tablespace-name>は、RDFネットワークを作成する表領域の名前です。
この文の実行に成功すると、ダウングレード前に保存したすべてのセマンティク・データがリストアされ、使用できるようになります。
この項では、データベースからセマンティク・テクノロジ・サポートを削除する方法について説明します。特別な理由がないかぎり、このサポートは削除しないことを強くお薦めします。このサポートを削除すると、アプリケーションまたはデータベース・ユーザーはセマンティク・テクノロジ・サポートに関連する型、シノニムまたはPL/SQLパッケージを使用できなくなります。
RDFデータのWorkspace Managerサポートを有効にした場合、6.1.1項の説明にあるとおり、データベースからセマンティク・テクノロジ・サポートを削除する前に、そのサポートを削除する必要があります。
データベースからセマンティク・テクノロジ・サポートを削除するには、次の手順を実行します。
SYSDBA権限を持つSYSユーザーとしてデータベース(リリース11.2)に接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
Linuxの場合: @$ORACLE_HOME/md/admin/semremov.sql
Windowsの場合: @%ORACLE_HOME%\md\admin\semremov.sql
semremov.sql
スクリプトは、セマンティク・ネットワークを削除し、セマンティク・テクノロジの型、表およびPL/SQLパッケージも削除します。