SQL Server 中移动地理数据库的方法
有可用于移动地理数据库的多个选项:可创建新的地理数据库并移动数据,或者移动整个数据库。Microsoft SQL Server 具有移动数据库的多个选项。
创建新的地理数据库,然后移动数据
可创建新的 SQL Server 数据库,在其中创建地理数据库,然后将现有数据移动到这个新的地理数据库中。这可通过使用 ArcGIS 中的复制和粘贴、导出工具、“提取数据”向导或 XML 工作空间文档来完成。
请注意,在将数据加载到新的地理数据库时登录的用户将成为数据的所有者。如果希望在新的地理数据库中该数据仍归同一用户所有,则应使每个用户都移动自己的数据。
移动 SQL Server 数据库
移动 SQL Server 数据库的选项包括使用分离和附加操作、备份和还原操作或者“复制数据库”向导。
无论使用哪种方法移动 SQL Server 数据库,都不能对数据库重命名。例如,在还原数据库时,您可以用其他名称来还原数据库。但建议您不要对地理数据库进行这种操作;否则将无法与其建立连接。
地理数据库系统表中的所有对象名称都是通过数据库名称进行完全限定的。此外,许多存储过程在其代码中使用三部分命名语法,其格式为 <数据库>.<所有者>.<对象>。如果数据库名称发生了更改,您将无法执行此类过程。
使用分离和附加操作
要移动内部 SQL Server 数据库中存储的地理数据库,最简便的方法就是将数据库从源服务器中分离,然后将其附加到目标服务器。请记住以下几点:
- 分离时,任何用户都不能连接到该数据库。
- 分离操作会将数据库彻底关闭。
- 分离/附加操作比数据库备份和还原操作要快。
- 分离/附加操作将会在源服务器和目标服务器上创建相同的数据库。
- 该方法适合移动大量的数据。
- 要从 SQL Server 实例中分离数据库,必须至少对该数据库拥有 db_owner 权限。
- 必须拥有 CREATE DATABASE 权限才能将数据库附加到 SQL Server 实例。
- 对于通过 ArcGIS for Server 企业级获得许可的 SQL Server ArcSDE 地理数据库,您可使用 CREATE DATABASE FOR ATTACH SQL 命令来指定所有数据和日志文件。
还原其他数据库的备份
另一种移动内部 SQL Server 数据库的方法是,创建数据库的完整备份,然后将该备份文件还原到目标服务器。请记住以下几点:
- 在还原操作期间,不能更改逻辑文件名。
- 备份过程中可附加用户,但还原过程不可附加用户。
有关还原 SQL Server 数据库的备份的详细信息,请参阅 SQL Server DBMS 文档。
复制数据库向导

仅适用于使用 ArcGIS for Server 企业级许可创建的地理数据库
SQL Server Management Studio 提供的“复制数据库”向导可用于移动数据库。使用“复制数据库”向导时要考虑以下几个方面:
- 可复制多个数据库。
- 不能使用“复制数据库”向导在同一实例中建立数据库的副本。
- 不能从“复制数据库”向导中排除用户登录信息,所以这些信息会与新服务器用户 ID (SID) 一起传递到复制的数据库。
- 该向导要求源服务器与目标服务器相连。