Oracle 中的多个地理数据库 (geodatabase)
使用 Oracle 数据库管理系统 (DBMS) 存储多个地理数据库时有两种可能的方式:您可以安装 Oracle 的单独实例,并且在每个实例中创建一个地理数据库,或者您可以在 Oracle 实例中创建主地理数据库并在其他用户方案的同一实例中创建从属地理数据库。
第一个可选方法需要您安装多个 Oracle 实例。如果要使用 ArcSDE 服务连接到地理数据库,则每个地理数据库都需要一个服务。每个地理数据库都可独立维护和升级。也可以独立卸载和删除。
第二个选项使用一个 Oracle 安装、一个 ArcSDE 安装和一个 ArcSDE 服务来连接。这需要数据库中有多个用户,每个用户都被授予了安装、管理、和升级存储在其方案中的地理数据库的 ArcSDE 管理权限。每个地理数据库都可独立维护和升级。您可以在移除所有注册数据后删除用户方案中的各个地理数据库,但在没有删除所有存储在用户方案中的地理数据库的情况下不可以删除主地理数据库。
以下部分给出每个可选方法的信息。
单独 Oracle 数据库中的多个地理数据库
通过建立和安装每个 Oracle 数据库(其方式与只建立一个数据库相同),您可以在单独的 Oracle 数据库中创建多个地理数据库。
如果您为每个地理数据库建立单独的直连,则不需要在常规的直连配置外执行任何额外的配置步骤。然后,当使用数据库身份验证建立到数据库的连接时,您需要指定特定数据库的网络服务名称。
如果您使用 ArcSDE 服务,则每个连接需要其自己的唯一 ArcSDE 服务名称和端口号。因此,您必须在服务文件中为新的服务和端口号添加新条目。
一个 Oracle 数据库中的多个地理数据库
您可以在一个 Oracle 数据库中创建多个地理数据库。执行此操作时,要在用户方案中而不是 sde 用户的方案中创建地理数据库。因此,这些地理数据库也称作用户方案地理数据库。这些地理数据库包含其自己的 ArcSDE 和地理数据库系统表。
每个用户方案只能有一个地理数据库。用户方案中的地理数据库与存储在 sde 用户方案中的主地理数据库并发运行。因为主地理信息库存储在 sde 用户的方案中,也称为主 sde 地理数据库。
sde 方案中的地理数据库始终是主地理数据库,并包含可在 Oracle 数据库中跟踪所有其他地理数据库的表 (SDE.INSTANCES)。sde 方案也包含 ST_Geometry 类型、其子类型和功能以及使用的系统表,如 ST_SPATIAL_REFERENCES。
sde 主地理数据库与用户方案地理数据库都创建于单个 Oracle 数据库之下并可被单个 ArcSDE 服务访问。
以下包括想要在同一 Oracle 数据库中拥有多个地理数据库的情况:
- 如果组织中较小的组,如部门或项目组,可以彼此相互独立工作,则这些小组可能想要自己的数据。可以为每个组创建一个地理数据库。
- 如果您需要将开发环境与生产环境分开,则可以将用户方案中的地理数据库用于适合测试的开发环境。
- 创建独立的用户方案地理数据库,以便能够针对其所服务的特定应用程序对每个地理数据库加以调整。
- 您可以通过将敏感数据放到仅特定用户有权访问的独立用户方案地理数据库中来保护敏感信息。
例如,您可能想要一个保护在其自己的地理数据库中的敏感军事数据库,以使其他实例的所有者不能够看见该数据。
以下是在一个 Oracle 数据库中使用多个地理数据库时的规则:
- 一个用户只能拥有一个地理数据库。
- 地理数据库归创建它的用户所有。该用户是地理数据库的地理数据库管理员用户且需要相同的数据库权限。
- 地理数据库所有者只能拥有该地理数据库中的数据;其不能拥有另一个用户方案或主 sde 地理数据库中的数据。
- 用户只能拥有一个地理数据库中的数据。例如,user1 可以拥有主 sde 地理数据库或 user2 的地理数据库中的数据,但不能同时拥有这两个地理数据库中的数据。