升级 DB2 中的地理数据库的准备工作
在升级包括地理数据库在内的任何企业系统时,必须事前进行规划。在开发服务器或测试服务器上对新版本进行测试,以确保其适用于所有的客户端应用程序。
在确定了新系统会按预期进行工作后,请计划升级;确保必要的工作人员均可执行升级并且他们拥有完成指派的任务所必需的权限。
- 您可以直接从 ArcSDE 9.2、9.3 或 9.3.1 地理数据库升级到 ArcSDE 10。如果您的地理数据库是 9.1 版本或更早版本的地理数据库,则必须先升级到支持的版本,然后再升级到 ArcSDE 10。
- 不支持从软件的测试版本升级。
- 如果地理数据库是复本的一部分,则在同步前必须升级父地理数据库和子地理数据库。
- 没有将 ArcSDE 地理数据库降级到之前版本的正式机制。如果升级到更新的版本后想要降级该地理数据库,则必须从备份中恢复旧数据库。
- 升级地理数据库后,先前版本的 ArcGIS 将无法打开该地理数据库,因为较早版本的 ArcGIS 无法读取较新版本的地理数据库。
在升级 DB2 中的地理数据库之前,还必须完成以下步骤:
- 检查 ArcGIS 资源中心的 ArcGIS Server 系统要求以确保系统满足最低要求。
- 创建数据库的备份。
-
DB2 参数 DB2_SNAPSHOT_NOAUTH 已被弃用。sde 用户需要访问 DB2 Snapshot API 以便能清理 PROCESS_INFORMATION 系统表中不需要的 ArcSDE 进程。因此,要允许 sde 用户访问 DB2 Snapshot API,您必须将 sde 用户添加到具有 SYSMON 权限的操作系统组。
例如,如果定义了一个名为 sdegroup 的组(其中包含 sde 用户),可使用以下命令将 SYSMON_GROUP 实例参数设置为值 sdegroup:
UPDATE DBM CFG USING SYSMON_GROUP sdegroup db2stop db2start
警告:如果没有授予该权限,将无法升级。
-
如果您想要从 ArcSDE 9.2 地理数据库升级,请从 DB2HOME sqllib\function 和 sqllib\function\unfenced 目录中删除 sdesrvsp 和 sdesrvfn 文件。
对于 ArcSDE 9.3 和更高版本的地理数据库,不再需要 sdesrvsp 和 sdesrvfn 文件。在 UNIX 或 Linux 上,DB2HOME\sqlllib\function 和 sqlllib\function\unfenced 目录中的 sdesrvsp 与 sdesrvfn 链接应该在成功升级到 9.3 或更高版本后再删除。
-
如果您的数据库管理员已经撤消 SYSIBM.SYSDUMMY1 目录视图中的 SELECT 权限,则他/她可能需要重新授予 PUBLIC 权限或向所有连接到 DB2 中 ArcSDE 地理数据库的用户授权。必须要有此权限才能对数据库进行 SQL 查询。
如果用户没有该目录视图上的 SELECT 权限,则当其试图连接时会看见以下类似错误:
SQL0551N "ANYA" does not have the privilege to perform operation "SELECT" on object "SYSIBM.SYSDUMMY1". SQLSTATE=42501
要将该视图上的 SELECT 权限授予 PUBLIC,请在以具有 DBADM 权限的用户身份登录时执行以下命令:
GRANT SELECT ON SYSIBM.SYSDUMMY1 TO PUBLIC;
-
如果数据库最初在 DB2 UDB 7.2 中创建并随后进行了升级,则需要运行 DB2 db2updv8 命令以更新 DB2 系统目录。
如果没有执行该命令,您会在升级 ArcSDE 地理数据库时接收到以下类似错误消息:
ERROR in creating system functions. DBMS error code: -440 [IBM][CLI Driver][DB2/NT] SQL0440N No authorized routine named "APPLICATION_ID" of type "FUNCTION" having compatible arguments was found. LINE NUMBER=1. SQLSTATE=42884 42884 SDE release upgrade not completed(-1). ERROR installing/upgrading ArcSDE, Error = -1
-
移除任何您可能已添加到 ArcGIS 外部的 ArcSDE 地理数据库系统表中的任何自定义功能,例如触发器或其他索引。
升级程序无法识别对系统表的自定义修改。如果类似的自定义修改禁止更改系统表方案,升级将会失败。
- 在数据库中授予 ArcSDE 管理员 (sde) DBADM 权限。这是升级地理数据库的必要条件。
- 仅针对 IBM AIX 用户:如果要在 AIX 上安装,建议在升级或安装 ArcSDE 之前运行 slibclean 以从内存中清除非活动的库。停止当前的 ArcSDE 服务,然后以超级用户身份运行 slibclean。有关 slibclean 命令的详细信息,请参阅 AIX 系统管理员文档。
- 此时,您可能想要创建第二个数据库备份以保留您在之前步骤中所做的更改。
- 在能够直连到地理数据库的计算机上安装当前版本的 ArcGIS 客户端(ArcGIS Desktop ArcEditor 或 ArcInfo、具有 Geodatabase Update 扩展模块的 ArcGIS Engine Runtime 或 ArcGIS Server 标准版或高级版)以执行升级。
-
确保用于升级的 ArcGIS 客户端所在计算机上已安装和配置 DB2 客户端。
因为必须与地理数据库建立直连以对其进行升级,所以这是必要的条件。有关详细信息,请参阅设置到 DB2 的直连。
-
确保没有任何用户连接到该地理数据库。
您可以使用 sdemon 命令来检查此项。有关说明,请参阅显示连接会话。
-
使用 sdemon –o shutdown 命令关闭所有正在运行的 ArcSDE 服务。如果服务运行于 Windows 服务器上,可在 Windows 服务 界面上停止服务而无需使用 sdemon 命令。
有关 sdemon 命令的详细信息,请参阅《ArcSDE 管理命令参考》中的命令语法。
- 卸载旧版 ArcSDE。有关说明,请参阅从 Windows 中卸载 ArcSDE 或从 Linux 或 UNIX 中卸载 ArcSDE。
- 在 Windows 中,将在卸载过程中提示您删除正在运行的 ArcSDE 服务(如果有)。如果正在安装 ArcSDE 的新版本,请单击是以删除服务。如果正在安装补丁包或修补程序,可以单击否并重新使用服务,除非补丁包或修补程序的说明指定您必须重新创建该服务。(例如,如果补丁包或修补程序在服务功能中进行了某些修复,您很可能需要重新创建该服务。)
-
安装 ArcSDE 的新版本。
在 Windows 操作系统上,请勿运行“安装后配置”向导。“安装后配置”向导只适用于全新安装。
地理数据库现已为升级准备就绪。可以使用 ArcGIS Desktop 中的“升级地理数据库(Geodatabase)”工具或使用在 ArcGIS 客户端计算机上运行的 Python 脚本。