在 SQL Server 中从多重数据库迁移到单一数据库的地理数据库
在 SQL Server 中,从多重数据库模型迁移到单一数据库模型时共包含三个选项:
- 将所有用户数据移动到主 sde 数据库。
- 创建一个新的单一模型地理数据库并将所有数据移动到其中。
- 创建多个单一模型地理数据库并将每个用户数据库中的数据移动到每个新的独立地理数据库。
将所有用户数据移动到现有的主 sde 数据库
如果无需在单独的数据库中保留数据,可以将现有数据移动到主 sde 数据库或新的单一模型地理数据库中。
在以下情况下,您可能会执行此操作:
- 您正在使用多重空间数据库模型,仅仅由于这是在 ArcSDE 9.0 之前版本中首次创建地理数据库时唯一可用的选项。
- 您需要所有数据位于同一地理数据库中,从而可以执行连接和关联。
- 您希望用户一直使用同一连接信息。
要将数据移动到 sde 数据库,请执行以下步骤:
将增量表中的编辑内容移动到基表并删除版本。
- 将所有版本化编辑内容协调并提交到 DEFAULT 版本。
- 在所有其他地理数据库用户都离开系统时压缩地理数据库。
- 删除已命名的版本。
设置 sde 数据库以便数据所有者可在其中创建数据。
-
在 sde 数据库中为每个在用户数据库中拥有数据的用户创建方案。
方案名称必须与用户名称相同。
- 授予用户在 sde 数据库中创建数据的权限。
移动数据。
移动数据时登录到 sde 地理数据库的用户都将拥有 sde 地理数据库中的数据。因此,如果希望相同的用户拥有数据,则每个用户都必须连接并移动其自己的数据。
- 数据所有者必须从 ArcGIS for Desktop 登录到 sde 数据库和用户数据库。
- 数据所有者可以使用以下任一选项移动数据:
- 连接到 sde 地理数据库时,导入用户数据库的数据。
- 连接到用户数据库时,将数据导出到 sde 数据库。
- 从用户数据库复制数据并将其粘贴到 sde 数据库。
- 移动完数据后,数据所有者必须重新授予其他用户对这些数据的权限。
将所有数据移动到一个新的单一模型地理数据库
如果希望从新数据库开始且不需要将数据保存在单独的数据库中,则您可以创建单一模型地理数据库并将所有数据移动到该地理数据库中。
在以下情况下,您可能会执行此操作:
- 您正在使用多重空间数据库模型,仅仅由于这是在 ArcSDE 9.0 之前版本中首次创建地理数据库时唯一可用的选项。
- 您需要所有数据都位于同一地理数据库中,从而可以执行连接和关联。
- 用户可以创建至新地理数据库的新连接文件。
要创建新的单一模型地理数据库并将数据移动到其中,请执行以下步骤:
将增量表中的编辑内容移动到基表并删除版本。
- 将所有版本化编辑内容协调并提交到 DEFAULT 版本。
- 在所有其他地理数据库用户都离开系统时压缩地理数据库。
- 删除已命名的版本。
创建地理数据库以移动数据、创建用户、设置用户方案以及授予数据库权限。
- 在 SQL Server 中创建新数据库。适当调整其大小以容纳所有数据。
- 如果要使用 sde 方案地理数据库,则在新数据库中创建 sde 用户以及相应的方案。提示:
如果在不同的 SQL Server 实例上创建数据库,首先需要将 sde 日志添加到该 SQL Server 实例。
- 如果使用 sde 方案地理数据库,则在新数据库中授予 sde 用户 CREATE FUNCTION、CREATE PROCEDURE、CREATE TABLE 和 CREATE VIEW 权限。
- 向新数据库添加其他非管理用户和角色。
- 在数据库中为将拥有数据的用户创建方案。
方案名称必须与用户名称相同。
- 授予用户在新数据库中创建数据的权限。
- 创建从 ArcGIS for Desktop 到新数据库的连接。
如果想将地理数据库存储在 sde 用户的方案中则以 sde 用户身份连接;如果想将地理数据库存储在 dbo 方案中则以 sysadmin 固定服务器角色中的用户身份连接。
- 使用“启用企业级地理数据库”地理处理工具或 Python 脚本在新数据库中创建地理数据库。
移动数据。
移动数据时登录到新地理数据库的用户将拥有该数据。
- 每个数据所有者都必须在 ArcGIS for Desktop 中具有到旧地理数据库和新地理数据库的连接。
- 数据所有者有三种移动数据的选项:
- 连接到新地理数据库并从旧地理数据库导入数据。
- 连接到旧地理数据库并将数据导出到新地理数据库。
- 连接到旧地理数据库,复制数据,连接到新地理数据库,并将数据粘贴到其中。
- 移动完数据后,数据所有者必须重新授予其他用户对这些数据的权限。
- 所有其他用户都必须创建到新地理数据库的新连接,并且现有 ArcMap 文档(MXDS 和 MSDS)必须映射到新的数据源。
将每个用户数据库移动到其自己的单一模型地理数据库中
如果先前使用用户数据库将数据分组到不同的部门或项目,则可以将数据从每个用户数据库移动到各个单一模型地理数据库中。
在以下情况下,您可能会执行此操作:
- 您的用户数据库用于分组不同类型的数据,并且您要保持此行为。
- 您只需要在可放置于相同地理数据库中的数据集之间创建连接和关联。
- 用户可以创建到新地理数据库的新连接文件。
要创建多个单一模型地理数据库并将数据从每个用户数据库移动到新地理数据库中,请执行以下步骤:
将增量表中的编辑内容移动到基表并删除版本。
- 将所有版本化编辑内容协调并提交到 DEFAULT 版本。
- 在所有其他地理数据库用户都离开系统时压缩地理数据库。
- 删除已命名的版本。
为您先前拥有的每个用户数据库创建一个地理数据库,并创建用户、设置用户方案以及授予权限。
- 在 SQL Server 中为您先前在多重模型地理数据库中拥有的每个用户数据库创建一个新数据库。适当调整每个数据库的大小以容纳要移动到其中的数据。
- 对于要存储在 sde 用户方案中的地理数据库,在数据库中创建 sde 用户以及相应的方案。提示:
如果在不同的 SQL Server 实例上创建数据库,首先需要将 sde 日志添加到该 SQL Server 实例。
- 授予 sde 用户在要使用 sde 方案的每个数据库中的 CREATE FUNCTION、CREATE PROCEDURE、CREATE TABLE 以及 CREATE VIEW 权限。
- 向每个新数据库添加其他非管理用户和角色。
- 在每个数据库中为将拥有数据的用户创建方案。
方案名称必须与用户名称相同。
- 授予用户在相应数据库中创建数据的权限。
- 创建从 ArcGIS for Desktop 到每个数据库的连接。
如果想将地理数据库存储在 sde 用户的方案中则以 sde 用户身份连接;如果想将地理数据库存储在 dbo 方案中则以 sysadmin 固定服务器角色中的用户身份连接。
- 使用“启用企业级地理数据库”地理处理工具或 Python 脚本在新数据库中创建地理数据库。对每个新数据库重复此步骤。
移动数据。
移动数据时登录到地理数据库的用户将成为数据的所有者。
- 每个数据所有者都必须在 ArcGIS for Desktop 中具有到旧地理数据库和新地理数据库的连接。
- 数据所有者有三种移动数据的选项:
- 连接到新地理数据库并从旧地理数据库导入数据。
- 连接到旧地理数据库并将数据导出到新地理数据库。
- 连接到旧地理数据库,复制数据,连接到新地理数据库,并将数据粘贴到其中。
- 移动完数据后,数据所有者必须重新授予其他用户对这些数据的权限。
- 所有其他用户都必须创建到新地理数据库的新连接,并且现有 ArcMap 文档(MXDS 和 MSDS)必须映射到新的数据源。