Skip To Content

从 ArcGIS 连接到 Oracle

要从 ArcGIS 客户端连接到 Oracle,在 ArcGIS 客户端计算机上安装 Oracle 客户端,设置引用 Oracle 的环境变量,并从 ArcGIS 连接到数据库。

在所有 ArcGIS 客户端计算机上配置了 Oracle 客户端之后,请在 ArcGIS ProArcMap 中创建数据库连接文件。如需发布引用 Oracle 数据库中数据的 ArcGIS Server web 服务,请将数据库连接文件注册到您的 ArcGIS Server 站点。

ArcGIS Pro 连接

要从 ArcGIS Pro 工程连接到 Oracle,请在 ArcGIS Pro 计算机上安装 Oracle 客户端,并将 PATH 环境变量设置为 Oracle 客户端的位置,然后创建数据库连接。

安装 Oracle 客户端

要建立从客户端计算机到 Oracle 数据库的连接,必须在客户端计算机上安装 Oracle 客户端应用程序。同时,请确保您所安装的 Oracle 客户端应用程序的版本与要连接到的数据库版本相兼容。

您可以按照 Oracle 文档中的说明,从 Oracle 处获取 Oracle Instant、Runtime 或 Administrator 客户端并安装在客户端计算机上。

设置 PATH 变量

ArcGIS Pro 计算机上的 PATH 环境变量设置为 Oracle 客户端安装程序的位置。有关设置 PATH 环境变量的说明,请参阅 Microsoft Windows 文档。

注:

如果 ArcMapArcGIS Pro 安装在同一台计算机上,则将 PATH 变量设置为先读取 64 位客户端,后读取 32 位客户端。例如,如果 32 位 Oracle Instant Client 安装在 c:\Program Files (x86)\Oracle 下,64 位 Oracle Instant Client 安装在 c:\Program Files\Oracle 下,则将以下内容添加到 PATH 变量值的开始位置: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;

如果在设置 PATH 变量前已经在计算机上打开 ArcGIS Pro,则请重新启动 ArcMap 以选择新的设置。

连接到数据库

使用数据库连接对话框或创建数据库连接工具添加数据库连接。使用数据库连接对话框的步骤如下所述。

  1. 右键单击目录窗格中的数据库,然后单击新建数据库连接
  2. 数据库平台下拉列表中选择 Oracle
  3. 实例文本框中键入 Oracle TNS 名称,或提供以下任一 Oracle Easy Connect 字符串:
    • Oracle 服务器名称/Oracle 服务名称或 ID

      例如,如果 Oracle 安装在 myserver 上,Oracle 服务名称是 myosvc,则输入以下信息:

      myserver/myosvc

    • Oracle 服务器名称:Oracle 端口号/Oracle 服务名称或 ID

      在本例中,Oracle 安装在 myserver 上,监听端口为 60000,Oracle 服务名称为 myoservice。

      myserver:60000/myoservice

    • Oracle 服务器的 URL

      上一示例中同一个实例的 URL 如下:

      //myserver:60000/myoservice

    • Oracle 服务器的名称(如果服务器上的 Oracle 监听器配置为指向默认实例,则您可以使用此名称)。
    • Oracle 服务器 IP 地址/Oracle 服务名称或 ID

      例如,如果服务器地址是 10:10:10:10,Oracle 服务名称是 orasvc,则输入 10:10:10:10/orasvc

      对于 IPV6 地址,将地址置于方括号中,例如,[4000:ab5:0:0:f666:d191:77f5:e2bd]/orasvc

    • Oracle 服务器 IP 地址:Oracle 端口号/Oracle 服务名称或 ID

      在本例中,IP 地址是 10:20:30:40,端口是 59999,Oracle 服务是 myomy1:10:20:30:40:59999/myomy1

      对于相同端口和服务的 IPV6 地址,则输入信息如下所示:[6543:ef4:0:1:f587:l249:12f9:a3cd]:59999/myomy110:20:30:40:59999/myomy1

    请确保 Oracle 实例已配置为允许使用 Easy Connect。如果已安装完整的 Oracle 客户端,但想使用 Easy Connect 语法进行连接,请确保客户端上的 sqlnet.ora 文件已组态为允许使用 Easy Connect,且 Oracle 服务器已组态为允许 Easy Connect 语法。还需要注意的是,如果 Oracle 实例并非监听默认的 Oracle 端口号,则必须使用包括端口号的连接语法。

  4. 选择在连接至数据库时使用的身份验证类型:数据库身份验证操作系统身份验证
    • 如果选择操作系统身份验证,则不需要输入用户名和密码,系统会通过用于登录到操作系统的用户名和密码建立连接。如果操作系统使用的登录信息不能用作数据库的登录信息,连接将失败。请注意,如果正在使用 Oracle Instant Client,则不能使用操作系统身份验证。
      注:

      Oracle 中使用操作系统身份验证时,操作系统登录使用 os_authent_prefix 字符串(默认情况下为 OPS$)作为前缀,并存储在 USERNAME 表中。连接到地理数据库时,用户名允许的最大字符数为 30。在这些特殊情况下,ArcGIS 会将引号放置在用户名两侧以将其传递到数据库。引号计入 30 个字符内。

    • 如果选择数据库身份验证,则必须分别在用户名密码文本框中提供有效的数据库用户名和密码。用户名最长为 30 个字符。

      如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。但是,如果执行此操作,则系统会在每次连接时提示您提供用户名和密码。

    注:

    对于使用数据库身份验证且为 ArcGIS web 服务提供数据库访问的连接文件,或希望使用搜索 ArcGIS Pro 找到通过此连接文件访问的数据,都必须选中保存用户名和密码

  5. 单击确定进行连接。

