Доступно с лицензией Standard или Advanced.
Чтобы создать базу геоданных в базе данных Oracle, запустите инструмент геообработки или скрипт Python из клиентского приложения ArcGIS.
Если вы создаете базу геоданных из ArcGIS Pro 3.2, версия базы геоданных будет 11.2.0.
Начните с чтения требований, а затем выполните действия, соответствующие вашей ситуации.
Примечание:
Создание или обновление баз геоданных пользовательских схем в Oracle больше не поддерживаются.
Предварительные условия
Для создания базы геоданных в Oracle необходимо выполнить следующее:
- Убедитесь в том, что используемые вами версии ArcGIS, Oracle и операционной системы соответствуют требованиям.
- Загрузите клиент Oracle, требующийся для подключения к версии Oracle, которую вы будете использовать для хранения базы геоданных.
- Загрузите файл с кодами ключей ArcGIS Server, который создается при авторизации ArcGIS Server, и поместите его в место, доступное для клиента ArcGIS, который вы будете использовать для создания базы геоданных.
- Определите, кто будет создавать базу геоданных, поскольку от этого зависит, какой инструмент вы используете для создания базы геоданных. Используйте инструкции, подходящие для вашей ситуации.
Вы администратор базы данных и базы геоданных.
Если вы выполняете роль администратора базы данных и администратора базы геоданных и, следовательно, знаете пароль для обеих учетных записей, вы можете использовать инструмент геообработки Создать многопользовательскую базу геоданных или вызвать его с помощью скрипта Python, чтобы создать базу геоданных в Oracle.
Инструмент Создать многопользовательскую базу геоданных создаст пользователя sde, схему и табличное пространство, в также предоставит пользователю sde необходимые права доступа для создания базы геоданных. Чтобы достичь этого, инструмент использует следующие настройки по умолчанию:
- Создает пользователя базы данных sde
- Создает табличное пространство Oracle размером 400 МБ в местоположении по умолчанию и задает его как табличное пространство пользователя sde
- Предоставляет пользователю sde права доступа для создания и обновления базы геоданных, удаления подключений к ней и импорта данных с помощью Oracle Data Pump
- Предоставляет права на пакеты, необходимые для создания базы геоданных
- Создает базу геоданных
Подробнее о необходимых правах см. в разделе Права доступа для баз геоданных в Oracle.
Примечание:
Этот рабочий процесс нельзя использовать для создания базы геоданных в сервисе базы данных.
Перед тем как запустить инструмент или скрипт создания базы геоданных, необходим настроить Oracle.
Установка и настройка Oracle
Перед тем как приступить к созданию базы геоданных, необходимо установить и настроить Oracle. То, как вы (или ваш ИТ-отдел) настроите экземпляр Oracle, зависит от конкретных потребностей вашей организации. Обратитесь к документации Oracle для получения информации об установке и настройке.
Проверьте Системные требования ArcGIS для Oracle, прежде чем создать базу геоданных, чтобы быть уверенным, что комбинация Oracle, ArcGIS и аппаратного обеспечения, которые вы хотите использовать, поддерживается.
Если вам нужна возможность выполнять что-либо из следующего, вам потребуется также настроить Oracle extproc для доступа к библиотекам Esri ST_Geometry.
- Запуска функций SQL ST_Geometry из клиентов SQL.
- Определения слоя запроса, который исполняет функции SQL над столбцами ST_Geometry.
- Выполнения запросов к разделенным на бины векторным слоям в ArcGIS Pro.
- Публикации веб-слоя, ссылающегося на данные базы данных Oracle.
- Запуска инструмента геообработки Выбрать в слое по расположению с опцией Пересечение (СУБД).
После установки и настройки Oracle установите клиенты ArcGIS и Oracle.
Установка и настройка клиентов
Вы можете установить ArcGIS Pro (Desktop Standard или Desktop Advanced) или ArcGIS Server (enterprise edition) и запустить скрипт для создания базы геоданных. Чтобы запустить инструмент геообработки Создать многопользовательскую базу геоданных вместо скрипта, установите ArcGIS Pro.
Примечание:
Вам потребуется файл ключей ArcGIS Server (enterprise) для авторизации вашей базы геоданных в следующем разделе. Даже если вы не запускаете скрипт Python с компьютера ArcGIS Server для создания базы геоданных, вы должны установить и авторизовать ArcGIS Server для того, чтобы получить файл ключей. Может потребоваться скопировать файл с машины ArcGIS Server в директорию, к которой есть доступ у инструмента геообработки или скрипта Python.
В большинстве случаев клиентское приложение ArcGIS устанавливается на другой компьютер, а не на тот, на котором установлен Oracle. Поэтому необходимо иметь поддерживаемого клиента Oracle на компьютере, на котором установлен ArcGIS, чтобы подключиться к экземпляру Oracle. Обратитесь к документации Oracle, чтобы определить, какую версию клиента Oracle необходимо установить для подключения к используемой версии Oracle, а также, чтобы получить инструкции по установке и настройке клиента Oracle.
- Установите клиентское приложение ArcGIS, которое будете использовать для создания этой базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- Установите и настройте клиентское приложение Oracle на клиентском компьютере ArcGIS.
Получить клиент Oracle Instant, Runtime или Administrator Client можно от Oracle. Для получения инструкций по установке обратитесь к документации Oracle.
- Добавьте путь и имя директории, куда вы поместили клиента Oracle, в переменную среды вашей ОС или профиля пользователя.
- В Linux установите переменную среды LD_LIBRARY_PATH.
- В Microsoft Windows установите переменную среды PATH.
- Если клиент ArcGIS уже был запущен, перезапустите его, чтобы он распознал клиент Oracle и новые переменные среды.
- Вы можете подключиться из ArcGIS к Oracle с помощью строки Easy Connect, но вам необходимо настроить базу данных Oracle на работу со строками Easy Connect.
Если у вас установлен полный клиент Oracle, а вы хотите использовать для подключения синтаксис Easy Connect, убедитесь, что файл sqlnet.ora клиента настроен на разрешение использования Easy Connect, а сервер Oracle разрешает синтаксис Easy Connect. Более подробные инструкции см. в документации к Oracle.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Вы можете запустить инструмент Создать многопользовательскую базу геоданных из ArcGIS Pro (Desktop Standard или Desktop Advanced) либо запустить скрипт Python на компьютере с ArcGIS Pro или ArcGIS Server для создания пользователя sde схемы, табличного пространства или базы геоданных.
Запустите инструмент Создать многопользовательскую базу геоданных
Для создания базы геоданных ArcGIS Pro вы можете запустить инструмент геообработки.
Следуйте приведенным шагам по созданию базы геоданных с помощью инструмента Создать многопользовательскую базу геоданных:
- Запустите ArcGIS Pro.
- Откройте инструмент Создать многопользовательскую базу геоданных.
Этот инструмент вы найдете в группе инструментов Администрирование баз геоданных набора инструментов Управление данными.
- В раскрывающемся списке Платформа базы данных выберите Oracle.
- Укажите информацию, необходимую для подключения к экземпляру Oracle.
- Если вы уже настроили клиентское приложение Oracle на использование псевдонима сети TNS, введите этот псевдоним в текстовом поле Экземпляр.
- Если вы не настроили псевдонима сети клиентского приложения Oracle, а база данных Oracle и клиент настроены на работу с Easy Connect, введите в текстовом окне Экземпляр строку Oracle Easy Connect.
Список возможных строк Easy Connect см. в разделе Подключение к Oracle из ArcGIS.
- Введите пароль пользователя sys в поле Пароль администратора базы данных.
- Введите sde в поле Администратор базы геоданных.
Если пользователя sde в базе данных нет, инструмент создаст его и предоставит ему права доступа, необходимые для создания базы геоданных. Если пользователь существует, ему предоставляются необходимые права доступа.
- Введите пароль пользователя sde в поле Пароль администратора базы геоданных.
Если пользователь sde уже существует в базе данных, необходимо ввести правильный пароль существующего пользователя; этот инструмент не меняет пароль. Если вы создаете пользователя sde, будет использоваться тот же пароль.
- Задайте табличное пространство для пользователя sde.
- Если у вас имеется заранее настроенное табличное пространство, которое вы хотите использовать как репозитарий базы геоданных, введите имя этого табличного пространства в текстовом поле Имя табличного пространства.
- Чтобы создать табличное пространство, введите корректное имя в текстовом окне Имя табличного пространства, и инструмент создаст 400 MB табличного пространства в местоположении по умолчанию в Oracle. Если имя табличного пространства не указано, будет создано табличное пространство SDE_TBS в качестве табличного пространства по умолчанию для пользователя sde.
- Чтобы указать Файл авторизации, выберите файл keycodes, который был создан при авторизации ArcGIS Server.
Если вы еще не сделали этого, авторизуйте ArcGIS Server, чтобы создать файл с ключами. Этот файл записывается в папку \\Program Files\ESRI\License<release#>\sysgen на серверах Windows и в папку /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen на серверах Linux. Скопируйте файл ключей в местоположение, к которому имеет доступ инструмент.
- Щелкните Запустить.
В базе данных Oracle создается база геоданных.
Сообщение о создании базы геоданных записывается в файл sde_setup.log, который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Затем, если параметр базы данных Oracle open_cursors содержит значение, отличное от 300, запустите хранимую процедуру sde.gdb_util.update_open_cursors для синхронизации параметра базы данных Oracle с настройками базы геоданных.
Запустите скрипт Python
Вы можете скопировать, сохранить и запустить указанный здесь скрипт для создания базы геоданных с компьютера ArcGIS Pro (Desktop Standard или Desktop Advanced) или ArcGIS Server.
- Создайте текстовый файл на клиентском компьютере 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 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 10.1 and higher releases") #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: Not required 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 for SQL Server geodatabase, SDE or DBO. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name") 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") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") parser.add_option ("--type", dest="Spatial_type", type="choice", choices=['ST_GEOMETRY', 'POSTGIS'], default="ST_GEOMETRY", help="Spatial Type for PostgreSQL geodatabase, ST_GEOMETRY or POSTGIS. Default=ST_GEOMETRY") # 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 spatial_type = options.Spatial_type.upper() 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( 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 for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for 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.management.CreateEnterpriseGeodatabase(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, spatial_type=spatial_type) 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.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере запуск выполняется с компьютера Linux, файл create_gdb.py запускается для экземпляра с SID orcl Oracle. Экземпляр работает на сервере gisprod. Создается пользователь sde с паролем Tgdbst@rtsh3r3 и табличное пространство sde. Для авторизации базы геоданных в местоположении ArcGIS Server по умолчанию задается файл ключей.
./create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l '/usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes'
В этом примере тот же скрипт запускается на компьютере Windows:
create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l '\\Program Files\ESRI\License\sysgen\keycodes'
Подсказка:
Type -h or --help at the command prompt to get syntax help.
Теперь у вас есть база геоданных в Oracle.
Сообщение о создании базы геоданных записывается в файл sde_setup.log, который создается в каталоге, указанном для переменной TEMP или TMP, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Затем, если параметр базы данных Oracle open_cursors содержит значение, отличное от 300, запустите хранимую процедуру sde.gdb_util.update_open_cursors для синхронизации параметра базы данных Oracle с настройками базы геоданных.
Администратор Oracle настраивает базу данных; администратор базы геоданных создает базу геоданных.
В случае, если у лица, создающего базу геоданных, нет доступа к паролю администратора базы данных, администратор базы данных может настроить базу данных и пользователя sde, а затем администратор базы геоданных может подключиться к этой базе данных, используя учетную запись sde, и создать базу геоданных с помощью инструмента геообработки Включить многопользовательскую базу геоданных или с помощью скрипта Python.
Инструмент Включить многопользовательскую базу геоданных использует файл подключения к базе данных и создает системные таблицы базы геоданных, представления, функции и процедуры в пользовательской схеме sde.
Установка и настройка Oracle
Прежде чем администратор базы геоданных сможет ее создать, администратор базы данных должен сделать следующее:
- Установите и настройте экземпляр Oracle. Настройка экземпляра Oracle зависит от специфических требований организации. Обратитесь к документации Oracle для получения информации об установке и настройке.
Изучите Системные требования ArcGIS и убедитесь в совместимости системы управления базами данных, ArcGIS и сочетаний аппаратных средств, которые вы намереваетесь использовать.
- Создайте пользователя sde и схему.
- Предоставить пользователю sde права доступа, необходимые для создания базы геоданных. Список необходимых прав находится в разделе Права доступа для баз геоданных в Oracle.
- Создайте табличное пространство пользователя sde и сделайте его пространством по умолчанию.
- Предоставьте execute права на выполнение пакетов, необходимых для создания базы геоданных. Список пакетов находится в разделе Права доступа для баз геоданных Oracle.
Если вам нужна возможность выполнять что-либо из следующего, вы должны настроить Oracle extproc для доступа к библиотекам Esri ST_Geometry.
- Запуска функций SQL ST_Geometry из клиентов SQL.
- Определения слоя запроса, который исполняет функции SQL над столбцами ST_Geometry.
- Выполнения запросов к разделенным на бины векторным слоям в ArcGIS Pro.
- Публикации веб-слоя, ссылающегося на данные базы данных Oracle.
- Запуска инструмента геообработки Выбрать в слое по расположению с опцией Пересечение (СУБД).
После установки и настройки Oracle администратор базы геоданных может установить клиенты ArcGIS и Oracle.
Установка и настройка клиентов
Вы можете установить ArcGIS Pro (Desktop Standard или Desktop Advanced), или ArcGIS Server для запуска скрипта Python и создания базы геоданных. Если вы хотите запустить инструмент геообработки Включить многопользовательскую базу геоданных вместо скрипта, установите ArcGIS Pro.
Примечание:
Вам потребуется файл ключей ArcGIS Server (enterprise) для авторизации вашей базы геоданных в следующем разделе. Даже если вы не запускаете скрипт Python с компьютера ArcGIS Server для создания базы геоданных, вы должны установить и авторизовать ArcGIS Server для того, чтобы получить файл ключей. Может потребоваться скопировать файл с машины ArcGIS Server в директорию, к которой есть доступ у инструмента геообработки или скрипта Python.
В большинстве случаев клиентское приложение ArcGIS устанавливается на другой компьютер, а не на тот, на котором установлен Oracle. Поэтому необходимо иметь поддерживаемого клиента Oracle на компьютере, на котором установлен ArcGIS, чтобы подключиться к экземпляру Oracle. Обратитесь к документации Oracle, чтобы определить, какую версию клиента Oracle необходимо установить для подключения к используемой версии Oracle, а также получить инструкции по установке и настройке клиента.
- Установите клиентское приложение ArcGIS, которое будете использовать для создания этой базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- Установите и настройте клиентское приложение Oracle на клиентском компьютере ArcGIS.
Получить клиент Oracle Instant, Runtime или Administrator Client можно от Oracle. Для получения инструкций по установке обратитесь к документации Oracle.
- Добавьте путь и имя директории, куда вы поместили клиента Oracle, в переменную среды вашей ОС или профиля пользователя.
- В Linux установите переменную среды LD_LIBRARY_PATH.
- В Windows установите переменную среды PATH.
- Если клиент ArcGIS уже был запущен, перезапустите его, чтобы он распознал клиент Oracle и новые переменные среды.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Администратор базы геоданных может запустить инструмент Включить многопользовательскую базу геоданных из ArcGIS Pro (Desktop Standard или Desktop Advanced), либо запустить скрипт Python с компьютера ArcGIS Pro (Desktop Standard или Desktop Advanced) или ArcGIS Server для создания базы геоданных в существующей базе данных.
Запустите инструмент Включить многопользовательскую базу геоданных ArcGIS Desktop
Чтобы создать базу геоданных, запустите этот инструмент геообработки из ArcGIS Pro.
Следуйте приведенным шагам по созданию базы геоданных с помощью инструмента геообработки Включить многопользовательскую базу геоданных:
- Запустите ArcGIS Pro.
- Подключение к базе данных Oracle в качестве пользователя sde.
Сохраните пароль пользователя в диалоговом окне Подключение к базе данных.
- Откройте диалоговое окно инструмента геообработки Создать многопользовательскую базу геоданных.
- Используйте подключение к базе данных, созданное на шаге 2, в поле Входное подключение к базе данных.
- Перейдите к файлу авторизации, который был создан при авторизации 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. Скопируйте файл ключей в местоположение, к которому имеет доступ инструмент.
- Щелкните Запустить.
В базе данных создается база геоданных.
Сообщение о создании базы геоданных записывается в файл sde_setup.log, который создается в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Если клиенты будут работать с базой геоданных через SQL, настройте Oracle extproc для разрешения доступа.
Затем администратор базы данных может синхронизировать настройки open_cursors междуOracle и базой геоданных, используя сохраненную процедуру sde.gdb_util.update_open_cursors.
Запустите скрипт Python
Если вы хотите создать базу геоданных, запустив скрипт из ArcGIS Server или ArcGIS Pro, вы можете использовать этот скрипт.
- Создайте текстовый файл на клиентском компьютере 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.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере запуск выполняется с компьютера Linux, файл enable_gdb.py запускается для экземпляра с SID orcl Oracle. Экземпляр работает на сервере gisprod. Для авторизации базы геоданных в местоположении ArcGIS Server по умолчанию задается файл ключей.
enable_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -l '/usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes'
В этом примере тот же скрипт запускается на компьютере Windows:
create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l '\\Program Files\ESRI\License\sysgen\keycodes'
Подсказка:
Type -h or --help at the command prompt to get syntax help.
Теперь у вас есть база геоданных в базе данных Oracle.
Сообщение о создании базы геоданных записывается в файл sde_setup.log, который создается в каталоге, указанном для переменной TEMP или TMP, на том компьютере, где запущен скрипт. При наличии проблем с созданием базы геоданных изучите этот файл журнала для их устранения.
Затем администратор базы данных может синхронизировать настройки open_cursors междуOracle и базой геоданных, используя сохраненную процедуру sde.gdb_util.update_open_cursors.