A インストール、移行、互換性およびアップグレード

この付録では、Oracle Spatial and Graph関連のインストール、移行、互換性およびアップグレードに関する情報を示します。

Oracle Databaseの現行リリースにアップグレードする場合、Oracle Spatial and Graphは操作の一部として自動的にアップグレードされます。アップグレード手順については、『Oracle Databaseアップグレード・ガイド』を参照してください。

Spatial and GraphをOracle Databaseの以前のリリースにダウングレードする場合、『Oracle Databaseアップグレード・ガイド』に記載されている、Oracle Databaseの以前のリリースへのダウングレード手順を参照してください。

データベース間で空間データを移行する場合は、「データベース間での空間データの移行」を参照してください。

Oracle Spatial and Graph GeoRasterを使用する場合、「インストールまたはアップグレード後にGeoRasterが正しく動作するための確認事項」を参照してください。

Spatial and GraphのWeb Feature Service (WFS)のサポートまたはCatalog Services for the Web (CSW)のサポートを使用している場合、および1つ以上のSYS.XMLTABLEINDEXの索引を使用して索引付けされた以前のリリースのデータがある場合は、「アップグレード前およびアップグレード後に行う索引のメンテナンス(WFSおよびCSW)」を参照してください。

1,048,576より大きい縦座標のジオメトリをサポートする必要がある場合は、「非常に大きなジオメトリをサポートするための縦座標配列のサイズの増大」を参照してください。

A.1 Spatial and Graphの手動インストール

この項は、Oracle Databaseのインストール時にデフォルトでOracle Spatial and Graphがインストールされておらず、後でSpatial and Graphをインストールする場合に適用されます。

Spatial and Graphを手動でインストールするには、SQL DeveloperやSQLPLUSなどのSQLベースのインタフェースを使用して次のステップを実行する必要があります。

  1. SYSDBAとしてOracle Databaseに接続します。
    CONNECT / AS SYSDBA
  2. mdinst.sqlスクリプトを次のように実行します。
    @$ORACLE_HOME/md/admin/mdinst.sql

マルチテナント・インストール

CDB$ROOTおよびマルチテナント環境内のすべてのPDBにSpatial and Graphをインストールするには、次のようにcatcon.plスクリプトを実行してmdinst.sqlを実行します。

cd $ORACLE_HOME/perl/bin/
perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/knl_test7 -s -e -b mdinst.log mdinst.sql > mdinst_catcon.log >> mdinst_catcon.err

ノート:

Spatial and Graphは、他のPDBにインストールする前に、常にCDB$ROOTにインストールする必要があります。

特定のPDBにのみSpatial and Graphをインストールする場合は、CDBでのOracle提供のSQLスクリプトの実行を参照してください。

A.2 データベース間での空間データの移行

空間データの移行とは、Oracle Database間でのOracle Spatial and Graphジオメトリ・オブジェクトの移動またはコピーのことを言います。(データベースでは、同じまたは異なるリリース番号のOracle Databaseを使用できます。)

データベース・リンク、エクスポート/インポート、Oracle Data Pumpまたはトランスポート可能な表領域を使用して空間データを移行する場合、MDSYSスキーマがすでに移行先のデータベースに存在している必要があります。

限定された状況では、SDO_MIGRATE.TO_CURRENTサブプログラム(「SDO_MIGRATEパッケージ(アップグレード)」を参照)を使用しなければならい場合もあります。そのサブプログラムの「使用上のノート」を参照してください。

A.3 インストールまたはアップグレード後にGeoRasterが正しく動作するための確認事項

Oracle Spatial and GraphのGeoRaster機能を使用するには、この機能を有効にする必要があります。

アップグレード後に、GeoRasterオブジェクトおよびデータが有効であり、GeoRasterの機能を使用するすべてのスキーマに対してGeoRasterが有効になっていることを確認します。詳細は、『Oracle Spatial and Graph GeoRaster開発者ガイド』のデータベースでのGeoRasterオブジェクトおよびシステム・データの保守に関する項を参照してください。

A.3.1 スキーマ・レベルでのGeoRasterの有効化

GeoRasterは、GeoRaster機能を使用するデータベース・スキーマごとに有効にする必要があります。

Oracle Spatial and Graphの最初のインストール後、デフォルトではGeoRaster機能が無効になっています。GeoRasterは(データベース全体に対してではなく)スキーマのスコープ内でのみ有効にでき、GeoRaster機能を使用する各スキーマに対して有効にする必要があります。

GeoRasterを有効にするには、GeoRasterが有効化されるスキーマごとに次のステップを実行します。

  1. このスキーマのユーザーにCREATE TRIGGER権限があることを確認します(GeoRasterの適切な動作に必要)。ユーザーにCREATE TRIGGER権限がない場合(または権限の有無がわからない場合)は、DBA権限があるユーザーとして接続して次のコードを実行します。
    GRANT CREATE TRIGGER TO scott;
  2. そのスキーマのユーザーとしてデータベースに接続します。たとえば:
    CONNECT scott/<password-for-scott>
  3. 次の文を入力します。
    EXECUTE SDO_GEOR_ADMIN.enableGeoRaster;
  4. 次の文がTRUEを返すことを確認して、GeoRasterが有効になっていることを確認します。
    SELECT SDO_GEOR_ADMIN.isGeoRasterEnabled FROM DUAL;

