

# Oracle Spatial
<a name="Oracle.Options.Spatial"></a>

Amazon RDS は、`SPATIAL` オプションを使用することで Oracle Spatial をサポートします。Oracle Spatial は、Oracle データベースのストレージ、取得、更新、および spatial データコレクションのクエリを可能にする SQL スキーマと機能を提供します。詳細については、Oracle ドキュメントの [Spatial Concepts](http://docs.oracle.com/database/121/SPATL/spatial-concepts.htm#SPATL010) を参照してください。Amazon RDS は、サポートされているすべてのリリースのすべてのエディションで Oracle Spatial をサポートしています。

## Spatial パッチバンドル (SPB) の仕組み
<a name="Oracle.Options.Spatial.SPBs"></a>

RDS for Oracle は、四半期ごとに、サポートされているすべてのメジャーエンジンに対して新しいマイナーエンジンバージョンをリリースします。リリースアップデート (RU) エンジンバージョンには、指定された四半期の RU パッチを含めることで Oracle からのバグ修正が組み込まれています。Spatial パッチバンドル (SPB) エンジンバージョンには、RU パッチと Oracle Spatial に固有のパッチが含まれています。例えば、19.0.0.0.ru-2025-01.spb-1.r1 は、エンジンバージョン 19.0.0.0.ru-2025-01.rur-2025-01.r1 の RU パッチと Spatial パッチを含むマイナーエンジンバージョンです。SPB は Oracle Database 19c でのみサポートされています。

SPB は名前が異なりますが、RU と同じように機能します。RU は、19.0.0.0.ru-2025-01.rur-2025-01.r1 という命名形式を使用します。SPB 名には、19.0.0.0.ru-2025-01.spb-1.r1 のように「spb」というテキストが含まれます。通常、SPB は対応する四半期 RU の 2～3 週間後にリリースされます。例えば、19.0.0.0.ru-2025-01.spb-1.r1 は 19.0.0.0.ru-2025-01.rur-2025-01.r1 以降にリリースされています。

RDS for Oracle には、RU と SPB の自動マイナーバージョンアップグレード用の個別のパスがあります。DB インスタンスが RU を使用している場合、RDS は自動的にインスタンスを RU にアップグレードします。DB インスタンスが SPB を使用している場合、RDS はインスタンスを SPB にアップグレードします。

RU および SPB の詳細については、「[Oracle のマイナーバージョンのアップグレード](USER_UpgradeDBInstance.Oracle.Minor.md)」を参照してください。Oracle Database 19c でサポートされている RU と SPB のリストについては、「*Amazon RDS for Oracle リリースノート*」の「[Amazon RDS for Oracle Database 19c (19.0.0.0)](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html)」を参照してください。

## Oracle Spatial の前提条件
<a name="Oracle.Options.Spatial.PreReqs"></a>

Oracle Spatial を使用するための前提条件は次のとおりです。
+ DB インスタンスが十分なインスタンスクラスであることを確認します。Oracle Spatial は、db.t3.small DB インスタンスクラスではサポートされていません。詳細については、「[RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md)」を参照してください。
+ DB インスタンスで [**自動マイナーバージョンアップグレード**] が有効になっていることを確認します。このオプションにより、DB インスタンスは、(それが利用可能になった時点で) DB エンジンのマイナーバージョンアップグレードを自動的に受信できるようになります。これは、Oracle の Java 仮想マシン (JVM) をインストールする、すべてのオプションに必須です。Amazon RDS では、このオプションを使用して、DB インスタンスに対し最新の Oracle パッチセット更新 (PSU)、またはリリース更新 (RU) を行います。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle Spatial のベストプラクティス
<a name="Oracle.Options.Spatial.BestPractces"></a>

Oracle Spatial を使用するためのベストプラクティスは次のとおりです。
+ セキュリティを最大にするためには、`SPATIAL` オプションを Secure Sockets Layer (SSL) で使用します。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。
+ DB インスタンスへのアクセスを制限するように、DB インスタンスを設定します。詳細については、「[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md)」および「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。

## Oracle Spatial オプションの追加
<a name="Oracle.Options.Spatial.Add"></a>

DB インスタンスに `SPATIAL` オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`SPATIAL` オプションが追加されている間は短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに Oracle Spatial が使用可能となります。

**注記**  
この停止中、パスワード検証機能は一時的に無効になります。また、停止中にパスワード検証機能に関連するイベントを確認することもできます。Oracle DB インスタンスが使用可能になる前に、パスワード検証機能が再び有効になります。

**`SPATIAL` オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**エンジン**] で DB インスタンスの Oracle エディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**SPATIAL**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle Spatial オプションの削除
<a name="Oracle.Options.Spatial.Remove"></a>

`SPATIAL` オプションで提供されるデータ型を使用するすべてのオブジェクトを削除したら、DB インスタンスからそのオプションを削除できます。DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`SPATIAL` オプションの削除中にサービスが短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。`SPATIAL` オプションを削除した後に DB インスタンスを再起動する必要はありません。

**`SPATIAL` オプションを削除するには**

1. データをバックアップします。
**警告**  
オプションの一部として有効化されたデータ型がインスタンスで使用されている場合、`SPATIAL` オプションを削除すると、データが失われる可能性があります。詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

1. 既存のオブジェクトが、`SPATIAL` オプションのデータ型や機能を参照しているかどうかを確認します。

   `SPATIAL` オプションが存在する場合、`SPATIAL` オプションを持たない新しいオプショングループを適用すると、インスタンスが停止することがあります。次のクエリを使用して、オブジェクトを識別できます。

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. `SPATIAL` オプションのデータ型や機能を参照するすべてのオブジェクトを削除します。

1. 次のいずれかを行ってください。
   + `SPATIAL` オプションを所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
   + DB インスタンスを修正して、`SPATIAL` オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。