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 データベース間での空間データの移行

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

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

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

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

Oracle Spatial and GraphのGeoRaster機能を使用するには、この機能を有効にし、Oracle XML DB Repositoryが適切にインストールされていることを確認する必要があります。

トピック:

A.2.1 GeoRasterの有効化

Oracle Spatial and Graphの最初のインストール後、デフォルトではGeoRaster機能が無効になっています。GeoRasterを有効にするには、次の手順に従います。

  1. SYS AS SYSDBAとしてデータベースに接続します。
  2. 次の文を入力します。
    EXECUTE MDSYS.enableGeoRaster;
    

GeoRasterを有効にした後、データベースを後でアップグレードする場合、GeoRasterを再度有効化する必要はありません

A.2.2 Oracle XML DBリポジトリがインストールされていることの確認

詳細は、『Oracle Spatial and Graph GeoRaster開発者ガイド』の第1章の最初の方にあるインストールおよびアップグレードに関する注意事項を参照してください。

Oracle Spatial and GraphのGeoRaster機能を使用するには、Oracle XML DB Repositoryを適切にインストールする必要があります。(通常、Oracle Spatial and Graphをインストールする前に、Oracle XML DB Repositoryがインストールされていることを確認する必要があります。)

(アップグレード時のように) Oracle Spatial and GraphはインストールされていてもOracle XML DB Repositoryがインストールされていない場合は、Oracle XML DB Repositoryをインストールし、関連するGeoRaster PL/SQLパッケージをリロードする必要があります。この場合には、次の手順を実行します。

  1. Oracle XML DB Repositoryをインストールします。

    Oracle XML DB Repositoryのインストールについては、『Oracle XML DB開発者ガイド』を参照してください。

  2. $ORACLE_HOME/md/adminディレクトリに移動します。

  3. SYS AS SYSDBAとしてデータベースに接続します。

  4. 次のSQL文を入力します。

    ALTER SESSION SET CURRENT_SCHEMA=MDSYS;
    @prvtgrs.plb
    @sdogrxml.sql

A.2.3 アップグレード後にSDO_GEORASTER型を変更する必要があるかどうかの確認

Spatial and Graphをリリース12.2にアップグレードし、SDO_GEORASTERオブジェクトを含むユーザー表領域がアップグレード中読取り専用であった場合、SDO_GEORASTER型を変更する必要があることがあります。

アップグレード時、SDO_GEORASTERオブジェクトを含むユーザー表領域が読取り専用でなければ、アップグレードの一環としてSDO_GEORASTER型は(より長いRDT名を使用できるよう)自動的に変更されます。読取り専用であった場合、型は変更されません。変更する手順を実行する必要があります。

次のSQL文を入力し、RASTERDATATABLEの長さが128か32かを確認すると、SDO_GEORASTER型を変更する必要があるかどうかを確認できます。

SQL> DESCRIBE sdo_georaster
 Name                            Null?    Type
 ------------------------------- -------- ----------------------------
 RASTERTYPE                               NUMBER
 SPATIALEXTENT                            MDSYS.SDO_GEOMETRY
 RASTERDATATABLE                          VARCHAR2(128)
 RASTERID                                 NUMBER
 METADATA                                 XMLTYPE
  • RASTERDATATABLE列の型がVARCHAR2(128)の場合、SDO_GEORASTER型は正常に変更されており、変更する必要はありません。

  • RASTERDATATABLE列の型がVARCHAR2(32)の場合、SDO_GEORASTER型は正常に変更されておらず、このトピックの残りに示す手順に従って変更する必要があります。

SDO_GEORASTER型を変更する必要がある場合、次の手順に従います。

  1. 次の文を入力して、SDO_GEORASTERオブジェクトを含む読取り専用表領域のリストを見つけます。

    SQL> connect / as sysdba
    Connected.
    SQL> select distinct TABLESPACE_NAME from dba_tables a, mdsys.sdo_geor_sysdata_table b where a.owner=b.SDO_OWNER and a.TABLE_NAME=b.GEORASTER_TABLE_NAME;
    
    TABLESPACE_NAME
    ------------------------------
    TBS_3
    
  2. 前述のステップで検出された各読取り専用表領域について、手動で読取り/書込みに変更します。たとえば、次のようにします(各表領域について同様の処理を行います)。

    SQL> alter tablespace tbs_3 read write;
    
  3. 次の文を入力してSDO_GEORASTER型を変更します。

    SQL> connect / as sysdba
    
    Connected.
    
    SQL> alter session set current_schema=MDSYS;
    
    Session altered.
    
    SQL> alter type SDO_GEORASTER modify attribute ( rasterDataTable VARCHAR2(128) ) cascade including table data;
    
    Type altered.
  4. ステップ2で読取り/書込みに設定した各表領域を読取り専用に戻します。たとえば、次のようにします(各表領域について同様の処理を行います)。

    SQL> alter tablespace tbs_3 read only;
    

A.3 アップグレード前およびアップグレード後に行う索引のメンテナンス(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.4 非常に大きなジオメトリをサポートするための縦座標配列のサイズの増大

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

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

  1. 空間表やOracle Spatial and GraphまたはLocatorの機能を使用しているユーザーがいないことを確認します。
  2. SYSDBA権限を持つSYSユーザーとしてデータベースに接続します(SYS AS SYSDBAを使用し、SYSアカウントのパスワードを求められたら入力します)。
  3. 次の文を入力します。
    • 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をターゲット(移行先)データベースで実行する必要もあります。