ArcMap 进行连接

要从 ArcMap 连接到 Oracle 中的数据库或地理数据库,请在 ArcMap 计算机上安装 32 位 Oracle 客户端,并将 PATH 环境变量设置为 Oracle 客户端的位置,然后在目录树中创建连接文件。

安装 Oracle 客户端

要建立从客户端计算机到 Oracle 数据库的连接,必须在客户端计算机上安装 Oracle 客户端应用程序。同时,请确保您所安装的 Oracle 客户端应用程序的版本与要连接到的数据库版本相兼容。

注:

如果从 32 位 ArcGIS 客户端进行连接,则必须安装 32 位 Oracle 客户端。即便将 ArcGIS 客户端应用程序安装到 64 位操作系统的计算机上并且数据库和服务器的操作系统均为 64 位,也是如此。

您可以按照 Oracle 文档中的说明,从 Oracle 处获取 Oracle Instant、Runtime 或 Administrator 客户端并安装在客户端计算机上。

设置 PATH 变量

ArcMap 计算机上的 PATH 环境变量设置为 Oracle 客户端安装程序的位置。有关设置 PATH 环境变量的说明,请参阅 Microsoft Windows 文档。

注:

如果 ArcMapArcGIS Server 安装在同一台 Windows 计算机上,则将 PATH 变量设置为先读取 64 位客户端,后读取 32 位客户端。例如,如果 32 位 Oracle Instant Client 安装在 c:\Program Files (x86)\Oracle 下,64 位 Oracle Instant Client 安装在 c:\Program Files\Oracle 下,则将以下内容添加到 WindowsPATH 变量值的开始位置: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;

如果在设置 PATH 变量前已经在计算机上打开 ArcMap,则请重新启动 ArcMap 以选择新的设置。

连接到数据库