データベース・スキーマごとに、SDO_GEOR_ADMIN.enableGeoRasterをコールする必要があるのは1回のみです。いずれの場合も、GeoRaster機能が有効かどうかを確認するために、ユーザーはSDO_GEOR_ADMIN.isGeoRasterEnabledファンクションをコールできます。SDO_GEOS_ADMIN.disableGeoRasterプロシージャを使用して、データベース・スキーマのGeoRaster機能を無効にできます。

GeoRaster表が作成されてデータが移入されると、データベースのアップグレード後にその表のスキーマに対してGeoRasterが自動的に有効化されるため、スキーマに対してGeoRasterを再度有効化する必要はありません。(CREATE TRIGGER権限がユーザーに付与されていることを確認します。)

A.4 アップグレード前およびアップグレード後に行う索引のメンテナンス(WFSおよびCSW)

リリース11.2では、SYS.XMLTABLEINDEX索引タイプは非推奨となっています。このため、SpatialのWFSおよびCSWのcreateXMLTableIndexメソッドでは、以前のリリースでのSYS.XMLTABLEINDEX型のかわりにXDB.XMLINDEX型の索引が作成されます。ただし、1つ以上のSYS.XMLTABLEINDEXの索引を使用して索引付けされた以前のリリースのデータがある場合は、次のようにして、アップグレードする前に関連付けられた索引を削除し、アップグレードした後に索引を再作成する必要があります。

  1. Oracle Databaseリリース11.1を使用し、dropXMLTableIndexメソッド(アプリケーションに応じて、oracle.spatial.csw.CSWAdminまたはoracle.spatial.wfs.WFSAdminのいずれか適切な方)をコールして関連付けられた索引を削除します。

  2. データベースをリリース11.1からリリース11.2にアップグレードします。

  3. Oracle Databaseリリース11.2を使用し、createXMLTableIndexメソッド(アプリケーションに応じて、oracle.spatial.csw.CSWAdminまたはoracle.spatial.wfs.WFSAdminのいずれか適切な方)をコールして、ステップ1で削除した索引を作成します。

Spatial and GraphのWeb Feature Service (WFS)のサポートの詳細は、「Web Feature Service (WFS)のサポート」を参照してください。

Spatial and GraphのCatalog Services for the Web (CSW)のサポートの詳細は、「Catalog Services for the Web (CSW)のサポート」を参照してください。

A.5 非常に大きなジオメトリをサポートするための縦座標配列のサイズの増大

1,048,576より大きい縦座標のジオメトリをサポートする必要がある場合は、この項の説明に従う必要があります。ただし、これにより、多くの追加作業(スクリプトの実行や既存の空間データの移行)、データベースのダウンタイム、およびいくつかの考慮事項と制限事項が発生します。したがって、必要がないかぎり、この項の操作は実行しないようにしてください。

最大10Mの縦座標のジオメトリをサポートするために縦座標配列のサイズを増やすには、次のステップを実行します。

  1. 空間表やOracle Spatial and Graphの機能を使用しているユーザーがいないことを確認します。
  2. SYSDBA権限を持つSYSユーザーとしてデータベースに接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
  3. SDO_GEOMETRY列を含む表にマテリアライズド・ビューが存在する場合は、次のステップ(sdoupggeom.sqlの実行)を実行する前に、すべてのマテリアライズド・ビューを削除します。

    これらのマテリアライズド・ビューは、アップグレード操作の完了後に再作成できます。

  4. 次の文を入力します。
    • Linuxの場合: @$ORACLE_HOME/md/admin/sdoupggeom.sql

    • Windowsの場合: @%ORACLE_HOME%\md\admin\sdoupggeom.sql

    sdoupggeom.sqlスクリプトの操作のうちの1つは、新しいSDO_ORDINATE_ARRAY定義を反映するために、すべての空間データを自動的に移行することです。このスクリプトは完了までに時間がかかることがあり、必要な時間は、データベースに存在する空間データの量によって変わります。

これらのステップを実行した後、次の考慮事項および制限事項が適用されます。

  • 古いSDO_ORDINATE_ARRAY定義で作成された既存のトランスポータブル表領域はどれも機能しません。

  • エクスポート・ファイルが、古いSDO_ORDINATE_ARRAY定義を持つデータベース上で従来のエクスポート・ユーティリティを使用して作成された場合、および新しいSDO_ORDINATE_ARRAY定義を使用しているデータベースにそのファイルをインポートする必要がある場合は、次の例のように、従来のインポート・ユーティリティでTOID_NOVALIDATEフラグを指定する必要があります。

    imp scott/<password> file=states.dmp tables=states TOID_NOVALIDATE=MDSYS.SDO_GEOMETRY,MDSYS.SDO_ORDINATE_ARRAY,MDSYS.SDO_ELEM_INFO_ARRAY
    
  • また、sdoupggeom.sqlをソース・データベースで実行した後に、Oracle Data Pumpを使用してデータをインポートする場合、インポート操作の後に、sdoupggeom.sqlをターゲット(移行先)データベースで実行する必要もあります。