从 ArcGIS 连接到 Db2

要从 ArcGIS 客户端连接到 IBM Db2,请在 ArcGIS 客户端计算机上安装 Db2 客户端。 可为 Db2 数据库配置数据源名称,并使用这一名称从 ArcGIS 客户端进行连接,或者也可以使用非 DSN 连接字符串进行连接。

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

ArcGIS Pro 进行连接

要从 ArcGIS Pro 工程中连接到 Db2,请在 ArcGIS Pro 计算机上安装 Db2 客户端,并创建数据库连接。

安装 Db2 客户端

Db2 客户端安装在将连接到 Db2 数据库的任意计算机上。

您可以使用自己的 Db2 客户端安装程序,也可以从 My Esri 下载 64 位 IBM Data Server Runtime Client for Db2

请按照随 Db2 客户端软件提供的说明进行安装。

配置数据源名称(可选)

可将 Db2 数据库编入目录,从而创建从 ArcGIS 连接到 Db2 时将使用到的数据源名称 (DSN)。 按照 IBM Db2 信息中心的说明将 Db2 数据库编入目录。

如果不设置数据源名称,则可在从 ArcGIS 客户端进行连接时使用一个字符串,该字符串包含了客户端连接至数据库所需的所有信息。 该字符串的格式为 HostName=<DB2 主机>;Port=<端口号>;Database=<数据库名称>。 此类连接字符串称为非 DSN 连接。

连接到数据库

使用数据库连接对话框或创建数据库连接地理处理工具来添加数据库连接。

要在 ArcGIS Pro 中使用数据库连接对话框连接到 Db2 数据库,请按照以下步骤进行操作:

“数据库连接”对话框

  1. ArcGIS Pro 中打开目录窗格。
  2. 右键单击数据库文件夹下的文件夹,然后单击新建数据库连接
  3. 数据库平台下拉列表中选择 DB2
  4. 数据源文本框中键入数据源名称。 如果数据库未编入目录,则可改用以下语法进行连接:

    HostName=<主机>;Port=<端口号>;Database=<数据库名称>;

    指定适合您的连接的主机、端口和数据库名称。

    例如,如果 Db2 数据库位于服务器 cube 上,通过 DBMS 端口 50000 进行通信,并且数据库名称是 spatialdata,则连接字符串如下所示:

    HostName=cube;Port=50000;Database=spatialdata;

    验证连接或者创建数据库连接文件后,端口号和数据库名称将显示在附加属性下。

  5. 选择连接到数据库时使用的身份验证类型:数据库身份验证操作系统身份验证
    • 如果选择操作系统身份验证,则不需要输入用户名和密码,系统会通过用于登录到操作系统的用户名和密码建立连接。 如果操作系统使用的登录信息不能用作数据库的登录信息,连接将失败。
    • 如果选择数据库身份验证,则必须分别在用户名密码文本框中提供有效的用户名和密码。 用户名最多可以是 30 个字符。

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

    注:

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

  6. 连接文件名称字段中键入连接文件的名称。

    当提供连接信息后,系统将创建一个默认名称。 您可以使用默认值,或者键入更具描述性的文件名。

    这是将显示在目录窗格和视图中的名称,也是存储在磁盘上的 .sde 文件的名称。

  7. 单击验证以确认连接信息有效并且数据库可访问。

    如果数据库包含地理数据库并且连接有效,则地理数据库属性选项卡现在处于活动状态。 如有必要,您可以更改地理数据库连接属性以连接到传统版本,而非默认版本;将连接配置为分支版本连接或者连接到历史时刻

  8. 单击确定创建连接文件。

数据库连接将显示在目录窗格中的数据库下,同时将在 .sde 工程目录中创建连接文件 (ArcGIS Pro)。

ArcGIS Server 进行连接

如果您想发布的 Db2ArcGIS Server 站点在不同的服务器上运行,则应在 ArcGIS Server 站点上的所有计算机上安装 Db2 客户端。

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

如果要发布使用 Db2 数据库数据或 Db2 地理数据库数据的要素服务而不复制数据,则必须将数据库注册到 ArcGIS Server 站点。 可在注册数据库时使用数据源名称(在这种情况下,必须在注册前将数据库编入目录),或者也可提供连接信息字符串(通常被称为非 DSN 连接)。

