直连到 ArcSDE 地理数据库 (geodatabase) 疑难解答
大部分直连问题的发生是由以下某种原因造成的:
- 连接客户端应用程序中没有必要的 ArcSDE 直连驱动程序。
- 开放式数据库连通性 (ODBC) 驱动程序缺失或配置错误。
- 该数据库没有配置为接受客户端连接,或者连接被阻止。
未安装所需的直连驱动程序
该软件的发行版本保存在地理数据库的系统表中。如果某个客户端连接到该地理数据库,则系统会将该地理数据库的版本号与适用于客户端应用程序的 ArcSDE 直连驱动程序进行比较。
对于大多数 ArcSDE 版本而言,ArcSDE 地理数据库与连接客户端必须处于同一个版本级别(即通常包含相同的补丁包)。当地理数据库中的版本号与客户端的直连驱动程序不匹配时,将会返回以下错误之一:
ArcSde Direct Connect driver release isn't compatible with ArcSde database instance release
或者
SDE Server Release is not compatible with the current Release Newer DC driver attempting to connect to older ArcSde instance
(这表明正在连接的客户端的版本高于地理数据库的版本。)
Older DC driver attempting to connect to later ArcSde instance
(这表明正在连接的客户端的版本低于地理数据库的版本。)
如果 ArcGIS 客户端中安装了合适的直连驱动程序,则可以将 10 版本的客户端与 9.3 或 9.2 版本的地理数据库进行直连。这些驱动程序包含在 ArcGIS 客户端安装程序中。
不支持先前版本客户端与版本 10 地理数据库的连接。
ODBC 驱动程序或其他所需的客户端文件不存在或配置错误
当涉及到设置 ODBC 连接时,每个数据库管理系统 (DBMS) 都会有不同的要求。请参阅以下有关设置这些连接的说明的主题:
必须为 Informix 数据库设置 ODBC 连接的实际配置。如果客户端计算机上没有正确地设置这些配置,则从该客户端发出的直连将无效。
数据库没有被配置为接受连接
数据库可能需要额外配置才允许与远程客户端建立连接。例如,若要连接到 PostgreSQL 数据库,就必须修改 pg_hba.conf 文件以允许客户端建立连接。该配置文件位于 PostgreSQL 安装位置。要允许远程连接,请查阅 ArcSDE for PostgreSQL 安装指南和 PostgreSQL 文档来了解 pg_hba.conf 文件修改方面的信息。
SQL Server 数据库需要将网络协议设置为通过网络接受连接。想要检查网络协议,请打开 Microsoft SQL Server 配置管理器,展开树中的 SQL Server 网络配置,然后单击 <SQL Server 实例> 协议。右键单击 TCP/IP 协议,然后单击“启用”。
连接已被阻止
数据库管理员 (DBA) 可以采用多种方法来阻止用户与地理数据库建立连接。这通常是在需要 DBA 执行某些特定管理任务(例如备份或压缩操作)的情况下,此时不希望任何用户连接到数据库。
为了防止新用户登录到地理数据库中,DBA 可能会暂停地理数据库。如果用户试图连接一个已暂停的地理数据库,将返回以下消息:
Failed to connect to database. SDE not accepting connection requests
如果您尝试建立连接时收到了这条消息,请与您的 DBA 联系以确定该阻止是否是有意的;如果是有意的,则您只能等待该地理数据库启用时再进行连接。
该情况对直连和通过 ArcSDE 服务建立的连接均适用。
DBA 也可以通过 DBMS 提供的功能来阻止连接。例如,可以暂停 SQL Server 实例,从而阻止用户与数据库建立新的连接。可以将大多数其他受支持的 DBMS 置于静态模式下,因为这种模式也能够阻止用户与数据库建立新的连接。