数据库服务器疑难解答
以下针对用户在使用数据库服务器或数据库服务器上的地理数据库时可能遇到的问题提供了建议解决方案。
要捕获日志中的错误,可在 ArcGIS 安装位置创建 etc 文件夹,日志文件将会自动在该位置生成。例如,如果将 ArcGIS Desktop 安装到 c:\Program Files\ArcGIS,则在该位置创建一个名为 etc 的文件夹 - c:\Program Files\ArcGIS\etc。从文件获得需要的信息或将副本发送到技术支持后,将删除此 etc 文件夹。在 etc 文件夹中创建的错误日志不会被截断,并且可以快速增大到若干兆字节大小。如果只删除日志文件,则会自动在 etc 文件夹中重新创建它们。
错误:无法连接到此数据服务器...SQL Server 不存在或访问被拒绝。
收到该错误消息的可能原因有:
- 如果尚未启动 SQL Server Express 实例,则远程客户端将无法找到它。
- 如果从未在数据库服务器上设置用户帐户,或者用户帐户已从数据库服务器中移除,将无法查询或连接它。
- 远程客户端必须具有与 SQL Server Express 实例通信的方式。如果未设置网络协议,将不会设置该通信方法,并且无法通过网络与实例建立连接。
- 接收来自 SQL Server 客户端的请求时,SQL Server Browser 服务将提供有关安装在计算机上的 SQL Server 实例的信息。如果 SQL Browser 被禁用,客户端将收不到用于每个已安装 SQL Server 实例的名称和端口,因此,也就无法找到该实例。
修复:
首先,确保要尝试连接的数据库服务器已启动。如果它已启动,请确认您具有远程访问此数据库服务器的权限。如果数据库服务器已启动,并且您具有对其进行连接和查询的权限,则可能未启用数据库服务器上的网络协议。要重新启用网络协议,请进行以下操作:
- 打开 Microsoft SQL Server 配置管理器。可从“开始”>“所有程序”>“Microsoft SQL Server”>“配置工具”中进行访问。
- 展开树中的 SQL Server 网络配置,然后单击 SQL Server 实例的协议。
- 右键单击 TCP/IP 协议,然后单击启用。
将收到以下警告消息:
将保存所做的任何更改;不过,只有停止并重新启动此服务之后,这些更改才会生效。
停止并重新启动服务。如果网络协议已启用,但仍无法从远程客户端连接到数据库服务器,则可能是 SQL Server Browser 服务已停止。要启动 SQL Server Browser 服务:
- 打开 Microsoft SQL Server 配置管理器。
- 单击 SQL Server 图标以查看 SQL Server Browser 服务。
- 如果 SQL Server Browser 的状态为暂停,请右键单击它,然后单击恢复。如果 SQL Server Browser 的状态为停止,请右键单击它,然后单击启动。
如果在右键单击 SQL Server Browser 时除属性和帮助外的所有快捷菜单选项都被禁用,说明 SQL Server Browser 启动模式被设为“已禁用”。要更改此设置:
- 右键单击 SQL Server Browser,然后单击属性。
- 单击服务选项卡。
- 单击启动模式。
- 从下拉菜单中选择自动或手动。将启动模式设为“自动”意味着 SQL Server Browser 服务将在重新启动计算机时自动启动。
- 单击确定。
现在,右键单击 SQL Server Browser 服务时,启动应为可用选项。
错误:不能产生 SSPI 上下文
收到该错误消息的可能原因有:
如果在便携式计算机上工作并且使用域凭据登录,但实际上未连接到该域,则经常会遇到此错误。这种情况可能出现于您在客户端站点(与用户网络相对而言)进行连接,或者使用便携式计算机时根本未连接到网络(如在野外工作)。这与 TCP/IP 网络协议和 Windows 身份验证相关。也可以登录 Microsoft 网站,以获取关于如何解答“不能产生 SSPI 上下文”错误消息的知识库文章。
修复/解决办法:
在本地计算机(添加数据库服务器)上使用 TCP/IP 环回(而不是域名)127.0.0.1 创建到数据库服务器的连接;例如:127.0.0.1\sqlexpress。
只要在本地计算机上安装了数据库服务器(SQL Server Express 实例),这种方法就有效。
错误:无法连接到数据库 基础 DBMS 错误(Microsoft OLE DB Provider for SQL Server。用户“<用户名>”登录失败。该用户与可信 SQL Server 连接无关联。)
收到该错误消息的可能原因有:
如果在“系统环境变量”或 dbinit.sde 文件中设置了环境变量 SDEUSER 或 SDEPASSWORD,则在连接到 ArcSDE 地理数据库时,它们将优先于 Windows 登录帐户。如果想要从该计算机连接到数据库服务器上的 ArcSDE 地理数据库,或者想要使用操作系统身份验证连接到通过 ArcGIS Server Enterprise 获得许可的 ArcSDE 地理数据库,请不要设置这些变量。
修复:
确保未在所连接的客户端计算机上设置 SDEUSER 或 SDEPASSWORD 环境变量。
错误:添加要素类失败。<要素类名称> 处于只加载模式,在此状态下无法作为图层添加。
收到该错误消息的可能原因有:
如果数据集的空间格网大小设为 0 而您尝试将其导入 ArcSDE 地理数据库,则导入将失败,而数据集会一直处于只加载输入/输出 (I/O) 模式。重新计算空间索引格网大小可以使要素类重新恢复正常 I/O 模式,然后应该就能处理它。
修复/解决办法:
重新计算要素类上的空间索引格网大小。
- 在 Catalog 目录树中,右键单击处于只加载模式的要素类,单击属性,然后单击要素类属性对话框上的索引选项卡。
- 在空间索引部分,单击重新计算。
- 在索引选项卡上单击确定。
问题:尽管连接的用户已被添加到服务器计算机上的 Windows 管理员组,但是此用户仍没有访问数据库服务器管理任务(例如,新建地理数据库、还原或权限)的权限。
Windows 管理员无法执行服务器管理员任务的原因有:
Windows Vista、2007 和 2008 Server 计算机已默认启用了 UAC。这会强制采用更严格的安全模型,即 Windows 管理员不会自动成为 SQL Server 数据库中的 sysadmin。对于习惯于访问 ArcSDE 数据库服务器或 Windows XP/Windows 2003 Server 计算机上的其他 SQL Server 实例的用户来说,他们可能已习惯于这些操作系统上的默认行为,并且可能忘记了必须采取必要的步骤才能向数据库服务器添加其他服务器管理员用户。
修复:
禁用服务器计算机上的用户访问控制 (UAC),或者以管理员用户(在安装用来存储地理数据库的 SQL Server Express 实例时,该管理员用户已添加到 ArcSDE 数据库服务器)身份登录、向数据库服务器添加所需用户并授予他/她服务器管理员权限。
错误:未找到版本[sde.DEFAULT]
收到该错误消息的原因
如果创建“空间数据库连接”,但忘记从 sde.DEFAULT 更改版本,将会收到此错误消息。
修复:
在数据库服务器上创建的地理数据库的系统表和 DEFAULT 版本始终由 dbo 用户拥有。因此,必须将连接中的版本从 sde.DEFAULT 更改为 dbo.DEFAULT 或其他可用的事务或历史版本。
错误:登录用户不正确
收到该错误消息的可能原因有:
很可能是您尝试使用经数据库验证的用户名和密码连接到数据库服务器上的地理数据库。
修复:
与数据库服务器上地理数据库的连接仅采用经 Windows 验证的登录帐户。因此,使用有效的 Windows 登录帐户登录时,在“空间数据库连接”对话框中选择操作系统身份验证选项。
错误:登录失败。该登录名来自不受信任的域,不能与 Windows 身份验证一起使用。
收到该错误消息的可能原因有:
- 使用本地 Windows 帐户登录时,尝试连接到远程数据库服务器上的地理数据库。
- 尝试使用尚未添加到数据库服务器的域帐户连接到数据库服务器上的地理数据库。
修复:
使用服务器管理员已添加到数据库服务器的域帐户登录客户端计算机。
错误:试图通过与 SQL Server 数据库服务器不兼容的旧版 SQL Server 客户端通信软件进行连接
收到该错误消息的原因:
连接到地理数据库的客户端计算机未安装受支持的 Microsoft SQL Native Client 版本。
修复:
在客户端计算机上安装 SQL Native Client 应用程序。如果连接到 SQL Server 2005 Express 数据库,至少需要安装 SQL 2005 Native Client。要连接到 SQL Server 2008 Express 数据库,必须安装 SQL 2008 Native Client。