Доступно с лицензией Standard или Advanced.
Установите и настройте IBM DB2 и используйте инструмент геообработки Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase) или скрипт Python для создания базы геоданных в базе данных IBM DB2.
Этот раздел описывает создание базы геоданных в DB2 на серверах Linux, UNIX или Windows. Инструкции по настройке базы геоданных в DB2 в операционной системе z (z/OS) смотри в Настройка базы геоданных в DB2 на z/OS.
Настройка DB2
Перед тем как вы сможете запустить инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase) или скрипт для создания базы геоданных в DB2, вы должны вначале установить и настроить систему управления базами данных DB2. Проверьте Системные требования ArcGIS, прежде чем настроить базу геоданных, чтобы быть уверенным, что комбинация базы данных, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается.
Вам необходимо следовать инструкциям IBM по установке и настройке вашего экземпляра DB2. Далее следуйте данным шагам для настройки базы данных и учетной записи для использования вашей базы геоданных.
-
Создайте в операционной системе на сервере DB2 учетную запись с именем sde.
Вам следует подключиться к базе данных с учетной записью sde, чтобы создать базу геоданных.
- Создайте базу данных DB2 и зарегистрируйте ее с помощью модуля Spatial Extender.
- Предоставьте пользователю sde права DBADM в базе данных.
Далее установите клиент ArcGIS, из которого вам следует подключиться и создать базу геоданных в базе данных DB2.
Настройка клиента ArcGIS
Вы можете запустить скрипт Python из ArcGIS for Desktop (Стандартный или Дополнительно), ArcGIS Engine Runtime с дополнительным модулем Geodatabase Update или ArcGIS for Server (Standard или Advanced) для создания базы геоданных. Если вы хотите запустить инструмент геообработки Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase) вместо скрипта, то используйте ArcGIS for Desktop.
- Установите клиента ArcGIS, которого вы собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- В большинстве случаев ваш клиент ArcGIS будет установлен на компьютере, отличном от сервера DB2; поэтому, установите и настройте клиент DB2 на компьютере с клиентом ArcGIS.
IBM Data Server Runtime Client for DB2 может быть загружен с My Esri, или вы можете использовать свой собственный файл установки клиента DB2. Для получения инструкций по установке обратитесь к документации по DB2. Если вы устанавливаете клиент DB2 на 64-разрядную ОС, запустите 64-разрядный exe-файл; он установит 32- и 64-разрядные файлы.
- Вы можете подключиться непосредственно из ArcGIS Server к базе данных DB2 с использованием строки подключения DSNless. Однако, если вместо этого вы хотите использовать имя источника данных для подключения, то вам необходимо каталогизировать базу данных, тем самым настроив имя источника данных. Инструкции по созданию имени источника данных смотри в документации по IBM DB2.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Используйте один из следующих методов для создания базы геоданных в вашей базе данных DB2:
Используйте инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase)
Если вы установили и настроили ArcGIS for Desktop для подключения к вашей базе данных DB2, то вы можете запустить инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase).
- Запустите ArcMap или ArcCatalog.
-
Подключитесь к базе данных DB2 из дерева Каталог. Подключитесь с учетной записью sde.
Убедитесь в том, что в диалоговом окне Подключение базы данных сохранен пароль пользователя sde.
- Щелкните правой кнопкой мыши подключение к базе данных и выберите Включить базу геоданных (Enable Geodatabase).
Откроется инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase).
- Добавьте файл подключения к базе данных для базы DB2 в текстовом окне Входная база данных (Input Database).
- Перейдите к файлу ключей ArcGIS for Server, который был создан при авторизации ArcGIS for Server, и добавьте его в текстовое поле Файл авторизации (Authorization File).
При использовании мастера для авторизации ArcGIS for Server файл ключей записывается на сервер, где установлено программное обеспечение. Если вы авторизовали ArcGIS for Server на компьютере с Linux, то файл был создан в /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. Если вы авторизовали на сервере Windows, то файл был создан в Program Files\ESRI\License<release>\sysgen. Если данная процедура еще не выполнена, авторизуйте ArcGIS for Server для создания этого файла.
- Щелкните OK, чтобы запустить инструмент.
Создание базы геоданных (GDBCreateGeodatabase<№>.log) регистрируется в файле журнала, который сохраняется в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с запуском инструмента изучите этот файл журнала для их устранения.
В базе данных DB2 создается база геоданных.
Затем создайте пользователей для загрузки данных в базу геоданных. Инструкции по созданию пользователей смотри в IBM DB2 Information Center.
Использование скрипта Python
Вы можете запустить скрипт Python из ArcGIS for Desktop (Стандартный или Дополнительно), ArcGIS for Server (Standard или Advanced) или с клиентского компьютера ArcGIS Engine (с дополнительным модулем Geodatabase Update) для создания базы геоданных в базе данных DB2.
Выполните следующие действия, чтобы запустить скрипт Python для создания базы геоданных в базе данных DB2:
- Создайте текстовый файл на клиентском компьютере 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 Author: Esri """ # 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 for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for 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 на экземпляре db2prod. Подключение выполняется для учетной записи SDE с паролем Tgdbst@rtsh3r3. Для авторизации базы геоданных в местоположении для ArcGIS Server по умолчанию задается файл ключей.
enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Это пример запуска скрипта на компьютере с Linux:
/enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.3/sysgen/keycodes
Файл отчета о создании базы геоданных (GDBCreateGeodatabase<#>.log) будет записан в папку, заданную переменной TEMP или TMP на компьютере, где был запущен скрипт.
В базе данных DB2 создается база геоданных.
Затем создайте пользователей для загрузки данных в базу геоданных. Инструкции по созданию пользователей и предоставлению прав для загрузки данных смотри в IBM DB2 Information Center.