在远程 Oracle 数据库中安装 ST_Raster 类型

如果 ArcSDE 和 Oracle 数据库安装在不同的服务器上,请按照以下说明在数据库中创建 ST_Raster 类型并配置其访问权限。

步骤:
  1. 安装 ArcSDE。
  2. 登录到 Oracle 远程主机。
  3. 在 Oracle 可访问的 Oracle 主机上创建保存 libst_raster_ora 库的目录。
  4. 将 libst_raster_ora 库放置在创建的目录中。
    • 如果 ArcSDE 和 Oracle 安装在使用相同操作系统的服务器上,可将 libst_raster_ora 库从 SDEHOME > bin (Windows) 或 SDEHOME > lib(Linux 或 UNIX)复制到或使用 FTP 传输到步骤 3 中创建的目录中。
    • 如果 Oracle 安装在不同于本地 ArcSDE 服务器的操作系统 (OS) 上,请在 Oracle 服务器上安装 ArcSDE for Oracle 以获取适用于 Oracle 服务器 OS 的 libst_raster_ora 库,然后将 libst_raster_ora 库从 SDEHOME > bin (Windows) 或 SDEHOME > lib(Linux 或 UNIX)复制到或使用 FTP 传输到步骤 3 中创建的目录中。
  5. 如果在要获取 libst_raster_ora 库的 Oracle 服务器上安装了 ArcSDE,请从 Oracle 服务器上卸载 ArcSDE。
  6. 更新 listener.ora 文件以在 EXTPROC_DLLS 中包含路径。

    有关说明,请参阅配置 Oracle 侦听器以使用 SQL

  7. 使用 SQL 以 sde 用户身份进行连接,然后创建 Oracle libst_raster 库。
    CREATE LIBRARY LIBST_RASTER
    AS '<absolute path to libst_raster_ora library>';
    /
  8. 登录到 ArcSDE 服务器。
  9. 运行 sdesetup 命令的 install_st_raster 操作。
    sdesetup -o install_st_raster -d ORACLE11G
    -s oserver -u sde
    
    Please enter ArcSDE DBA password:
    
    Install or update ST_Raster schema objects: Are you sure? (Y/N):
    
  10. 使用 Oracle SQL 编辑器(如 SQL*Plus),以任意用户的身份连接并测试 ST_Raster 类型的安装。

    此查询结果成功时将包括“No data found”(如果地理数据库中尚不存在任何栅格数据)或数据库中栅格列的列表。如果 Oracle 侦听器没有启动或 libst_raster_ora 库无法访问,则返回错误消息。如果未安装 ST_Raster、listener.ora 文件没有使用 libst_raster_ora 库的路径进行更新或 libst_raster_ora 库被复制到错误位置,则无法对该库进行访问。

    在本例中,通过运行 describe 工具来列出数据库中现有的 ST_Raster 和二进制栅格列。这种情况下,此数据库为新地理数据库,因此数据库中尚无栅格列。由于没有返回任何错误消息,因而可确定安装已成功。

    SELECT sde.st_raster_util.describe() 
    FROM dual;
    
    SDE.ST_RASTER_UTIL.DESCRIBE()
    
    No data found.

    在本例中,将同样运行 describe 工具。但在这种情况下,不向 listener.ora ENV 参数添加 libst_raster_ora 库的路径。更正问题并再次运行查询,确保该问题已解决。

    SELECT sde.st_raster_util.describe() 
    FROM dual;
    
    ERROR:
    ORA-28575: unable to open RPC connection to external procedure agent
    ORA-06512: at "SDE.ST_RASTER_UTIL", line 190
    ORA-06512: at "SDE_ST_RASTER_UTIL", line 377
    
  11. 在 DBTUNE 表中创建 ST_RASTER 配置关键字并将 RASTER_STORAGE 参数设置为 ST_RASTER,或者将 DEFAULTS 关键字的 RASTER_STORAGE 参数设置为 ST_RASTER。
    • 如果要使用 ArcGIS 软件将大部分或全部栅格数据创建为 ST_Raster 类型,可将 DEFAULTS 关键字下的 RASTER_STORAGE 参数值设置为 ST_RASTER。
      sdedbtune -o alter -k DEFAULTS -P RASTER_STORAGE
      -v ST_RASTER -i sde:oracle11g -s bigserve -u sde
      
      Update DBTUNE data: Are you sure? (Y/N):
    • 如果仅要创建一些具有 ST_Raster 存储的栅格数据,可以将 ST_RASTER 关键字添加到 DBTUNE 表,并包括设置为 ST_RASTER 的 RASTER_STORAGE 参数和 UI_TEXT 参数。
      sdedbtune -o insert -k ST_RASTER -P RASTER_STORAGE 
      -v ST_RASTER -i sde:oracle11g -s bigserve -u sde
      
      sdedbtune -o insert -k ST_RASTER -P UI_TEXT -v UI_TEXT 
      -i sde:oracle11g -s bigserve -u sde

3/7/2012