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

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

步骤:
  1. 安装用于 Oracle 的 ArcSDE 应用程序服务器和命令行工具。

    可以从 Esri 客户关怀中心门户下载此安装程序。

  2. 登录到 Oracle 远程主机。
  3. 在 Oracle 可访问的 Oracle 主机上创建保存 libst_raster_ora 库的目录。
  4. 将 libst_raster_ora 库放置在创建的目录中。

    确保特定于 Oracle 服务器操作系统复制 libst_raster_ora 库:libst_raster_ora.dll 用于 Windows;libst_raster_ora.so 用于 Linux、Solaris、HP-UX Itanium 和 IBM AIX。

  5. 更新 listener.ora 文件以将路径添加到 EXTPROC_DLLS。

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

  6. 使用 SQL 以 sde 用户身份进行连接,然后创建 Oracle libst_raster 库。
    CREATE LIBRARY LIBST_RASTER
    AS '<absolute path to libst_raster_ora library>'
    /
    
  7. 登录安装有 ArcSDE 命令行工具的服务器。
  8. 运行 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):
    
  9. 使用 Oracle SQL 编辑器(例如 SQL*Plus)以任意用户身份连接并测试 ST_Raster 类型的安装。

    对于此查询,成功的结果包括“No data found”(如果地理数据库中尚不存在栅格数据)或数据库中栅格列的列表。如果没有启动 Oracle 监听器或 libst_raster_ora 库无法访问,则将返回一条错误消息。导致 libst_raster_ora 库无法访问的原因包括:没有安装 ST_Raster、未使用 libst_raster_ora 库的路径更新 listener.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
    
  10. 或者在 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
      

相关主题

5/25/2014