一个 SQL Server 实例中的多个地理数据库 (geodatabase)
如果想要在同一个 SQL Server 实例中创建多个地理数据库,请创建多个 SQL Server 数据库,在每个数据库中创建一个地理数据库,对每个地理数据库进行授权,然后为每个地理数据库创建单独的 ArcSDE 服务(如果要使用 ArcSDE 服务连接到地理数据库)。
下图显示的是在一个 SQL Server 实例上有两个单独的数据库(数据库 1 和数据库 2),每个数据库包含一个完整的地理数据库。
数据库可以使用任何唯一的名称,但必须遵守 SQL Server 标识符规则,并且不能以数字开头,也不得为 sde。
可以使用 ArcSDE for SQL Server 的“安装后”向导来创建附加数据库和地理数据库。请执行“安装后”向导中的所有步骤,同时确保提供唯一的数据库名称、ArcSDE 服务名称和 ArcSDE 服务编号。由于用户是在实例级创建后添加到 SQL Server 的数据库中的,因而请确保在出现提示时使用与 ArcSDE 管理员相同的密码。
如果客户端仅使用与每个单独地理数据库的直接连接,则无需创建 ArcSDE 服务,而可跳过“安装后”向导的最后一步。但是,如果客户端使用 ArcSDE 服务进行连接,则必须为每个附加地理数据库创建一个附加服务。如上所述,这可通过“安装后”向导来实现;只是要确保在 ArcSDE 服务信息 对话框中指定不同的服务名称、端口号和正确的数据库名称。
请注意,如果打算在 dbtune.sde、giomgr.defs 或 dbinit.sde 文件中使用不同的设置,必须在运行“安装后”向导之前进行这些更改。
- 要为第二个地理数据库指定不同的地理数据库存储信息,需要复制文件 giomgr.defs 和 dbtune.sde,并为其指定不同的名称。例如,可分别将其命名为 giomgr2.defs 和 dbtune2.sde。修改这些新文件的内容。运行“安装后”向导时,将指定这些自定义文件。
- 要在文件 dbinit.sde 中设置变量,以连接到第二个地理数据库,请复制文件 dbinit.sde 并重新命名。名称中必须包含新 ArcSDE 服务的名称。例如,如果新服务的名称为 sdesql2,则将 dbinit 文件命名为 dbinit_sdesql2.sde。在新 dbinit 文件中添加相应的变量。运行“安装后”向导时,指定新 dbinit 文件。
每次只能与一个地理数据库建立客户端连接。连接到 SQL Server 实例上的单一空间数据库地理数据库时,不能通过同一个连接来查询 SQL Server 实例上另一个地理数据库中的信息。
例如,在 ArcCatalog 中,可以创建与数据库 1 的空间数据库连接。通过此连接向 ArcMap 添加数据时,无法查看数据库 2 中的数据。要访问数据库 2 中的数据,应在 ArcCatalog 中建立第二个空间数据库连接,此时,在“数据库”字段中指定“数据库 2”,并在“服务”字段中指定数据库 2 的端口号。
有关在 ArcCatalog 中建立空间数据库连接的信息,请参阅建立从 ArcGIS Desktop 到 SQL Server 中地理数据库 (geodatabase) 的 ArcSDE 服务连接。有关建立直接连接的信息,请参阅建立从 ArcGIS Desktop 到 SQL Server 中地理数据库 (geodatabase) 的直接连接。
在 ArcSDE 9 及更高版本中,SQL Server 支持两种不同的数据存储模型:多重空间数据库模型和单一空间数据库模型。在 ArcSDE 9 之前的版本中,只能使用多重空间数据库模型。虽然仍支持多重空间数据库模型,但该模型已被废弃。如果想了解有关此类地理数据库的论述,请参阅 SQL Server 多重空间数据库模型。