用户方案地理数据库管理
管理存储在方案(除 sde 用户方案之外)中的地理数据库的方法与管理这些地理数据库所依赖的 sde 主地理数据库的方法稍有不同。本主题介绍了几个与主地理数据库具有不同操作过程的管理任务。
地理数据库的所有者即为地理数据库管理员。也就是说,地理数据库存储方案的所有者户相当于 sde 主地理数据库中的 sde 用户,而且是执行用户方案地理数据库中的管理任务的用户。
您可以在用户方案地理数据库的连接和从用户方案中删除地理数据库中获取其他用户方案地理数据库的信息。
启动和停止用户方案中的地理数据库
存储在方案(不包括 sde 方案)中的地理数据库取决于主地理数据库。启动或关闭主地理数据库后,所有关联的地理数据库都会自动启动或关闭。尝试独立启动存储在用户方案中的地理数据库将导致类似如下所示的错误:
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; logon denied
列出服务器中出现的地理数据库
您可以通过对 sdemon –o info 命令使用 –I 选项找出服务器中正在运行的地理数据库。该选项将返回出现在服务器上的各种地理数据库的相关信息。
sdemon –o info –I instances
Instance Created Id
SDE Thu Oct 28 16:30:20 2004 0
MAP Mon Feb 27 11:18:04 2006 1
此外,您还可以使用 SQL 查询 sde.INSTANCES 系统表,以获取有关用户方案地理数据库的信息。
要获取 sdemon 命令,请从 Esri 客户关怀中心门户下载 ArcSDE 应用程序服务器安装程序。此安装包括《ArcSDE 管理命令参考》,介绍了如何使用 sdemon 命令。
为存储在用户方案中的地理数据库创建存储过程
每个地理数据库自身都拥有一套存储过程数据包,创建地理数据库时会自动在地理数据库管理员方案中创建这些数据包。
此外,如果您提供方案名称,则还可以通过 SQL*Plus 在地理数据库中创建独立的数据包。例如,要在 Thor 用户方案中创建 dbtune_util 数据包,可在 SQL prompt 处发出以下命令:
@dbtune_util.sps THOR
将数据加载到用户方案地理数据库中
您可以利用 ArcGIS for Desktop 工具,通过与将数据加载到 sde 主地理数据库相同的方式,将数据加载到某个用户(sde 用户除外)的方案中所存储的地理数据库中。
但是,只有方案所有者才能将数据加载到此地理数据库中。所有其他用户必须将数据加载到 sde 主地理数据库中或其自己的地理数据库中。例如,如果 user1 拥有方案地理数据库,则 user1 只能在 user1 地理数据库中创建数据。例如,如果 user2 不具有方案地理数据库,则 user2 只能在 sde 主地理数据库中创建数据。如果用户在同一 Oracle 数据库的多个地理数据库中拥有数据,则无法升级地理数据库,也无法删除用户方案地理数据库。升级前,必须从其他地理数据库中删除数据。
包含其他用户所拥有的数据的现有用户方案地理数据库(使用 ArcGIS 10 或更早版本创建的地理数据库)可以升级,并且这些数据所有者可以继续创建新数据和使用现有数据。例如,如果 user1 在 ArcGIS 9.2 中创建了地理数据库,而 user2 使用 ArcGIS 10 或更早版本的客户端在该地理数据库中创建了数据,然后 user1 的地理数据库升级到了 10.1 版本,则 user2 的现有数据仍然可以访问,并且 user2 可以继续在 user1 的地理数据库中创建数据。但是,如果可能,建议将数据移动到 sde 主地理数据库或用户自己的方案地理数据库中。
您可以将出现在一个地理数据库中的具有相同表名的表加载到另一个地理数据库中,这是由于这两个地理数据库中的同名表将始终分属不同的方案。
注册表
可使用 SQL 或第三方应用程序创建数据,然后注册具有地理数据库的表。然而,只能在一个地理数据库中注册表。如果已在其他方案中注册了该表,则将返回 SE_TABLE_REGISTERED_OUTSIDE_SCHEMA 错误。另外,如前所述,在 Oracle 数据库内用户只能在一个地理数据库中注册数据。
若要注册具有用户方案地理数据库的表,可在 ArcGIS for Desktop 中连接到 Oracle 数据库,打开地理数据库连接属性 对话框,然后将连接更改为用户方案地理数据库。有关详细信息,请参阅与用户方案地理数据库的连接。
作为表的所有者连接到用户方案地理数据库之后,右键单击目录树中数据库连接下的表,指向管理,然后单击注册到地理数据库。
ArcGIS 会检测是否存在可用于 ObjectID 的合适列(非空整型列),以及注册空间表时的实体类型、空间参考和空间范围。如果 ArcGIS 未检测到此信息,系统将提示您予以提供。请参阅将表注册到地理数据库了解详细信息。
创建用户拥有的地理数据库的备份
建议对 Oracle 系统进行完整备份。如果使用 ST_Geometry 存储类型(从 ArcGIS 9.3 起,为 Oracle 中地理数据库的默认存储类型),则需要完整备份 Oracle 系统。这是由于用户方案中的地理数据库依赖于数据库内其他方案中的信息;因此,仅创建包含此地理数据库的方案的备份是不足够的。有关创建数据库备份的信息,请参阅 Oracle 文档。