您可以通过在 ArcMapArcCatalog 中目录树内的数据库连接节点下添加数据库连接的方式连接到 Oracle 中的数据库或地理数据库。

  1. ArcMapArcCatalog 的目录树中,展开数据库连接,然后双击添加数据库连接
  2. 数据库平台下拉列表中选择 Oracle
  3. 实例文本框中键入 Oracle TNS 名称,或提供以下任一 Oracle Easy Connect 字符串:
    • Oracle 服务器名称/Oracle 服务名称或 ID

      例如,如果 Oracle 安装在 myserver 上,Oracle 服务名称是 myosvc,则输入以下信息:

      myserver/myosvc

    • Oracle 服务器名称:Oracle 端口号/Oracle 服务名称或 ID

      在本例中,Oracle 安装在 myserver 上,监听端口为 60000,Oracle 服务名称为 myoservice。

      myserver:60000/myoservice

    • Oracle 服务器的 URL

      上一示例中同一个实例的 URL 如下:

      //myserver:60000/myoservice

    • Oracle 服务器的名称(如果服务器上的 Oracle 监听器配置为指向默认实例,则您可以使用此名称)。
    • Oracle 服务器 IP 地址/Oracle 服务名称或 ID

      例如,如果服务器地址是 10:10:10:10,Oracle 服务名称是 orasvc,则输入 10:10:10:10/orasvc

      对于 IPV6 地址,将地址置于方括号中,例如,[4000:ab5:0:0:f666:d191:77f5:e2bd]/orasvc

    • Oracle 服务器 IP 地址:Oracle 端口号/Oracle 服务名称或 ID

      在本例中,IP 地址是 10:20:30:40,端口是 59999,Oracle 服务是 myomy1:10:20:30:40:59999/myomy1

      对于相同端口和服务的 IPV6 地址,则输入信息如下所示:[6543:ef4:0:1:f587:l249:12f9:a3cd]:59999/myomy110:20:30:40:59999/myomy1

    请确保 Oracle 实例已配置为允许使用 Easy Connect。如果已安装完整的 Oracle 客户端,但想使用 Easy Connect 语法进行连接,请确保客户端上的 sqlnet.ora 文件已组态为允许使用 Easy Connect,且 Oracle 服务器已组态为允许 Easy Connect 语法。还需要注意的是,如果 Oracle 实例并非监听默认的 Oracle 端口号,则必须使用包括端口号的连接语法。

  4. 选择在连接至数据库时使用的身份验证类型:数据库身份验证操作系统身份验证
    • 如果选择操作系统身份验证,则不需要输入用户名和密码,系统会通过用于登录到操作系统的用户名和密码建立连接。如果操作系统使用的登录信息不能用作数据库的登录信息,连接将失败。请注意,如果正在使用 Oracle Instant Client,则不能使用操作系统身份验证。
      注:

      Oracle 中使用操作系统身份验证时,操作系统登录使用 os_authent_prefix 字符串(默认情况下为 OPS$)作为前缀,并存储在 USERNAME 表中。连接到地理数据库时,用户名允许的最大字符数为 30。在这些特殊情况下,ArcGIS 会将引号放置在用户名两侧以将其传递到数据库。引号计入 30 个字符内。

    • 如果选择数据库身份验证,则必须分别在用户名密码文本框中提供有效的数据库用户名和密码。用户名最长为 30 个字符。

      如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。但是,如果执行此操作,则系统会在每次从桌面客户端连接时提示您提供用户名和密码。

    注:

    对于使用数据库身份验证为 ArcGIS 服务提供数据库访问的连接文件,或希望使用搜索 ArcGIS Desktop 找到通过此连接文件访问的数据,都必须选中保存用户名和密码

    在以下示例中,使用数据库身份验证建立到 oracl/dbdata Oracle 实例的连接。

    使用 Oracle Easy Connect 字符串的 Oracle 连接示例

  5. 单击确定进行连接。

文件的创建位置为 \\<computer_name>\Users\<user_name>\AppData\Roaming\ESRI\Desktop<release#>\ArcCatalog

可以将连接移动到另一位置;只需确保需要建立连接的用户和应用程序有权读取放置连接文件的目录。

如果需要将此连接文件中的数据用作服务(如地理处理和地理编码服务)源,则可能需要将连接文件置于网络上的某个共享位置。有关共享连接文件的详细信息,请参阅使数据可供 ArcGIS Server 访问

ArcGIS Server 连接

如果 OracleArcGIS Server 在不同的服务器上运行,则应在 ArcGIS Server 站点上的所有计算机上安装 64 位 Oracle 客户端。在 Windows 计算机上,将 Oracle 客户端目录添加到 PATH 变量。

如果 Linux 服务器上安装了 ArcGIS Server,则编辑与 ArcGIS Server 一同安装的 init_user_param.sh 脚本以包含 Oracle 客户端和实例的相关信息,并重新启动 ArcGIS Server

如果希望发布到 ArcGIS Server 的服务使用 Oracle 中数据库或地理数据库的数据,则请将数据库注册到您的 ArcGIS Server 站点。

安装 Oracle 客户端

如果 OracleArcGIS Server 在不同的服务器上安装,则必须在 ArcGIS Server 站点上的所有计算机上安装 Oracle 客户端应用程序。同时,请确保您所安装的 Oracle 客户端应用程序的版本与要连接到的数据库版本相兼容。

您可从 Oracle 中获取 Oracle Instant、Runtime 或 Administrator Client 并将其安装在 ArcGIS Server 计算机中。请按照 Oracle 文档中的说明来安装 Oracle 客户端。

