Oracle 中的多个地理数据库 (geodatabase)
使用 Oracle 数据库管理系统 (DBMS) 存储多个地理数据库时有两种可能的方式:您可以安装 Oracle 的单独实例,并且在每个实例中创建一个地理数据库,或者您可以在 Oracle 实例中创建主地理数据库并在其他用户方案的同一实例中创建依赖地理数据库。
第一个可选方法需要您建立多个 Oracle 实例。如果要使用 ArcSDE 服务连接到地理数据库,则每个地理数据库都需要一个服务。每个地理数据库都可独立维护和升级。也可以独立卸载和删除。
第二个选项使用一个 Oracle 安装、一个 ArcSDE 安装和一个 ArcSDE 服务来连接。这需要数据库中有多个用户,每个用户都被授予了安装、管理、和升级存储在其方案中的地理数据库的 ArcSDE 管理权限。每个地理数据库都可独立维护和升级。您可以在移除所有注册数据后删除用户方案中的各个地理数据库,但在没有删除所有存储在用户方案中的地理数据库的情况下不可以删除主地理数据库。
以下部分给出每个可选方法的信息。
单独 Oracle 数据库中的多个地理数据库
通过建立和安装每个 Oracle 数据库(其方式与只建立一个数据库相同),您可以在单独的 Oracle 数据库中创建多个地理数据库。
如果您为每个地理数据库建立单独的直接连接,则不需要在常规的直接连接配置外执行任何额外的配置步骤。然后,当您使用数据库身份验证与数据库建立连接时,您需要指定网络服务名称,并将其追加到数据库密码的末尾,来指定想要连接的数据库。例如,对于网络服务名称 benedict2,您可以输入以下密码:
mypassword@benedict2
如果要建立与远程 Oracle 数据库的连接,则使用操作系统 (OS) 身份验证,您需要将 LOCAL 变量和值追加到 ArcCatalog 的“服务”字段中的直接连接语法或命令行的服务器 (–s) 选项上。例如,要为网络服务 benedict2 使用 OS 身份验证,您可以输入连接字符串,后接一个正斜线,然后输入 LOCAL=benedict2,如下所示:
sde:oracl10g:/;LOCAL=benedict2
如果与本地 Oracle 数据库建立直接连接并使用 OS 身份验证,则应将 ORACLE_SID 变量和值追加到直接连接语法。
sde:oracle10g:/;ORACLE_SID=benedict2
要从 Desktop 应用程序中获得完整的连接说明,请参阅建立从 ArcGIS Desktop 到 Oracle 中地理数据库的直接连接。
如果您使用 ArcSDE 服务,则每个连接需要其自己的唯一 ArcSDE 服务名称和端口号。因此,您必须在服务文件中为新的服务和端口号添加新条目。您还必须为创建的每一个附加地理数据库创建 dbinit.sde 文件的副本。
了解有关创建多个 ArcSDE 服务实例的说明,请参阅在 Windows 服务器上使用多个 ArcSDE 服务或在 Linux 或 UNIX 服务器上使用多个 ArcSDE 服务。
一个 Oracle 数据库中的多个地理数据库
您可以在一个 Oracle 数据库中创建多个地理数据库。执行此操作时,要在用户方案中而不是 sde 用户的方案中创建地理数据库。因此,这些地理数据库也称作用户方案地理数据库。这些地理数据库包含其自己的 ArcSDE 和地理数据库系统表。
每个用户方案只能有一个地理数据库。用户方案中的地理数据库与存储在 sde 用户方案中的主地理数据库并发运行。因为主地理信息库存储在 sde 用户的方案中,也称为主 sde 地理数据库。
sde 方案中的地理数据库始终是主地理数据库,并包含可在 Oracle 数据库中跟踪所有其他地理数据库的表 (SDE.INSTANCES)。sde 方案也包含 ST_Geometry 类型、其子类型和功能以及使用的系统表,如 ST_SPATIAL_REFERENCES。
sde 主地理信息库与用户方案地理信息库都创建于单个 Oracle 数据库之下并可被单个 ArcSDE 服务访问。
以下包括想要在同一 Oracle 数据库中拥有多个地理数据库的情况:
- 如果组织中较小的组,如部门或项目组,可以彼此相互独立工作,则这些小组可能想要自己的数据。可以为每个组创建一个地理数据库。
- 如果您需要将开发环境与生产环境分开,则可以将用户方案中的地理数据库用于适合测试的开发环境。
- 创建独立的用户方案地理数据库,以便能够针对其所服务的特定应用程序对每个地理数据库加以调整。
- 您可以通过将敏感数据放到仅特定用户有权访问的独立用户方案地理数据库中来保护敏感信息。
例如,您可能想要一个保护在其自己的地理数据库中的敏感军事数据库,以使其他实例的所有者不能够看见该数据。
以下是在一个 Oracle 数据库中使用多个地理数据库时的规则:
- 一个用户只能拥有一个地理数据库。
- 只有一个地理数据库可以参考已注册到 ArcSDE 的数据集。
- 地理数据库归创建它的用户所有。对于这一地理数据库,该用户即为 ArcSDE 管理员用户。