安装 Db2 客户端

在需要连接到 Db2 数据库的所有 ArcGIS 计算机上安装 64 位 Db2 客户端。 可从 IBM 或 My Esri 中获取 Db2 客户端文件。 请按照随 Db2 客户端软件提供的说明进行安装。 如果您没有在运行 ArcGIS 客户端的计算机上安装软件的必需权限,则需要请求 IT 部门为您安装 Db2 客户端。

配置数据源名称(可选)

安装 Db2 客户端软件后,您可以编写 Db2 数据库目录,从而创建在将数据库注册到 ArcGIS Server 站点时要使用的数据源名称。

注:

如果 ArcGIS Server 安装在独立于 Db2 服务器的 Linux 计算机上,则必须先在 ArcGIS Server 计算机上创建 Db2 客户端实例,才能编写 Db2 实例目录。

如果您选择不编写数据库目录,则必须指定 DSNless 连接字符串以链接到 Db2 数据库,采用的格式为 HostName=<host>;Port=<port number>;Database=<database name>;。 有关详细信息和示例,请参阅 ArcGIS Pro 中的数据库连接

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

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

您必须更新 ArcGIS Server 站点中每台计算机上的 init_user_param.sh

您必须更新 ArcGIS Server 站点中每台计算机上的 init_user_param.sh

注:

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

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

    #
    # Modify this section to configure a connection to Db2
    export DB2_CLIENT_HOME=<DB2_InstallDir>
    export DB2INSTANCE=<DB2_instance_name>
    export PATH=DB2_CLIENT_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$DB2_CLIENT_HOME/lib64:$LD_LIBRARY_PATH

  4. <DB2_InstallDir> 替换为 Db2 客户端安装目录的位置,并将 <DB2_instance_name> 替换为 Db2 实例的名称。

    例如,如果将 Db2 客户端安装到 /home/db2prod,则 Db2 实例将被命名为 db2prod,文件显示如下:

    #
    # For connection with Db2
    #
    export DB2_CLIENT_HOME=/home/db2prod
    export DB2INSTANCE=db2prod
    export PATH=DB2_CLIENT_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$DB2_CLIENT_HOME/lib64:$LD_LIBRARY_PATH
  5. 保存并关闭脚本。
  6. 要使在 init_user_param.sh 文件中进行的更改生效,必须重新启动 ArcGIS Server

    为此,先后在 ArcGIS Server 站点的每台计算机上运行 stopserver.sh 脚本和 startserver.sh 脚本。

    ./stopserver.sh

    ./startserver.sh

创建数据库连接文件

使用 ArcGIS Pro 中的数据库连接对话框创建数据库连接文件,如上所述

或者,可以在 ArcGIS Pro 中运行创建数据库连接工具或通过 ArcGIS Server 计算机使用 Python 运行创建数据库连接命令,以创建可连接到数据库的数据库连接文件 (.sde)。

以下信息专用于创建数据库连接文件,以用于 ArcGIS Server

  • 您必须将经过数据库身份验证的用户信息与连接文件一同保存。
  • 如果您使用操作系统身份验证进行连接,则请确保 Db2 服务器能够对 ArcGIS Server 账户进行身份验证。

授予权限

用于连接到数据库的登录账户必须具有为其授予的特定权限。 对于仅发布只读服务(例如地图服务)的登录账户,请按照 Db2 中地理数据库的权限用于在 ArcGIS 中使用 Db2 数据库的权限中介绍的内容向数据查看者授予必要的权限。 对于发布可编辑要素服务的登录账户,则需要向数据编辑者授予必要的权限。

如果与 Db2 的连接使用操作系统身份证,请为 ArcGIS Server 账户授予相应的权限。

如果数据位于地理数据库中,则数据所有者必须授予数据所需的权限。 如果数据位于数据库中,则数据所有者可以从 ArcGIS 授予权限,或者数据库管理员可以使用数据库工具授予所需的权限。

注册数据库

如果希望 web 服务使用 Db2 数据库数据或 Db2 数据库中的地理数据库数据,请将数据库连接文件注册到 ArcGIS Server 站点。

您可以使用创建的地理数据库连接文件ArcGIS Pro 中的管理注册的数据存储窗格ArcGIS Server Manager 将数据库注册到 ArcGIS Server