设置 PATH 环境变量(仅限 Windows

将每个 ArcGIS Server Windows 服务器上的 PATH 环境变量设置为 Oracle 客户端安装程序的位置。有关设置 PATH 环境变量的说明,请参阅 Microsoft Windows 文档。

注:

如果 ArcGIS ServerArcGIS Desktop安装在同一台 Windows 计算机上,则将 PATH 变量设置为先读取 64 位客户端,后读取 32 位客户端。例如,如果 32 位 Oracle Instant Client 安装在 c:\Program Files (x86)\Oracle 下,64 位 Oracle Instant Client 安装在 c:\Program Files\Oracle 下,则将以下内容添加到 WindowsPATH 变量值的开始位置: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;

如果在配置 Oracle 客户端和设置 PATH 变量前正在运行 ArcGIS Server,则必须重新启动 ArcGIS Server。您可以从 Windows服务界面重新启动 ArcGIS Server

更改 init_user_param.sh 脚本(仅针对 Linux

安装数据库客户端文件后,更改与 ArcGIS Server 一同安装的 init_user_param.sh 脚本以引用客户端文件。可通过浏览至 <ArcGIS Server installation directory>/arcgis/server/usr 目录访问该脚本。

注:

如果用户配置文件引用了 Oracle 客户端,并且用户配置文件和 init_user_param.sh 的客户端信息不同,则 ArcGIS Server 在尝试与数据库连接时可能会出现问题。要解决连接问题,可从用户配置文件中移除参考信息,然后使用以下步骤再次引用数据库客户端库:

  1. 请确保 ArcGIS Server 每台计算机的安装程序所有者至少具有在数据库客户端库中读取和执行的权限。
  2. 在文本编辑器中打开 init_user_param.sh 脚本。
  3. 移除以 # 为开头的行中的注释标记 (export)。

    如果安装了 Oracle Administrator、Developer 或 Runtime 客户端,请删除以 export 开头的所有 Oracle 行中的注释标记。

    #
    # To connect to Oracle
    #
    export ORACLE_BASE=<Oracle_Installdir>/app
    export ORACLE_HOME=$ORACLE_BASE/<Oracle_Release>/product/<Oracle_Version>/client_1
    export ORACLE_SID=<set when applicable>
    export TNS_ADMIN=<set when applicable. e.g.$ORACLE_HOME/network/admin>
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

    如果使用 Oracle 数据库即时客户端库,您只需取消注释并设置 $LD_LIBRARY_PATH,例如

    #
    # To connect with Oracle Instant Client
    #
    export LD_LIBRARY_PATH=<Location_to_instantclient>:$LD_LIBRARY_PATH

  4. 设置导出变量的值。
    • 对于 Oracle Administrator、Developer 或 Runtime 客户端,取消注释并使用适合您个人安装情况的特定信息设置以下变量:
      • ORACLE_BASE=<Oracle_Installdir>

        <Oracle_Installdir> 是安装了 Oracle 客户端的顶级目录的路径和名称。

      • ORACLE_HOME=$ORACLE_BASE/<Oracle_Release>/product/<Oracle_Version>/client_1

        这是 Oracle 客户端库文件的路径。将 ORACLE_HOME 设置为这些文件所在的目录。默认情况下,目录名称为 client_1,但您的安装可能具有不同的目录名称。

      • 如果要使用 Oracle 系统 ID (SID) 进行连接,请将 ORACLE_SID= 设置为数据库的 Oracle 系统 ID。如果要使用 Easy Connect 字符串进行连接,则注释掉此行。
      • TNS_ADMIN= 设置为 Oracle 客户端 TNS 管理文件的位置。如果要使用 Easy Connect 字符串进行连接,则无需设置此值,但必须注释掉此行。
    • 对于 Oracle Instant Client,取消注释并仅设置 LD_LIBRARY_PATH 变量,将 <Location_to_instantclient> 替换为 Oracle Instant Client 文件所在的目录路径和名称。
    • 如果 ArcGIS ServerOracle 安装在同一台服务器上,则取消注释并设置以下变量:
      • ORACLE_BASE=<Oracle_Installdir>

        <Oracle_Installdir> 是安装了 Oracle 的顶级目录的路径和名称。

      • ORACLE_HOME=$ORACLE_BASE/<Oracle_Release>/product/<Oracle_Version>/client_1

        这是 Oracle 库文件的路径。将 ORACLE_HOME 设置为这些文件所在的目录。默认情况下,目录名称为 db_<n>,但您的安装可能具有不同的目录名称。

      • 如果要使用 Oracle 系统 ID (SID) 进行连接,请将 ORACLE_SID= 设置为数据库的 Oracle 系统 ID。如果要使用 Easy Connect 字符串进行连接,则注释掉此行。
      • TNS_ADMIN= 设置为 Oracle 客户端 TNS 管理文件的位置。如果要使用 Easy Connect 字符串进行连接,则无需设置此值,但必须注释掉此行。
  5. 保存并关闭脚本。
  6. 在您为 ArcGIS Server 站点的每台计算机配置 init_user_param.sh 之后,在每台计算机上运行 startserver.sh 脚本来重启 ArcGIS Server

    ./startserver.sh

注册数据库

如果希望 web 服务使用 Oracle 数据库或 Oracle 中的地理数据库中的数据,则应将其注册到 ArcGIS Server 站点。有关说明,请参阅 ArcGIS Pro 帮助中的管理注册的数据存储ArcGIS Enterprise 门户用户帮助中的使用 Server Manager 将数据注册到 ArcGIS Server添加项目