如果已使用包含 PostgreSQL 的 Esri AMI 创建 ArcGIS Server on Amazon Web Services (AWS) 实例,则可使用一个调用创建企业级地理数据库地理处理工具的 Python 脚本创建地理数据库。
使用 ArcGIS Server Cloud Builder on Amazon Web Services 启动实例后,会在 PostgreSQL 中创建两个企业级地理数据库。如果您需要附加地理数据库(例如,如果想要自定义所用地理数据库的名称或位置,或者您拥有多个部门并且它们希望使用自己的地理数据库来维护各自的离散数据),则可根据自身需求进行创建。
使用 AWS 管理控制台手动设置站点时,不会创建任何地理数据库。如果想要在 PostgreSQL 中将地理数据库与 ArcGIS Server on Amazon Web Services 实例配合使用,则必须创建地理数据库。
请按以下步骤在 PostgreSQL 中创建地理数据库以便与 ArcGIS Server on Amazon Web Services 实例配合使用:
- 建立到 ArcGIS for Server 站点 (SITEHOST) 的 SSH 连接。
为此,您必须打开安全组中的 SSH 端口 (22)。
- 将以下脚本复制到文本编辑器中:
#Import arcpy module import arcpy arcpy.CreateEnterpriseGeodatabase("PostgreSQL", "<aws instance name>", "<new geodatabase name>", "DATABASE_AUTH", "postgres", "<postgres password>", "", "sde", "<sde password>", "", "/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen/keycodes")
- 更改括号 (<>) 中的值以与您的站点信息相匹配,并以 .py 作为扩展名保存文件。
- 打开命令 shell,然后设置环境变量以指向脚本。
- 运行脚本以创建地理数据库。
如果您提供的信息是正确的,您将收到一条消息,指示地理数据库已成功创建。如果收到错误消息,请确保您提供的消息是正确的(例如,使用正确的密码并且数据库名称有效)。
提示:
检查 data/pg_log 目录下的 PostgreSQL 日志文件,以获得更多错误消息。
- 将此脚本复制到文本编辑器中,以连接到新的地理数据库并创建带有匹配方案的登录角色。或者,您可以指定现有的登录角色和方案,其相应方案将在数据库中创建。
#Import arcpy module import arcpy arcpy.CreateDatabaseConnection_management("<path to directory where connection file to be created>", "<connection file name>.sde", "POSTGRESQL", "<aws instance name>", "DATABASE_AUTH", "postgres", "<postgres password>", "<geodatabase name>", "SAVE_USERNAME") arcpy.CreateDatabaseUser_management("<path to directory with connection file>/<connection file name>.sde", "DB", "<login role name>", "<login password>")
- 更改括号 (<>) 中的值以与站点的数据库和登录角色信息相匹配,并以 .py 作为扩展名保存文件。
例如,如果您希望 ArcGIS Server Cloud Builder on Amazon Web Services 创建的默认登录角色 (owner) 在新的地理数据库中创建数据,请在脚本中指定所有者登录角色。
- 打开命令 shell,然后设置环境变量以指向脚本。
- 运行脚本以创建登录角色和方案(或为现有登录角色创建方案)。
此脚本将向公共角色授予对该方案的使用权限。
- 对每个将在新的地理数据库中创建数据的登录角色重复以上操作。
现在,您有了一个新地理数据库。必须将登录角色和用户方案添加到地理数据库。