在 Standard 或 Advanced 许可等级下可用。
要在 Microsoft SQL Server 数据库中创建地理数据库,请从 ArcGIS 客户端运行地理处理工具或 Python 脚本。
如果在 ArcGIS AllSource 3.5 中创建地理数据库,则地理数据库版本为 11.5.0.x。
首先阅读以下先决条件,然后按照适合实际情况的说明进行操作。
先决条件
在 SQL Server 中创建地理数据库之前,请执行以下操作:
- 请确认您想使用的 ArcGIS、SQL Server 和操作系统组合相互兼容。
- 下载 SQL Server ODBC 客户端,您需使用该客户端连接到将用于存储地理数据库的 SQL Server 版本。
- 获取 ArcGIS Server 密钥代码文件,并将其放置到用于创建地理数据库的 ArcGIS 客户端可访问的位置。
- 确定将创建地理数据库的人员(这会影响创建数据库的人员),以及运行哪个工具来创建地理数据库。 按照适合实际情况的说明进行操作。
- 如果您是 SQL Server 数据库管理员和地理数据库管理员,请按照下一节中的说明进行操作。
- 如果数据库管理员和地理数据库管理员是两个不同的人,请按照 SQL Server 管理员创建数据库和地理数据库管理员创建地理数据库的说明进行操作。
您是 SQL Server 和地理数据库管理员
如果您同时行使数据库管理员和地理数据库管理员的角色,并知晓两个登录账户的密码,则可以使用创建企业级地理数据库地理处理工具或 ArcPy 函数在 SQL Server 数据库中创建地理数据库。
创建企业级地理数据库工具允许您设置地理数据库,此工具可创建数据库对象并授予您所需的权限。 为此,该工具使用以下默认设置并创建以下数据库对象:
- 该工具可在服务器上的默认 SQL Server 位置创建数据库文件(MDF 和 LDF)。
- 该工具可以将 SQL Server 数据库选项 READ_COMMITTED_SNAPSHOT 和 ALLOW_SNAPSHOT_ISOLATION 设置为 ON。
- 它使用您为 SQL Server 模型数据库定义的默认数据库文件大小,或者可针对 MDF 文件取 500 MB,针对 LDF 文件取 125 MB,两者比较后取其中较大值。
- 如果选择在名为 sde 的方案中创建地理数据库,则该工具将在 SQL Server 实例中创建经 sde 数据库身份验证的登录账户、在数据库中创建 sde 用户并将其映射到 sde 登录账户、在数据库中创建 sde 方案,并授予 sde 用户创建地理数据库以及终止与 SQL Server 实例的连接所需的权限。
- 它会在 SQL Server 实例中创建地理数据库对象。
运行工具或函数创建地理数据库前,您必须安装和配置 SQL Server 实例。
安装并配置 SQL Server
创建地理数据库前,必须安装 SQL Server 并配置实例。 实例的配置方式取决于您的组织的需求。
注:
SQL Server 实例必须使用不区分大小写的排序规则,且数据库无法使用土耳其语排序方式。
您或 IT 部门安装完 SQL Server 后,请确保将 SQL Server 实例可接受远程连接;默认情况下,远程连接处于未启用状态。
有关 SQL Server 安装和配置信息,请参考 Microsoft 文档。
安装和配置 SQL Server 后,安装 ArcGIS 和 SQL Server 客户端。
安装客户端
您可以安装 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)或 ArcGIS Server(企业版),然后运行 Python 脚本来创建地理数据库。 要运行创建企业级地理数据库地理处理工具,而非脚本,请安装 ArcGIS AllSource。
注:
您需要一个 ArcGIS Server(企业版)密钥代码文件,以便在下一部分中授权地理数据库。 即使不在 ArcGIS Server 计算机上运行 Python 脚本来创建地理数据库,也需安装和授权 ArcGIS Server 才能获取密钥代码文件。 可能需要将 ArcGIS Server 计算机中的密钥代码文件复制到可使用创建企业级地理数据库地理处理工具访问的位置。
在大多数情况下,ArcGIS 客户端将安装在不同于 SQL Server 的计算机上。 因此,要连接到该数据库,必须在 ArcGIS 客户端计算机上安装受支持的 SQL Server 客户端。 请参阅 SQL Server 的 ArcGIS 系统要求,确定应安装哪个版本的 SQL Server 客户端才能连接到您正在使用的 SQL Server 版本。
要连接到 Microsoft Windows 计算机上的 SQL Server,可以从 My Esri 或 Microsoft 下载中心下载 SQL Server 客户端。 要连接到 Linux 计算机上的 SQL Server,请从 Microsoft 下载中心下载 SQL Server 客户端文件。 之后请遵照 Microsoft 的说明在 ArcGIS 客户端计算机上安装 SQL Server 客户端。
请按照这些步骤安装并配置创建地理数据库所需的客户端。 如果您没有安装软件的权限,请让 IT 部门执行这些步骤。
- 安装将用于创建地理数据库的 ArcGIS 客户端。
按照软件安装指南中提供的说明进行操作。
- 在 ArcGIS 客户端计算机上安装 SQL Server 客户端。
如果将 SQL Server 客户端安装在 64 位操作系统上,则请使用 64 位的 SQL Server 客户端可执行文件。 如果在 64 位操作系统上运行 32 位 SQL Server 客户端,则安装将失败。
现在,可创建地理数据库。
创建地理数据库
您可以运行 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)中的创建企业级地理数据库工具或运行 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)、ArcGIS Server(企业版)客户端的 Python 脚本来创建数据库和地理数据库。
运行创建企业级地理数据库工具
如果您有权访问 ArcGIS AllSource,则可运行地理处理工具来创建地理数据库。
请遵照以下步骤在 ArcGIS AllSource 中使用创建企业级地理数据库工具创建地理数据库:
- 启动 ArcGIS AllSource。
- 打开创建企业级地理数据库工具。
您可以搜索或浏览到此工具,它位于“数据管理”工具箱的“地理数据库管理”工具集中。 有关打开地理处理工具的常规信息,请参阅查找地理处理工具。
- 从数据库平台下拉列表中选择 SQL Server。
- 在实例文本框中,输入您将要连接的 SQL Server 实例的名称。
- 在数据库文本框中输入用于存储地理数据库的数据库的名称。
如果 SQL Server 实例中不存在具有该名称的数据库,则该工具将创建该数据库。 如果数据库存在,则该工具将使用它来存储地理数据库。
- 以系统管理员身份连接到 SQL Server。 可使用作为 SQL Server 中 sysadmin 固定服务器角色成员的经操作系统身份验证的登录账户,也可以输入 sysadmin 用户的数据库用户名和密码。
- 要以 sysadmin 角色的数据库用户进行身份验证,可以在数据库管理员文本框中输入 sysadmin 用户名,并在数据库管理员密码文本框中输入相应的密码。
- 要使用经操作系统验证的 sysadmin 登录账户进行验证,请选中操作系统身份验证。 您必须使用正确的登录账户登录到 Windows 才能使用此选项。
- 选择将包含地理数据库的方案。
- 如果想使名为 sde 的用户成为地理数据库管理员,并将地理数据库存储在 sde 用户的方案中,可以选中 Sde 拥有的方案。
- 如果想使 dbo 用户成为地理数据库管理员,并将地理数据库存储在 dbo 方案中,可以取消选中 Sde 拥有的方案。
有关在 sde 或 dbo 方案中存储地理数据库的详细信息,请参阅 SQL Server 中地理数据库所有者的比较。
- 在地理数据库管理员密码文本框中输入地理数据库管理员的密码。
如果数据库中已存在您指定的地理数据库管理员,则必须为现有用户输入正确的密码;此工具不会更改密码。
- 要指定授权文件字段的文件,请浏览到在授权 ArcGIS Server(企业版)时创建的密钥代码文件,并选择该文件。
此文件将在 Windows 服务器的 \\Program Files\ESRI\License<release#>\sysgen 文件夹和 Linux 服务器的 /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen 中创建。 将密钥代码文件复制到可使用创建企业级地理数据库工具访问的位置。 如果尚未执行此操作,则立即授权 ArcGIS Server 创建此文件。
- 单击运行。
将创建地理数据库的相关消息写入 sde_setup.log 文件,该文件是在为运行工具的计算机上的 %TEMP% 变量指定的目录中创建的。 如果在创建地理数据库时出现任何问题,可查看此文件以解决这些问题。
如果选择 sde 拥有的方案,则地理数据库管理员文本框将以 sde 来填充。 如果不存在使用该名称的用户,则工具将创建该用户及其对应的方案,并且会向该用户授予创建地理数据库所需的权限。
如果使用数据库身份验证和 dbo 方案存储地理数据库,可以在地理数据库管理员文本框中输入 SQL Server 实例中 dbo 的用户名。
如果使用的是操作系统身份验证来连接数据库,则您的当前登录必须在 SQL Server sysadmin 固定服务器角色中才能创建 dbo 方案地理数据库。
如果未指定现有数据库,则在 SQL Server 默认位置中创建数据库和日志文件。 将在数据库中创建地理数据库。 如果选择 sde 方案地理数据库,则会创建经数据库身份验证的 sde 登录账户、数据库用户和方案。
接下来,您可创建能够将数据加载到地理数据库中的用户。
运行 Python 脚本
您可以复制、保存和运行此处提供的脚本以在 ArcGIS AllSource(Standard 或 Advanced)、ArcGIS Server(企业版)中创建地理数据库。
提示:
有关从 ArcGIS Server 计算机运行 Python 的信息,请参阅 ArcGIS Server 和 ArcPy。
- 在 ArcGIS 客户端计算机上创建文本文件,然后将以下脚本复制到该文件中,提供特定于您站点的信息和选项:
""" Name: create_enterprise_gdb.py Description: Create an enterprise geodatabase in SQL Server with provided DBMS connection information Author: Esri """ # Import system modules import arcpy, os # Local variables # Replace the path with the location of your keycodes file # Replace all arcpy.management.CreateEnterpriseGeodatabase information except "SQL_SERVER" and license with values specific to your site license = os.fsencode("\\Program Files\\path\\to\\authorization_file\\keycodes") try: arcpy.management.CreateEnterpriseGeodatabase("SQL_SERVER", "gisprod", "entgdb", "DATABASE_AUTH", "sa", "N0pe3king!", "SDE_SCHEMA", "sde", "sdepwdGLSCfhjWXQGQ", "", license ) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i)
- 按照脚本中所述替换值。
- 以 .py 扩展名保存该文件。
- 运行脚本。
可在 sde_setup.log 文件中查找创建地理数据库的相关消息,该文件是在为运行脚本的计算机上的 TEMP 或 TMP 变量指定的目录中创建的。 如果在创建地理数据库时出现任何问题,可查看此文件以解决这些问题。
您现已在 SQL Server 中具有一个地理数据库。
接下来,您可创建能够将数据加载到地理数据库中的用户。
SQL Server 管理员创建数据库;地理数据库管理员创建地理数据库
如果创建地理数据库的用户不具有数据库管理员的密码,则数据库管理员必须创建数据库并创建地理数据库管理员的登录账户、用户和方案。 如果要将地理数据库存储在 sde 方案中,数据库管理员可创建 sde 登录账户、用户和方案。 如果要将地理数据库存储在 dbo 方案中,数据库管理员可创建登录账户和用户,并将用户分配为数据库的所有者。 有关地理数据库存储选项的信息,请参阅 SQL Server 中地理数据库所有者的比较。
然后地理数据库管理员以地理数据库管理员的身份连接到数据库,并使用启用企业级地理数据库地理处理工具或 Python 脚本创建地理数据库。
启用企业级地理数据库工具以数据库连接文件作为输入,并创建地理数据库系统表、视图、函数和过程。
安装并配置 SQL Server
地理数据库管理员创建地理数据库前,SQL Server 管理员必须执行以下操作:
- 安装 SQL Server 并配置实例。 实例的配置方式取决于您的组织的需求。 在继续操作之前,请查看 ArcGIS 系统要求,以确保要使用的数据库管理系统、ArcGIS 和硬件组合能够得到支持。 将 SQL Server 实例配置为可接受远程连接;默认情况下,远程连接处于未启用状态。 有关 SQL Server 安装和配置信息,请参考 Microsoft 文档。
注:
SQL Server 实例必须使用不区分大小写的排序规则,且数据库无法使用土耳其语排序方式。
- 创建数据库。
- 将 SQL Server 数据库选项 READ_COMMITTED_SNAPSHOT 和 ALLOW_SNAPSHOT_ISOLATION 设置为 ON。 如果 SQL Server 管理员未将这些选项设置为 ON,但是授予地理数据库管理员在数据库中的 ALTER 权限,则启用企业级地理数据库工具会在运行时更改数据库上的这些设置。 如果 SQL Server 管理员未对这些选项进行设置,并且地理数据库管理员也没有足够的权限更改它们,则地理数据库的创建将会失败。
- 添加或创建一个登录账户,该登录账户映射到名为 sde 的数据库用户或作为数据库所有者的数据库用户。
- 如果使用 sde 方案地理数据库,请在数据库中创建一个名为 sde 的方案。 将其设置为 sde 用户的默认方案。
- 如果使用 sde 方案地理数据库,则 sde 用户必须至少具有以下权限:CREATE FUNCTION、CREATE PROCEDURE、CREATE TABLE 和 CREATE VIEW。 有关其他权限,请参阅 SQL Server 中地理数据库的权限。
安装客户端
地理数据库管理员(或 IT 人员)可以安装 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)或 ArcGIS Server(企业版),然后运行 Python 脚本来创建地理数据库。 要运行启用企业级地理数据库地理处理工具,而非脚本,请安装 ArcGIS AllSource。
注:
您需要一个 ArcGIS Server(企业版)密钥代码文件,以便在下一部分中授权地理数据库。 即使不在 ArcGIS Server 计算机上运行 Python 脚本来创建地理数据库,也必须安装和授权 ArcGIS Server 才能获取密钥代码文件。 可能需要将 ArcGIS Server 计算机中的密钥代码文件复制到可使用启用企业级地理数据库地理处理工具访问的位置。
在大多数情况下,ArcGIS 客户端将安装在不同于 SQL Server 的计算机上。 因此,要连接到该数据库,必须在 ArcGIS 客户端计算机上安装受支持的 SQL Server 客户端。 请参阅 SQL Server 的 ArcGIS 系统要求,确定应安装哪个版本的 SQL Server 客户端才能连接到您正在使用的 SQL Server 版本。
要连接到 Microsoft Windows 计算机上的 SQL Server,可以从 My Esri 或 Microsoft 下载中心下载 SQL Server 客户端。 要连接到 Linux 计算机上的 SQL Server,请从 Microsoft 下载中心下载 SQL Server 客户端文件。 之后请遵照 Microsoft 的说明在客户端计算机上安装 SQL Server 客户端。
- 安装将用于创建地理数据库的 ArcGIS 客户端。
按照软件安装指南中提供的说明进行操作。
- 在 ArcGIS 客户端计算机上安装 SQL Server 客户端。
如果将 SQL Server 客户端安装在 64 位操作系统上,则请使用 64 位的 SQL Server 客户端可执行文件。 如果在 64 位操作系统上运行 32 位 SQL Server 客户端,则运行将失败。
ArcGIS 客户端可连接到数据库并创建地理数据库。 为此,请使用下一部分所述方法之一。
创建地理数据库
地理数据库管理员可以从 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)中运行启用企业级地理数据库工具,或从 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)或 ArcGIS Server(企业版)计算机中运行 Python 脚本在现有数据库中创建地理数据库。
运行启用企业级地理数据库工具
您可以在 ArcGIS AllSource 中运行启用企业级地理数据库工具以在现有的 SQL Server 数据库中创建地理数据库。
请遵照以下步骤使用 ArcGIS AllSource 中的启用企业级地理数据库工具创建地理数据库:
- 启动 ArcGIS AllSource。
- 以地理数据库管理员身份连接到 SQL Server 数据库。
在数据库连接对话框上保存用户的密码。
- 打开启用企业级地理数据库工具。
有关打开地理处理工具的常规信息,请参阅查找地理处理工具。
- 将步骤 2 中创建的数据库连接拖入输入数据库连接字段。
- 浏览至授权 ArcGIS Server 时创建的 ArcGIS Server 授权文件,并将其添加到授权文件文本框中。
使用向导来授权 ArcGIS Server 之后,密钥代码文件将被写入安装该软件的服务器。 密钥代码文件将在 Windows 服务器上的 Program Files\ESRI\License<release>\sysgen 中和 Linux 服务器上的 /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen 中创建。 将该文件复制到可使用启用企业级地理数据库工具访问的位置。 如果尚未执行此操作,则授权 ArcGIS Server 创建此文件。
- 单击运行。
将创建地理数据库的相关消息写入 sde_setup.log 文件,该文件是在为运行工具的计算机上的 %TEMP% 变量指定的目录中创建的。 如果在创建地理数据库时出现任何问题,可查看此文件以解决这些问题。
将在数据库中创建地理数据库。
接下来,数据库管理员可创建能够将数据加载到地理数据库中的用户。
运行 Python 脚本
要通过 Windows 计算机上安装的 ArcGIS AllSource(Desktop Standard 或 Desktop Advanced)或 ArcGIS Server(企业版)运行脚本来创建地理数据库,可使用此处提供的脚本。
提示:
有关从 ArcGIS Server 计算机运行 Python 的信息,请参阅 ArcGIS Server 和 ArcPy。
按照以下步骤运行 Python 脚本以在现有 SQL Server 数据库中创建地理数据库:
- 在 ArcGIS 客户端计算机上创建文本文件,然后将以下脚本复制到该文件中,提供特定于您站点的信息和选项:
# Name: enable_enterprise_gdb.py # Description: Create an enterprise geodatabase in an existing SQL Server database # Import system modules import arcpy, os # Local variables # Replace paths with those appropriate to your site license = "\\Program Files\\path\\to\\authorization_file\\keycodes" tempdir = "C:\\temp\\" connection_file_name = "egdb_connection.sde" # Check for the .sde file and delete it if present connection_file_name_path = os.path.join(tempdir, connection_file_name) arcpy.env.overwriteOutput=True if os.path.exists(connection_file_name_path): os.remove(connection_file_name_path) # Create a connection to the geodatabase as the geodatabase administrator # Replace all values except tempdir, connection_file_name, "SQL_SERVER", and "SAVE_USERNAME" arcpy.CreateDatabaseConnection_management(tempdir, connection_file_name, "SQL_SERVER", "gisprod", "DATABASE_AUTH", "sde", "Tgdbst@rtsh3r3", "SAVE_USERNAME", "entgdb" ) # Enable geodatabase try: arcpy.EnableEnterpriseGeodatabase_management(connection_file_name_path, license) except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i)
- 按照脚本中所述替换值。
- 以 .py 扩展名保存该文件。
- 运行脚本。
可在 sde_setup.log 文件中查找创建地理数据库的相关消息,该文件是在为运行脚本的计算机上的 TEMP 或 TMP 变量指定的目录中创建的。 如果在创建地理数据库时出现任何问题,可查看此文件以解决这些问题。
您现已在 SQL Server 数据库中具有一个地理数据库。
接下来,数据库管理员可创建能够将数据加载到地理数据库中的用户。