Доступно с лицензией Standard или Advanced.
Для создания баз геоданных в базе данных IBM Informix можно использовать инструмент геообработки Включить многопользовательскую базу геоданных или скрипт Python.
В следующих разделах вы узнаете, как
- Настроить Informix для хранения базы геоданных.
- Настроить клиента ArcGIS для подключения к Informix.
- Создать базу геоданных в базе данных Informix.
Установка и конфигурация Informix
Перед тем как запустить инструмент Включить многопользовательскую базу геоданных или скрипт для создания базы геоданных в Informix, необходимо установить и настроить систему управления базами данных Informix. Проверьте Системные требования ArcGIS, прежде чем настроить базу геоданных, чтобы быть уверенным, что комбинация базы данных, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается.
Вам необходимо следовать инструкциям IBM по установке и настройке вашего экземпляра Informix. Далее следуйте данным шагам для настройки базы данных и учетной записи для использования вашей базы геоданных.
-
В операционной системе на сервере Informix создайте пользователя с именем sde.
Вам следует подключиться к базе данных с учетной записью sde, чтобы создать базу геоданных.
- Внесите следующие изменения в файл ONCONFIG в Informix:
- Раскомментируйте параметр VPCLASS jvp,num=1.
Это позволяет создать в базе геоданных функцию sde.retrieve_guid(), которая требуется для репликации, автономного использования карт и SQL-редактирования таблиц, содержащих столбцы глобальных идентификаторов ID или GUID. Эта настройка нужна также для рабочих процессов неверсионной архивации.
- Задайте параметру USEOSTIME значение 1, чтобы использовать значения времени менее секунды.
Задание этого параметра позволяет вам выполнять редактирование рабочих процессов, которые требуют редактирования неверсионных данных в автономном режиме.
- Перезапустите Informix, чтобы применить изменения, внесенные в файл ONCONFIG.
- Раскомментируйте параметр VPCLASS jvp,num=1.
- Создайте базу данных в экземпляре Informix и сконфигурируйте пространство хранения.
База данных Informix для вашей базы геоданных должна удовлетворять следующим требованиям:
- По меньшей мере 100 МБ свободной памяти для хранения системных объектов базы геоданных
- Ведение журнала или буферизированное ведение журнала включено для базы данных
ArcGIS устанавливает транзакции, и вы не сможете вставлять данные, если ведение журнала или буферизированное ведение журнала не включено для базы данных. Вы можете сделать это при создании базы данных с помощью dbaccess или команды ontape.
ontape -s -B <database name>
- Включено ведение журнала для сложных двоичных объектов
Все сложные двоичные объекты (sbspaces), используемые для пространственных данных, также должны быть записаны в журнал. Запись в журнал создания сложных двоичных объектов не является функцией по умолчанию. Однако, чтобы обеспечить регистрацию транзакций для активации откатов и защиты всех пространственных данных вы должны включить регистрацию в журнале для всех smart blobs. Запустите следующую задачу в качестве пользователя informix, чтобы включить регистрацию в журнале для сложного двоичного объекта sbspace:
onspaces -ch SBLOBspace -DF LOGGING=ON
- Предоставьте роль EXTEND и права доступа RESOURCE учетной записи sde в базе данных.
Затем настройте клиента ArcGIS, из которого вы подключитесь и создадите базу геоданных в базе данных Informix.
Настройка клиентов
Вы можете запустить скрипт Python из ArcGIS Desktop (Desktop Standard или Desktop Advanced), ArcGIS Engine Runtime с дополнительным модулем Geodatabase Update или ArcGIS Server (Standard или Advanced) для создания базы геоданных. Если вы хотите запустить инструмент геообработки Включить многопользовательскую базу геоданных вместо скрипта, то используйте ArcGIS Desktop.
- Установите клиент ArcGIS, который собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- В большинстве случаев ваш клиент ArcGIS будет установлен не на сервере Informix; поэтому установите и настройте клиента Informix на компьютере с клиентом ArcGIS.
Клиента Informix Connect (IConnect) можно загрузить с My Esri. Информацию об установке клиента Informix смотрите в документации IBM. Если вы устанавливаете клиент Informix, чтобы запустить 32-разрядный клиент ArcGIS, установите клиентское 32-разрядное приложение Informix IConnect. Если вы устанавливаете клиент Informix для ArcGIS Server, установите 64-разрядное клиентское приложение IConnect.
- Ели ваш клиент ArcGIS установлен на компьютере с ОС Windows, зарегистрируйте сервер Informix с помощью SetNet32.
- Вы можете подключиться к базе данных Informix из ArcGIS, используя строку подключения DSNless. Если вы хотите использовать для подключения имя источника данных ODBC, его необходимо настроить. Инструкции см. в разделе Настройка источника данных ODBC для Informix.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Используйте один из следующих методов для создания базы геоданных в вашей базе данных Informix:
Используйте инструмент Включить многопользовательскую базу геоданных
Если вы установили и настроили ArcGIS Desktop для подключения к вашей базе данных Informix, то вы можете запустить инструмент Включить многопользовательскую базу геоданных.
- Запустите ArcMap или ArcCatalog.
- Подключитесь к базе данных Informix из дерева Каталога. Подключитесь с учетной записью sde.
Убедитесь в том, что в диалоговом окне Подключение базы данных сохранен пароль пользователя sde.
- Щелкните правой кнопкой мыши подключение к базе данных и выберите Включить базу геоданных.
Откроется инструмент Включить многопользовательскую базу геоданных.
- Добавьте файл подключения к базе данных для базы Informix в текстовом окне Входная база данных.
- Перейдите к файлу ключей ArcGIS Server, который был создан при авторизации ArcGIS Server, и добавьте его в текстовое поле Файл авторизации.
При использовании мастера для авторизации ArcGIS Server файл ключей записывается на сервер, где установлено программное обеспечение. Если вы авторизовали ArcGIS Server на компьютере с Linux, то файл был создан в /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. Если вы авторизовали на сервере Windows, то файл был создан в Program Files\ESRI\License<release>\sysgen. Скопируйте этот файл в местоположение, к которому у вас доступ из инструмента Включить многопользовательскую базу геоданных. Если данная процедура еще не выполнена, авторизуйте ArcGIS Server для создания этого файла.
- Щелкните OK, чтобы запустить инструмент.
Вы можете найти сообщения, относящиеся к созданию базы геоданных, в файле sde_setup.log, который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
В базе данных Informix создается база геоданных.
Затем создайте пользователей для загрузки данных в базу геоданных. Инструкции по созданию пользователей см. в документации IBM Informix Information Center.
Использование скрипта Python
Вы можете запустить скрипт Python из ArcGIS Desktop (Desktop Standard или Desktop Advanced), ArcGIS Server или с клиентского компьютера ArcGIS Engine (с дополнительным модулем Geodatabase Update) для создания базы геоданных в базе данных Informix.
Выполните следующие действия, чтобы запустить скрипт Python для создания базы геоданных в базе данных Informix:
- Создайте текстовый файл на клиентском компьютере 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.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере запуск выполняется с компьютера с Windows, файл enable_gdb.py запускается для базы данных spdata на экземпляре idsprod. Подключение выполняется для учётной записи sde с паролем Tgdbst@rtsh3r3. Для авторизации базы геоданных в местоположении для ArcGIS Server по умолчанию задаётся файл ключей.
enable_gdb.py --DBMS INFORMIX -i idsprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
Это пример запуска скрипта на компьютере с Linux:
/enable_gdb.py --DBMS INFORMIX -i idsprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '/usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes'
Вы можете найти сообщения, относящиеся к созданию базы геоданных, в файле sde_setup.log, который создается в каталоге, указанном для переменной TEMP или TMP, на том компьютере, где запущен скрипт Python. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
В базе данных Informix создается база геоданных.
Затем создайте пользователей для загрузки данных в базу геоданных. Инструкции по созданию пользователей см. в документации IBM Informix Information Center.