Oracle Spatial - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Oracle Spatial

Amazon RDS 通过使用 SPATIAL 选项支持 Oracle Spatial。Oracle Spatial 提供了一个 SQL 架构和一些功能,可帮助在 Oracle 数据库中存储、检索、更新和查询空间数据集合。有关更多信息,请参阅 Oracle 文档中的 Spatial 概念

重要

如果您使用 Oracle Spatial,则在存在以下任何一种情况时,Amazon RDS 会自动将数据库实例更新为最新的 Oracle PSU:

  • 通用漏洞评分系统 (CVSS) 得分为 9+ 的安全漏洞

  • 其他已宣布的安全漏洞

Amazon RDS 仅在 Oracle Enterprise Edition (EE) 和 Oracle Standard Edition 2 (SE2) 中支持 Oracle Spatial。下表显示了支持 EE 和 SE2 的数据库引擎版本。

Oracle 数据库版本 Enterprise Edition Standard Edition 2

21.0.0.0(所有版本)

支持

19.0.0.0(所有版本)

注意

在 Oracle Database 19c 中,Spatial 补丁包与数据库补丁集更新(PSU)和版本更新(RU)相分离。RDS for Oracle 不支持应用 Spatial 批次捆绑包。

使用 Oracle Spatial 的先决条件

以下是使用 Oracle Spatial 的先决条件:

  • 确保您的数据库实例具有足够的实例类。db.t3.micro 或 db.t3.small 数据库实例类不支持 Oracle Spatial。有关更多信息,请参阅“RDS for Oracle 数据库实例类”。

  • 确保您的数据库实例已启用自动次要版本升级。该选项允许数据库实例在次要数据库引擎版本升级可用时自动接收这些升级,这对于安装 Oracle Java 虚拟机(JVM)的任意选项是必需的。Amazon RDS 使用该选项将数据库实例更新为最新的 Oracle 补丁集更新(PSU)或版本更新(RU)。有关更多信息,请参阅“修改 Amazon RDS 数据库实例”。

Oracle Spatial 的最佳实践

以下是使用 Oracle Spatial 的最佳实践:

添加 Oracle Spatial 选项

下面是将 SPATIAL 选项添加到数据库实例的一般过程:

  1. 创建新的选项组,或者复制或修改现有选项组。

  2. 将 选项添加到该选项组。

  3. 将选项组与数据库实例相关联。

如果数据库实例上 安装 Oracle Java 虚拟机 (JVM),则添加 SPATIAL 选项时会出现短暂中断。如果数据库实例上已安装 Oracle Java 虚拟机 (JVM),则不会出现中断。在添加 选项后,您无需重新启动数据库实例。只要选项组处于活动状态,Oracle Spatial 就可用。

注意

在该中断期间,将短暂禁用密码验证功能。您还可能会在中断期间看到与密码验证功能相关的事件。在 Oracle 数据库实例变得可用之前,将再次启用密码验证功能。

SPATIAL 选项添加到数据库实例
  1. 确定您要使用的选项组。您可以创建新的选项组,或使用现有选项组。如果您想使用现有选项组,请跳到下一步。或者,通过以下设置创建自定义数据库选项组:

    1. 对于引擎,请选择适用于您的数据库实例的 Oracle 版本。

    2. 对于主引擎版本,选择数据库实例的版本。

    有关更多信息,请参阅“创建选项组”。

  2. SPATIAL 选项添加到该选项组。有关添加选项的更多信息,请参阅 将选项添加到选项组

  3. 将选项组应用到新的或现有的数据库实例:

删除 Oracle Spatial 选项

删除使用 SPATIAL 选项提供的数据类型的所有对象后,可以从数据库实例中删除该选项。如果数据库实例上 安装 Oracle Java 虚拟机 (JVM),则删除 SPATIAL 选项时会出现短暂中断。如果数据库实例上已安装 Oracle Java 虚拟机 (JVM),则不会出现中断。删除 SPATIAL 选项后,您无需重新启动数据库实例。

删除 SPATIAL 选项
  1. 备份您的数据。

    警告

    如果实例使用作为选项一部分启用的数据类型,并且您删除了 SPATIAL 选项,则可能会丢失数据。有关更多信息,请参阅“备份、还原和导出数据”。

  2. 检查是否有任何现有对象引用了 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;
  3. 删除引用了 SPATIAL 选项的数据类型或功能的任何对象。

  4. 请执行下列操作之一:

    • SPATIAL 选项所属的选项组中删除该选项。此更改会影响使用该选项组的所有数据库实例。有关更多信息,请参阅“从选项组中删除选项”。

    • 修改数据库实例并指定不包含 SPATIAL 选项的另一个选项组。此更改会影响单个数据库实例。您可以指定默认 (空) 选项组,或指定其他自定义选项组。有关更多信息,请参阅“修改 Amazon RDS 数据库实例”。