Доступно с лицензией Standard или Advanced.
Для создания базы геоданных в IBM Db2н а операционной системе z (z/OS) вам следует выполнить следующее:
- Установить и настроить ArcGIS и клиенты Db2 .
- Настроить ZPARM на Db2.
- Создать пользователя sde и группу в z/OS.
- Создать по крайней мере две базы данных.
- Предоставить права доступа пользователю sde и группе.
- Настроить файл dbtune.sde для указания хранилища системной таблицы.
- Создать базу геоданных и авторизовать базу геоданных с использованием файла ключевых слов ArcGIS Server.
Настройка клиентов
Необходимо установить клиент ArcGIS для получения файлов, необходимых для установки базы данных Db2 и для запуска инструмента и скрипта для создания базы геоданных.
Вы можете запустить скрипт Python из ArcGIS Desktop (Desktop Standard или Desktop Advanced), ArcGIS Engine Geodatabase Update или ArcGIS Server (уровень Enterprise) для создания базы геоданных. Если вы хотите запустить инструмент геообработки Включить многопользовательскую базу геоданных вместо скрипта, то используйте ArcGIS Desktop.
- Установите клиент ArcGIS, который собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- В большинстве случаев ваш клиент ArcGIS будет установлен на компьютере, отличном от сервера Db2; поэтому, установите и настройте клиент Db2 на компьютере с клиентом ArcGIS.
Вы можете скачать IBM Data Server Runtime Client для Db2 из My Esri или вы можете использовать собственную установку клиента Db2. Для получения инструкций по установке обратитесь к документации Db2. Если вы устанавливаете клиент Db2 на 64-разрядную операционную систему, запустите 64-разрядный исполняемый файл; будут установлены 32- и 64-разрядные файлы, что позволит вам подключаться как из 32-разрядных клиентов, так и из 64-разрядных клиентов ArcGIS.
- Вы можете подключиться непосредственно из ArcGIS к базе данных Db2 с использованием строки подключения DSNless. Однако, если вместо этого вы хотите использовать имя источника данных для подключения, то вам необходимо каталогизировать базу данных, тем самым настроив имя источника данных. Инструкции по созданию имени источника данных смотри в документации по IBM Db2.
Далее, настройте систему Db2.
Настройка ZPARM
Для того, чтобы ArcGIS мог запускаться в качестве распределенного клиента для IBM Db2 на z/OS, необходимо запустить утилиту распределенных данных (DDF). Настоятельно рекомендуется использовать следующие значения DB2 ZPARM для оптимизации производительности базы геоданных в ArcGIS и в других клиентах.
- Осуществите вход в Db2 как администратор z/OS.
- Установите следующие параметры в разделе DSN6FAC для DSNTIJUZ:
- CMTSTAT=INACTIVE
- IDTHTOIN=3600
- TCPKPALV=120
- Установите следующие параметры в разделе DSN6SYSP для DSNTIJUZ:
- CONDBAT=10000
- EXTSEC=YES
- IMPDSDEF=YES
- IXQTY=0
- MAXDBAT=1000
- TSQTY=0
- XMLVALA=204800
- XMLVALS=10240
- Также необходимо задать действующую по умолчанию WLM-среду в WLMENV, а именно в разделе DSN6SPRM настроек DSNTIJUZ. К ним относятся:
- CACHEDYN=YES
- EDMDBDC=102400
- EDMPOOL=32000
- EDMSTMTC=102400
- EDM_SKELETON_POOL=102400
- После изменения вышеописанных значений ZPARM, также необходимо убедиться, что для SYSLMOD в шаге настроек DSNTIZL указано правильное имя набора данных, которое гарантирует при старте Db2 осуществление загрузки требуемого модуля ZPARM.
- Остановите и запустите Db2, используя команду SET SYSPARM для незамедлительного применения изменений.
Создайте пользователя sde и группу
Создайте ID первичной авторизации в RACF на z/OS (sde по умолчанию) с доступом к Time Sharing Option (TSO). Дополнительную информацию о создании пользователей по RACF см. в руководстве администратора z/OS.
IBM рекомендует вам использовать вторичный ID авторизации (группы пользователей в RACF на z/OS) для упрощения управления правами пользователей. Вам необходимо включить вторичный ID авторизации на z/OS. Дополнительную информацию о включении вторичной авторизации см. в руководстве z/OS.
Только один пользователь, который отвечает за управление ГИС данными и базами геоданных, должен войти в систему как пользователь sde. Другим пользователям ArcGIS следует подключаться по учетным записям, отличным от sde.
- Используя RACF, создайте в системе отдельную учетную запись с именем sde.
- Создайте группу пользователей, например GISUSERS, на z/OS с применением RACF. Чтобы это сделать, укажите имя группы на VM14 вашему EC.
- Добавьте пользователя sde в группу GISUSERS с использованием RACF.
Чтобы подключиться к базе геоданных как пользователь sde с клиентского компьютера с Windows, на которой установлен клиент ArcGIS, на клиентской машине должен быть представлен локальный пользователь Windows с тем же именем (sde), что и при подключении к серверу. Этому пользователю не требуется специальных прав доступа. Для создания локального пользователя Windows обратитесь к документации по Microsoft Windows.
Создание баз данных
Для хранения базы геоданных вам понадобится не менее двух баз данных Db2 в подсистеме базы данных с включенным пространством: для хранения репозитория базы геоданных и пользовательских данных. База данных с репозиторием базы геоданных совместно с базой или базами данных, содержащими пользовательские данные, составляют одну базу геоданных. Поэтому эти базы данных должны быть созданы до начала установки базы геоданных.
Скрипт JCL, ESRIUDFI, предоставляет возможность формирования баз данных и UDF для создания базы геоданных. Этот скрипт установлен в папку DatabaseSupport\DB2zOS, которая находится в установочной папке клиента ArcGIS. Необходимо отредактировать скрипт ESRIUDFI, используя необходимую в вашем случае информацию, загрузить скрипт и запустить его на z/OS. В самом скрипте содержатся инструкции по созданию двух баз данных.
Чтобы отредактировать ESRIUDFI, обратитесь к инструкциям в скрипте JCL и внимательно проверьте следующие строки.
- В теле скрипта ESRIUDFI имеется несколько строк, которые должны быть заменены параметрами среды, соответствующими данному пользователю. Дополнительную информацию о значении строк и о правилах их замены можно найти в верхней части скрипта ESRIUDFI.
- Шаг ESRIS1 скрипта JCL создает две базы данных и устанавливает сопоставление. Чтобы использовать эти строки, необходимо удалить комментарии и предоставить имена и сопоставления для баз данных. Ниже приведен пример для этого случая.
CREATE DATABASE SDEDBR00 CCSID UNICODE; CREATE DATABASE SDEDBU00 CCSID UNICODE;
- Если требуется, вы можете создать группу хранилищ для более эффективного управления данными базы геоданных. Для этого необходимо сначала создать группу хранилищ, добавив дополнительную строку в скрипт ESRIUDFI, как показано в следующем примере:
CREATE STOGROUP ARCSDE VOLUMES (VOL1, VOL2, …) VCAT SDECAT; CREATE DATABASE SDEDBR00 CCSID UNICODE STOGROUP ARCGIS; CREATE DATABASE SDEDBU00 CCSID UNICODE STOGROUP ARCGIS;
- По завершении редактирования скрипта ESRIUDFI необходимо отправить его на целевую машину.
После завершения установки ESRI UDF вы увидите, что на последнем этапе состыковка пакета и создание процедуры SDE.SDE_UPDT_LMOD прошли успешно, но есть предупреждения. Эти предупреждения указывают на то, что системные таблицы базы геоданных еще не были созданы в базе данных. Вы можете игнорировать эти предупреждения, так как после запуска инструмента Включить многопользовательскую базу геоданных таблицы будут созданы, и объект пакета будет автоматически привязан после того, как утилита создаст на него ссылку.
- Подсистема базы данных со включенным пространством. Для получения инструкций обратитесь к документации по Db2 z/OS.
Предоставление прав доступа
После создания баз данных и UDF пользователю sde и группе пользователей ArcGIS необходимо выдать разрешения и права доступа к базе данных.
- Войдите в Db2 под учетной записью с ролью SYSADM для выдачи необходимых разрешений группе пользователей ArcGIS и пользователю sde. В данном примере используется оператор GRANT, а группа называется GISUSERS.
GRANT SELECT ON SYSIBM.SYSTABAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSDBAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSROUTINES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSTABCONST TO GISUSERS; GRANT SELECT ON SYSIBM.SYSINDEXES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSKEYS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSCOLUMNS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSCHECKS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSSCHEMAAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSTABLES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSSEQUENCES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSDUMMY1 TO GISUSERS;
- Предоставьте пользователю sde следующие дополнительные разрешения:
GRANT BINDADD TO SDE; GRANT CREATE ON COLLECTION SDE TO SDE; GRANT DBADM ON DATABASE <repository_database_name> TO SDE; GRANT DBADM ON DATABASE <user_data_database_name> TO SDE;
- Предоставьте роли PUBLIC следующие права доступа:
GRANT EXECUTE ON PACKAGE SYSPROC.* TO PUBLIC;
- Следующий оператор нужен при использовании группы хранения. В данном примере группа хранения названа ARCGIS.
GRANT USE OF STOGROUP ARCGIS to SDE;
Настройка dbtune.sde
Измените файл dbtune.sde в <ArcGIS client installation directory>\DatabaseSupport\DB2zOS для указания подсистемы вашей базы данных.
Файл dbtune.sde заполняет системную таблицу базы геоданных DBTUNE ключевыми словами конфигурации, параметрами и значениями, которые управляют хранением таблиц в базе данных на физическом уровне. Для баз данных Db2 под управлением z/OS, вы должны отредактировать этот файл до запуска инструмента геообработки Включить многопользовательскую базу геоданных для указания базы данных, в которой требуется создать определенные таблицы.
- Откройте файл dbtune.sde в текстовом редакторе.
- Раскомментируйте и измените значения конфигурационных строк в разделе DATA_DICTIONARY, чтобы указать, в какой базе данных вы хотите создать определенные системные таблицы базы геоданных. Ниже приведены предлагаемые настройки. База данных с именем SDEDBR00 – это база данных, в которой будут храниться таблицы репозитория базы геоданных.
B_STORAGE "IN DATABASE SDEDBR00" MVTABLES_MODIFIED_TABLE "IN DATABASE SDEDBR00" STATES_TABLE "IN DATABASE SDEDBR00" STATE_LINEAGES_TABLE "IN DATABASE SDEDBR00" VERSIONS_TABLE "IN DATABASE SDEDBR00" XML_INDEX_TAGS_TABLE "IN DATABASE SDEDBR00"
- Убедитесь, что параметры BLOB_OPTION и CLOB_OPTION в разделе DEFAULTS заданы как пустые строки.
- Раскомментируйте и измените значения конфигурационных строк в разделе DEFAULTS, чтобы указать, в какой базе данных вы хотите создать определенные объекты, относящиеся к определенным пользователем данным.
Ниже приведены предлагаемые настройки. База данных с именем SDEDBU00 – это база данных, в которой будут храниться пользовательские данные в подсистеме баз данных.
AUX_STORAGE "IN DATABASE SDEDBU00" A_STORAGE "IN DATABASE SDEDBU00" BLK_STORAGE "IN DATABASE SDEDBU00" BND_STORAGE "IN DATABASE SDEDBU00" B_STORAGE "IN DATABASE SDEDBU00" D_STORAGE "IN DATABASE SDEDBU00" RAS_STORAGE "IN DATABASE SDEDBU00"
- Раскомментируйте и измените значения конфигурационных строк в разделе LOGFILE_DEFAULTS, чтобы указать, в какой базе данных вы хотите создать таблицы файла отчета.
LD_STORAGE "IN DATABASE SDEDBU00" LF_STORAGE "IN DATABASE SDEDBU00" SESSION_STORAGE "IN DATABASE SDEDBU00"
- Сохраните и закройте файл dbtune.sde.
Теперь вы можете создать базу геоданных в вашей подсистеме Db2.
Создание базы геоданных
Используйте один из следующих методов для создания базы геоданных в Db2 на z/OS.
Используйте инструмент Включить многопользовательскую базу геоданных
Если вы установили и настроили ArcGIS Desktop для подключения к вашей подсистеме Db2, то вы можете запустить инструмент Включить многопользовательскую базу геоданных.
- Запустите ArcMap или ArcCatalog.
- Подключитесь к Db2 из дерева Каталога. Подключитесь с учетной записью sde.
Убедитесь в том, что в диалоговом окне Подключение базы данных сохранен пароль пользователя sde.
- Щелкните правой кнопкой мыши подключение к базе данных и выберите Включить базу геоданных.
Откроется инструмент Включить многопользовательскую базу геоданных.
- Добавьте файл подключения к базе данных в текстовом окне Входная база данных.
- Перейдите к файлу ключей 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%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
В вашей подсистеме Db2 создается база геоданных.
Теперь создайте пользователей, которые могут создать данные.
Использование скрипта Python
Вы можете запустить скрипт Python из ArcGIS Desktop (Desktop Standard или Desktop Advanced), ArcGIS Server (enterprise edition) или с ArcGIS Engine (с дополнительным модулем Geodatabase Update) для создания базы геоданных в подсистеме Db2.
Выполните следующие действия, чтобы запустить скрипт Python для создания базы геоданных в подсистеме Db2 z/OS:
- Создайте текстовый файл на клиентском компьютере 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=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQL_SERVER, 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) # 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 на экземпляре 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\License\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/License/sysgen/keycodes'
Вы можете найти сообщения, относящиеся к созданию базы геоданных, в файле sde_setup.log, который создается в каталоге, указанном для переменной TEMP или TMP, на том компьютере, где запущен скрипт Python. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
В вашей подсистеме Db2 создается база геоданных.
Теперь создайте пользователей, которые могут загрузить данные.