Доступно с лицензией Standard или Advanced.
Настройка базы геоданных на Microsoft SQL Server зависит от настроек вашего сайта. Используйте инструкции для сценария, подходящего вашей организации.
- Вы администратор SQL Server и базы геоданных.
- Администратор SQL Server создает базу данных; администратор базы геоданных создает базу геоданных.
Вы администратор базы данных SQL Server и базы геоданных
Если вы выполняете роль администратора базы данных и базы геоданных и, следовательно, знаете пароли обоих учетных записей, вы можете использовать инструмент геообработки Создать многопользовательскую базу геоданных или скрипт Python для создания базы геоданных на SQL Server.
Инструмент Создать многопользовательскую базу геоданных облегчает настройку базы геоданных, поскольку создает объекты базы данных и предоставляет вам необходимые права. Для этого используются специальные настройки по умолчанию. Ниже описывается инструмент Создать многопользовательскую базу геоданных и используемые им настройки:
- Он создает файлы базы данных (MDF и LDF) в месте установки SQL Server на сервере по умолчанию.
- Он включает опции базы данных SQL Server READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION.
- Размеры файлов базы данных будут либо совпадать с заданными размерами для модели базы данных SQL Server, либо будут равны 500 МБ для файла MDF и 125 МБ для файла LDF, в зависимости от того, какой из них больше.
- Если вы решили создать базу геоданных в схеме sde, инструмент создаст в экземпляре SQL Server учетную запись sde с аутентификацией на SQL Server, создаст в базе данных пользователя sde и сопоставит его с учетной записью sde, создаст в базе данных схему sde и предоставит пользователю sde права для создания базы геоданных и сброса подключений к экземпляру SQL Server.
- Он создает базу геоданных.
Перед тем как запустить инструмент или скрипт, необходимо настроить экземпляр SQL Server.
Установка и конфигурация SQL Server
Перед тем, как приступить к созданию базы геоданных, необходимо установить и экземпляр SQL Server. Настройка экземпляра зависит от специфических требований организации. Обратите внимание, что экземпляр SQL Server должен использовать чувствительное к регистру сопоставление.
Проверьте Системные требования ArcGIS для SQL Server, прежде чем создать базу геоданных, чтобы быть уверенным, что комбинация СУБД, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается. После установки SQL Server, убедитесь, что он настроен на прием удаленных подключений; по умолчанию удаленные подключения не разрешены.
Обратитесь к документации Microsoft к SQL Server для получения информации об установке и настройке.
После установки и настройки SQL Server, установите клиенты ArcGIS и SQL Server.
Установка клиентов
Вы можете установить ArcGIS Desktop (Desktop Standard или Desktop Advanced), ArcGIS Engine Runtime с дополнительным модулем Geodatabase Update или ArcGIS Server (enterprise), и запустить скрипт Python из любого из них для создания базы геоданных. Если вы хотите запустить инструмент геообработки Создать многопользовательскую базу геоданных вместо скрипта, установите ArcGIS Desktop.
В большинстве случаев клиентское приложение ArcGIS устанавливается на другой компьютер, чем SQL Server. Поэтому, для подключения к базе данных на клиентском компьютере ArcGIS должен быть установлен клиент SQL Server Native. Обратитесь к документации Microsoft, чтобы определить, какую версию клиента SQL Server необходимо установить для подключения к данной версии SQL Server.
Вы можете загрузить SQL Server с My Esri или из Центра загрузки Microsoft. Следуйте инструкциям Microsoft по установке клиента SQL Server на вашей машине.
- Установите клиент ArcGIS, который собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- Установите клиента SQL Server на компьютере с клиентом ArcGIS.
Если вы устанавливаете клиент SQL Server на 64-разрядную операционную систему, используйте исполнительную программу 64-разрядного клиента SQL Server. Этот исполняемый файл выполнит установку и 32-разрядного, и 64-разрядного клиентов, что позволит им работать как с 32-разрядными приложениями, такими как ArcMap, так и с 64-разрядными приложениями ArcGIS, такими как ArcGIS Server и ArcGIS Pro. Если вы запускаете 32-разрядный клиент SQL Server на 64-разрядной операционной системе, то произойдет сбой.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Вы можете запустить инструмент геообработки Создать многопользовательскую базу геоданных из ArcGIS DesktopArcGIS DesktopArcGIS Server или запустить скрипт Python из , или клиента ArcGIS Engine для создания базы данных и геоданных.
Запуск инструмента Создать многопользовательскую базу геоданных
Если у вас есть доступ к ArcGIS Desktop, для создания базы геоданных вы можете запустить инструмент геообработки.
Следуйте приведенным шагам по созданию базы геоданных с помощью инструмента Создать многопользовательскую базу геоданных в ArcMap:
- Запустите ArcMap или ArcCatalog.
- Откройте инструмент Создать многопользовательскую базу геоданных.
Этот инструмент вы найдете в группе инструментов Администрирование баз геоданных набора инструментов Управление данными.
- Из ниспадающего списка Платформа базы данных выберите SQL Server.
- В текстовом поле Экземпляр введите имя экземпляра SQL Server, к которому вы будете подключаться.
- В поле База данных введите имя базы данных, в которой вы хотите хранить базу геоданных.
Если в экземпляре SQL Server еще нет базы данных с этим именем, то она будет создана. Если она уже существует, указанная база данных будет использоваться для хранения базы геоданных.
-
Подключитесь к SQL Server в качестве системного администратора. Это можно сделать, используя учетную запись с аутентификацией средствами операционной системы и включенную в фиксированную серверную роль sysadmin в SQL Server, или с помощью учетной записи пользователя базы данных для пользователя sysadmin.
- Для входа с использованием учетной записи с аутентификацией в операционной системе, щелкните Аутентификация средствами операционной системы. Чтобы использовать эту опцию, необходимо выполнить вход в Windows с соответствующим именем.
- Для входа в качестве sysadmin, введите имя пользователя sysadmin в текстовом окне Администратор базы данных и соответствующий пароль в текстовом окне Пароль администратора базы данных.
- Выберите схему, которая будет содержать базу геоданных.
- Если вы хотите, чтобы администратором базы геоданных был пользователь с именем sde, и чтобы база геоданных хранилась в схеме пользователя sde, выберите опцию Схема, принадлежащая Sde.
- Если вы хотите, чтобы администратором базы геоданных был пользователь dbo, и чтобы база геоданных хранилась в схеме dbo, отключите опцию Схема SDE.
Подробнее о хранении базы геоданных в схемах sde или dbo см. в разделе Сравнение владельцев баз геоданных на SQL Server.
- Введите пароль администратора базы геоданных в поле Пароль администратора базы геоданных.
Если указанный вами администратор базы геоданных уже существует в базе данных, необходимо ввести правильный пароль существующего пользователя; этот инструмент не изменяет пароль.
- Чтобы указать Файл авторизации, выберите файл keycodes, который был создан при авторизации ArcGIS Server (enterprise).
На серверах Windows этот файл записывается в папку \\Program Files\ESRI\License<release#>\sysgen. Скопируйте этот файл ключей в местоположение, к которому у вас доступ из инструмента Создать многопользовательскую базу геоданных. Если данная процедура еще не выполнена, авторизуйте ArcGIS Server сейчас для создания этого файла.
- Щелкните OK, чтобы запустить инструмент.
При выборе схемы sde в текстовом окне Администратор базы геоданных будет автоматически введено sde. Если пользователя с этим именем еще нет, будут созданы пользователь и соответствующая схема; при этом пользователь будет наделен привилегиями, необходимыми для создания базы геоданных.
Если вы используете аутентификацию в базе данных и схему dbo для хранения базы геоданных, введите имя пользователя, являющегося dbo в экземпляре SQL Server в текстовом окне Администратор базы геоданных.
Если вы используете для подключения к базе данных аутентификацию средствами операционной системы, то для создания базы геоданных в схеме dbo ваша текущая учетная запись должна быть включена в фиксированную серверную роль sysadmin SQL Server.
Если не задана существующая база данных, в директории SQL Server по умолчанию создается база данных и файлы журнала. В базе данных создается база геоданных. Если вы выбрали базу геоданных в схеме sde, в базе данных создается учетная запись sde с аутентификацией в SQL Server, пользователь базы данных и схема.
Сообщения, относящиеся к созданию базы геоданных, записываются в файл sde_setup.log, который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Затем вы можете создать пользователя, который будет загружать данные в базу геоданных.
Запуск скрипта Python
Вы можете скопировать, сохранить и запустить указанный здесь скрипт для создания базы геоданных из ArcGIS Desktop (Standard или Advanced), ArcGIS Server или из ArcGIS Runtime (с дополнительным модулем Geodatabase Update).
-
Создайте текстовый файл на клиентском компьютере ArcGIS и скопируйте следующий скрипт в файл.
""" Name: create_enterprise_gdb.py Description: Provide connection information to a DBMS instance and create an enterprise geodatabase. Type create_enterprise_gdb.py -h or create_enterprise_gdb.py --help for usage """ # Import system modules import arcpy import os import optparse import sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS: SQLSERVER, ORACLE, or POSTGRESQL.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Do not specify for Oracle") parser.add_option ("--auth", dest="Account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-U", dest="Dbms_admin", type="string", default="", help="DBMS administrator user") parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password") parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema type applies to geodatabases in SQL Server only. Type SDE_SCHEMA to create geodatabase in SDE schema or type DBO_SCHEMA to create geodatabase in DBO schema. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name; Must always be sde for PostgreSQL, sde-schema geodatabases in SQL Server, and master sde geodatabase in Oracle") parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name; For PostgreSQL, type name of existing tablespace in which to store database. If no tablespace name specified, pg_default is used. For Oracle, type name of existing tablespace, or, if tablespace with specified name does not exist, it will be created and set as the default tablespace for the sde user. If no tablespace name is specified, SDE_TBS tablespace is created and set as sde user default. Tablespace name not supported for SQL Server.") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file; file created when ArcGIS Server Enterprise authorized, and stored in \\Program Files\ESRI\License<release#>\sysgen on Windows or /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen on Linux") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print("%s: error: %s\n" % (sys.argv[0], "No command options given")) parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance database = options.Database.lower() account_authentication = options.Account_authentication.upper() dbms_admin = options.Dbms_admin dbms_admin_pwd = options.Dbms_admin_pwd schema_type = options.Schema_type.upper() gdb_admin = options.Gdb_admin gdb_admin_pwd = options.Gdb_admin_pwd tablespace = options.Tablespace license = options.Authorization_file if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" if( database_type ==""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.")) parser.print_help() sys.exit(3) if (license == ""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) if(database_type == "SQL_SERVER"): if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"): print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE.")) sys.exit(3) if (schema_type == "DBO_SCHEMA" and gdb_admin != ""): print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema...")) if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication")) sys.exit(3) if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""): print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication...")) else: if (schema_type == "DBO_SCHEMA"): print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema..." )) if( gdb_admin.lower() == ""): print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified.")) sys.exit(3) if( gdb_admin.lower() != "sde"): if (database_type == "ORACLE"): print("\nGeodatabase admin user is not SDE, creating user schema geodatabase on Oracle...\n") else: print("\n%s: error: %s for %s.\n" % (sys.argv[0], "Geodatabase administrator must be SDE", database_type)) sys.exit(3) if( dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!")) sys.exit(3) if (account_authentication == "OPERATING_SYSTEM_AUTH"): print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication..." )) # Get the current product license product_license=arcpy.ProductInfo() # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.") sys.exit("Re-authorize ArcGIS before creating enterprise geodatabase.") else: print("\n" + product_license + " license available! Continuing to create...") arcpy.AddMessage("+++++++++") try: print("Creating enterprise geodatabase...\n") arcpy.CreateEnterpriseGeodatabase_management(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print("\n") parser.print_help() parser.exit(2)
- Сохраните файл с расширением .py.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере файл create_gdb.py запускается для создания базы данных entgdb на экземпляре SQL Server porthos\gisprod. Инструмент запускается от имена пользователя sa с аутентификацией средствами базы данных, он создает базу геоданных в схеме пользователя sde. Для авторизации базы геоданных в местоположении для ArcGIS Server по умолчанию задаётся файл ключей.
create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth DATABASE_AUTH -U sa -P N0pe3king! --schema SDE_SCHEMA -u sde -p Tgdbst@rtsh3r3 -l '\\Program Files\ESRI\License\sysgen\keycodes'
В этом примере для создания базы геоданных в схеме dbo тот же скрипт запускается при входе на клиентский компьютер с учетной записью, которая является участником фиксированной серверной роли sysadmin:
create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth OPERATING_SYSTEM_AUTH --schema DBO_SCHEMA -l '\\Program Files\ESRI\License\sysgen\keycodes'
Теперь у вас есть база геоданных на SQL Server.
Сообщения, относящиеся к созданию базы геоданных, записываются в файл sde_setup.log, который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен скрипт. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Затем вы можете создать пользователя, который будет загружать данные в базу геоданных.
Администратор SQL Server создает базу данных; администратор базы геоданных создает базу геоданных
Если пользователь, создающий базу геоданных, не имеет доступа к паролю администратора базы данных, администратор базы данных может сам создать базу данных и создать учетную запись администратора базы геоданных, пользователя и схему. Если база геоданных должна храниться в схеме sde, администратор базы данных создает учетную запись, пользователя и схему sde. Если вы хотите, чтобы база геоданных хранилась в схеме dbo, администратор базы данных создает учетную запись и пользователя, и назначает пользователя владельцем базы данных. Подробнее о способах хранения баз геоданных см. в разделе Сравнение владельцев баз геоданных на SQL Server.
Администратор базы геоданных может подключиться в базе данных как администратор базы геоданных и создать базу геоданных с помощью инструмента геообработки Включить многопользовательскую базу геоданных или скрипта Python.
Инструмент Включить многопользовательскую базу геоданных использует файл подключения к базе данных и создает системные таблицы базы геоданных, представления, функции и процедуры.
Установка и конфигурация SQL Server
Прежде чем администратор базы геоданных сможет ее создать, администратор SQL Server должен сделать следующее:
- Установить и настроить экземпляр SQL Server. Настройка экземпляра зависит от специфических требований организации. Проверьте Системные требования ArcGIS, прежде чем настроить базу геоданных, чтобы быть уверенным, что комбинация СУБД, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается. После установки SQL Server, убедитесь, что он настроен на прием удаленных подключений; по умолчанию удаленные подключения не разрешены. Обратитесь к документации Microsoft к SQL Server для получения информации об установке и настройке.
- Создать базу данных
- Включает опции базы данных SQL Server READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION. Если администратор SQL Server не включит эти опции, но выдаст администратору базы геоданных права ALTER в базе данных, инструмент Включить многопользовательскую базу геоданных изменит эти настройки базы данных при запуске. Если администратор SQL Server не включит эти опции, а администратор базы геоданных не будет иметь права на их изменение, база геоданных не будет создана.
- Добавить или создать учетную запись, сопоставленную с пользователем sde базы данных или с пользователем, который является владельцем базы данных.
- При использовании базы геоданных в схеме sde, создайте в базе данных схему sde. Установите ее как схему пользователя sde по умолчанию.
- При использовании sde-схемы базы геоданных, пользователь sde должен иметь, как минимум, следующие права: CREATE FUNCTION, CREATE PROCEDURE, CREATE TABLE и CREATE VIEW. Более подробно о специфичных правах см. раздел Права доступа для баз геоданных в SQL Server.
Установка клиентов
Администратор базы геоданных может установить ArcGIS Desktop (Desktop Standard или Desktop Advanced), ArcGIS Engine Runtime с дополнительным модулем Geodatabase Update или ArcGIS Server для создания базы геоданных, запустив скрипт Python. Если вы хотите запустить инструмент геообработки Включить многопользовательскую базу геоданных вместо скрипта, установите ArcGIS Desktop.
В большинстве случаев клиентское приложение ArcGIS устанавливается на другой компьютер, чем SQL Server. Поэтому, для подключения к базе данных SQL Server на клиентском компьютере ArcGIS должен быть установлен поддерживаемый клиент SQL Server. Обратитесь к документации Microsoft, чтобы определить, какую версию клиента SQL Server необходимо установить для подключения к данной версии SQL Server.
Вы можете загрузить SQL Server с My Esri или из Центра загрузки Microsoft. Следуйте инструкциям Microsoft по установке клиента SQL Server на вашей машине.
- Установите клиент ArcGIS, который собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- Установите клиента SQL Server на компьютере с клиентом ArcGIS.
Если вы устанавливаете клиент SQL Server на 64-разрядную операционную систему, используйте исполнительную программу 64-разрядного клиента SQL Server. Этот исполняемый файл выполнит установку и 32-разрядного, и 64-разрядного клиентов, что позволит им работать как с 32-разрядными приложениями, такими как ArcMap, так и с 64-разрядными приложениями ArcGIS, такими как ArcGIS Server и ArcGIS Pro. Если вы запускаете 32-разрядный клиент SQL Server на 64-разрядной операционной системе, то произойдет сбой.
Клиент ArcGIS теперь готов подключиться к базе данных и создать базу геоданных. Используйте один из способов, описанных в следующем разделе.
Создание базы геоданных
Администратор базы геоданных может запустить инструмент Включить многопользовательскую базу геоданных из ArcGIS DesktopArcGIS DesktopArcGIS Server или запустить скрипт Python из , или клиента ArcGIS Engine для создания базы геоданных в имеющейся базе данных.
Запуск инструмента Включить многопользовательскую базу геоданных
Можно запустить инструмент Включить многопользовательскую базу геоданных из ArcGIS Desktop, чтобы создать базу геоданных в имеющейся базе данных SQL Server.
Следуйте приведенным шагам по созданию базы геоданных с помощью инструмента Включить многопользовательскую базу геоданных в ArcMap:
- Запустите ArcMap или ArcCatalog.
-
Подключитесь к базе данных SQL Server из дерева Каталога в качестве администратора базы геоданных.
Убедитесь в том, что в диалоговом окне Подключение базы данных сохранен пароль пользователя.
- Щелкните правой кнопкой мыши подключение к базе данных и выберите Включить базу геоданных.
Откроется инструмент Включить многопользовательскую базу геоданных, в поле Входное подключение к базе данных будет указано имя и расположение файла подключения.
- Перейдите к файлу авторизации ArcGIS Server, который был создан при авторизации ArcGIS Server, и добавьте его в текстовое поле Файл авторизации.
При использовании мастера для авторизации ArcGIS Server файл ключей записывается на сервер, где установлено программное обеспечение. Файл ключей создан в расположении Program Files\ESRI\License<release>\sysgen на серверах Windows. Скопируйте файл в местоположение, к которому можно получить доступ из инструмента Включить многопользовательскую базу геоданных. Если данная процедура еще не выполнена, авторизуйте ArcGIS Server для создания этого файла.
- Щелкните OK, чтобы запустить инструмент.
В базе данных создается база геоданных.
Сообщения, относящиеся к созданию базы геоданных, записываются в файл sde_setup.log, который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Затем администратор базы данных может создать пользователя, который будет загружать данные в базу геоданных.
Запуск скрипта Python
Если вы хотите создать базу геоданных, запустив скрипт из ArcGIS Server, ArcGIS Desktop или ArcGIS Engine на компьютере с Windows, вы можете использовать этот скрипт.
Выполните следующие шаги, чтобы запустить скрипт Python для создания базы геоданных в существующей базе данных SQL Server:
- Создайте текстовый файл на клиентском компьютере ArcGIS и скопируйте следующий скрипт в файл.
""" Name: enable_enterprise_gdb.py Description: Provide connection information to an enterprise database and enable enterprise geodatabase. Type enable_enterprise_gdb.py -h or enable_enterprise_gdb.py --help for usage """ # Import system modules import arcpy, os, optparse, sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQLSERVER, ORACLE, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name") parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print "%s: error: %s\n" % (sys.argv[0], "No command options given") parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password database = options.Database.lower() license = options.Authorization_file if( database_type ==""): print " \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.") parser.print_help() sys.exit(3) if (license == ""): print " \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" # Get the current product license product_license=arcpy.ProductInfo() if (license == ""): print " \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print "\n" + product_license + " license found!" + " Enabling enterprise geodatabase functionality requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license." sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.") else: print "\n" + product_license + " license available! Continuing to enable..." arcpy.AddMessage("+++++++++") # Local variables instance_temp = instance.replace("\\","_") instance_temp = instance_temp.replace("/","_") instance_temp = instance_temp.replace(":","_") Conn_File_NameT = instance_temp + "_" + database + "_" + username if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = Conn_File_NameT + ".sde" Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde" # Check for the .sde file and delete it if present arcpy.env.overwriteOutput=True if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) print "\nCreating Database Connection File...\n" # Process: Create Database Connection File... # Usage: out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true) arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE") for i in range(arcpy.GetMessageCount()): if "000565" in arcpy.GetMessage(i): #Check if database connection was successful arcpy.AddReturnMessage(i) arcpy.AddMessage("\n+++++++++") arcpy.AddMessage("Exiting!!") arcpy.AddMessage("+++++++++\n") sys.exit(3) else: arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") # Process: Enable geodatabase... try: print "Enabling Enterprise Geodatabase...\n" arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print "\n" parser.print_help() parser.exit(2)
- Сохраните файл с расширением .py.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере файл enable_gdb.py запускается для базы данных spdata на экземпляре ssprod. Подключение выполняется для учётной записи sde с паролем Tgdbst@rtsh3r3. Для авторизации базы геоданных в местоположении для ArcGIS Server по умолчанию задаётся файл ключей.
enable_gdb.py --DBMS SQL_SERVER -i ssprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
Теперь у вас есть база геоданных в базе данных SQL Server.
В директории, указанной переменной %TEMP%, на компьютере, на котором выполняется скрипт, будет создан файл журнала создания базы геоданных (GDBCreateGeodatabase<#>.log).
Затем администратор базы данных может создать пользователя, который будет загружать данные в базу геоданных.