为了使服务器能够访问您的数据,ArcGIS Server 可以在您发布服务的同时自动向服务器上放置一份服务源数据的副本。这样即可确保您所发布的项目(例如地图文档)在查看和访问其源数据集时不会产生任何问题。
将数据发布到一个您不具有登录权限或设置了防火墙的服务器上时,将数据复制到服务器是非常有用的。这样做还可以帮助您将内部编辑的数据集与您放置在服务器上的数据集相分开。将数据复制到服务器之前,请检查下列方案并考虑工作流之间如何进行关联。
如果想要复制到服务器的数据不需要企业级地理数据库
如果想要复制到服务器的数据不需要企业级地理数据库,请忽略准备窗口中的数据源未注册到服务器,则此数据将被复制到服务器警告(或者将其标记为异常),然后发布服务。数据被自动复制到服务器。您无需执行进一步操作。请注意,注册到服务器的文件夹的所有内容都将被复制,但所注册文件夹内的子文件夹除外。
使用基于云的服务器时,何时使用自动数据复制
ArcGIS Server 站点运行在云环境(如 ArcGIS Server on Amazon Web Services)中而且您不能或不想登录到云计算机上时,将数据复制到服务器上将会非常便利。在云环境中,服务器需要拥有自己的数据副本,因为从您的本地计算机检索数据的效率很低,而且在某些情况下也无法实现。这种复制数据的方法很方便,但是,如果要发布多个使用相同数据集的服务,则会导致数据在服务器上重复性地累积。
使用本地服务器时,何时使用自动数据复制
如果您没有本地 ArcGIS Server 的登录权限,自动复制数据可以使您仍然成功地发布服务。
如果想要发布数据集的一个快照,也可以决定以这种方法复制数据。例如,假设您有一个工作地理数据库,此地理数据库正由几十个编辑人员持续进行修改。每个月都要对此数据执行质量审核流程,以保证其达到您所在组织的数据完整性标准。您希望只有在确定数据符合标准的情况下才对数据进行发布。
对数据进行质量检查之后,您就可以发布数据并将其复制到服务器上。这样做能保证 Web 用户看到的是已执行质量检查的数据,同时编辑人员每天可以继续对工作地理数据库进行修改。每个月,在完成质量审核流程之后,您就可以通过覆盖该服务将服务器上的地理数据库副本重新发布。
将数据复制到服务器还能使您为工作地理数据库和 Web 地理数据库分别使用不同的扩展架构。例如,您可以向 Web 部署添加更多的服务器或备份服务器,而不影响工作地理服务器。
如果要发布的服务类型需要企业级地理数据库
如果要发布的服务类型需要企业级地理数据库,首先必须创建一个企业级地理数据库,然后将其注册为 ArcGIS Server 管理的数据库。发布时,您的 GIS 资源所引用的数据将被复制到该企业级地理数据库中。
何时使用此方案
您将使用此方案发布要素服务或启用事务的 WFS (WFS-T) 服务。由于这些服务类型明确需要企业级地理数据库,所以发布时,ArcGIS Server 将自动在 ArcGIS Server 管理的数据库中放置一份您的数据副本。ArcGIS Server 管理的数据库仅可以用于要素服务或 WFS-T 服务,以及任何使用这些服务类型一同发布的功能。例如,可以利用已启用的 KML 功能发布要素服务,但是不能只将 KML 服务发布到 ArcGIS Server 管理的数据库。只可以注册一个地理数据库来充当此角色,并且不可以对 ArcGIS Server 管理的数据库和本地数据之间的更改进行同步。
此方案可以用在 ArcGIS Server 站点运行于云环境(例如 Amazon Web Services 上的 ArcGIS Server)的情况下。例如,云服务器需要拥有自己的数据副本,因为要素服务或 WFS-T 服务从您的本地计算机检索数据的效率很低,而且在某些情况下也无法实现。在这种情况下,由于发布时数据被自动复制到 ArcGIS Server 管理的数据库,您可以避免必须登录到云计算机。
发布后,您和您的用户只可以使用通过要素服务或 WFS-T 服务显示的数据。如果需要更新 ArcGIS Server 管理的数据库中的数据,您可以在 ArcMap 中添加要素服务或 WFS-T 服务,然后使用本地编辑命令上载这些新数据。此外,您需要先覆盖服务,客户才能在 Web 上看到这些更改。
您所发布的每项服务都包含其自身的 ArcGIS Server 管理的数据库中私有数据副本。如果要发布另一个使用相同本地数据集的服务,则在您的数据库中会存在同一数据集的两份副本。
ArcGIS Server 管理的数据库中数据的生命周期直接由服务的生命周期控制。例如,如果删除该服务,将会一并删除其所引用的 ArcGIS Server 管理的数据库中的数据。如果需要在删除服务前保存数据,可以使用 ArcGIS for Desktop 中的工具,将企业级地理数据库数据导出到可以传输到本地计算机的文件地理数据库中。
使用此方案时,请注意以下事项:
- 必须先明确创建 ArcGIS Server 的托管数据库,然后才能将其注册到服务器。
- ArcGIS Server 的托管数据库必须是企业级地理数据库(不允许文件和个人地理数据库)。
- 该数据库必须存在于服务器上或存在于对服务器可见的计算机上。
- 允许注册空地理数据库。
- 要发布的要素服务或 WFS-T 服务中的数据可以来自任何位置(shapefile 和文件地理数据库等)。
- 删除服务会同时删除该服务的数据。
- 无论何时更新本地数据,都必须先覆盖 ArcGIS Server 的托管数据库中的数据集,以便服务器反映出这些更改。
不要使用此方案
- 如果要发布除要素服务或 WFS-T 服务以外的服务类型。
- 如果数据位于某个企业级地理数据库中。
- 如果要发布通过 OLE DB 连接文件 (.odc) 访问的数据库表
- 如果要在发布者的计算机和 ArcGIS Server 的托管数据库之间同步更改。
数据复制的最佳做法
大型的复制工作可能要花费几小时甚至更长的时间才能完成。在复制过程中,客户端可以继续使用您的服务器上的其他服务。
为避免复制过多的数据,最佳的做法是使数据框的全图范围保持在需要的范围以内。例如,如果您有一个覆盖全世界的数据集,但您的地图服务只需要在某个国家使用,则将数据框中的自定义全图范围设置为仅包含所关注的那个国家。有关完整说明,请参阅为数据框设置自定义全图范围。
类似地,在复制之前请检查地图服务中是否包含一些不重要的可以移除的图层。对于具有大量源数据的服务,最好选择手动将数据移动到服务器上,以避免数据重复。
每次将数据复制到服务器时,请确保服务器计算机拥有足够的可用磁盘空间来接收复制的数据。如果您未将服务包含的全图范围的所有图层的大小均考虑在内,那么这个空间可能会超出您预期的大小。
复制 OLE DB 数据源
OLE DB 连接提供对多个数据源中数据的统一访问,但是属于非空间连接。如果数据来源于通过 OLE DB 连接文件 (.odc) 访问的数据库表,则 OLE DB 数据源将复制到服务器,并转换为文件地理数据库表。
无法复制的数据集
某些类型的数据不可以作为发布过程的一部分复制到服务器。这些数据包括选择图层、自定义图层、视频图层和工具图层。
禁用数据复制
如果您是 ArcGIS Server 管理员,您希望阻止发布者在发布时自动将数据复制到服务器,可以使用 ArcGIS Server 管理员目录禁用数据复制。有关完整说明,请参阅在发布到服务器时禁用自动数据复制。