Доступно с лицензией Standard или Advanced.
Настройка базы геоданных зависит от настроек вашего сайта. Используйте инструкции для сценария, подходящего вашей организации.
- Вы администратор базы данных и базы геоданных.
- Администратор Oracle настраивает базу данных; администратор базы геоданных создает базу геоданных.
- Вы хотите хранить несколько баз геоданных в одной базе данных Oracle.
Вы администратор базы данных и базы геоданных.
Если вы выполняете роль администраторов базы данных и геоданных и, следовательно, знаете пароли обоих учетных записей, вы можете использовать инструмент геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) или скрипт Python для создания базы геоданных в Oracle.
Инструмент Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) облегчает настройку базы геоданных, поскольку создает пользователя sde, схему и табличное пространство, и предоставляет пользователю sde необходимые права. Для этого используются специальные настройки по умолчанию. Ниже описывается инструмент Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) и используемые им настройки:
- Создает пользователь базы данных sde
- Создает табличное пространство размером 400 МБ в местоположении Oracle по умолчанию и задает его как табличное пространство пользователя sde
- Предоставляет пользователю sde права доступа для создания и обновления базы геоданных и для удаления подключений к ней
- Предоставление пакета прав, необходимых для создания базы геоданных
- Создает базу геоданных
Подробнее о необходимых правах см. в разделе Права доступа для баз геоданных в Oracle.
Перед тем как запустить инструмент или скрипт, необходимо настроить Oracle.
Настройка Oracle
Перед тем как приступить к созданию базы геоданных, необходимо установить и настроить Oracle. Настройка экземпляра Oracle зависит от специфических требований организации. Обратитесь к документации по Oracle для получения информации об установке и настройке Oracle.
Проверьте Системные требования ArcGIS, прежде чем настроить базу геоданных, чтобы быть уверенным, что комбинация СУБД, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается.
После установки и настройки Oracle, установите клиенты ArcGIS и Oracle.
Настройка клиента ArcGIS
Вы можете запустить скрипт Python из ArcGIS for Desktop (Стандартный или Дополнительно), ArcGIS Engine Runtime с дополнительным модулем Geodatabase Update или ArcGIS for Server для создания базы геоданных. Если вы хотите запустить инструмент геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) вместо скрипта, то используйте ArcGIS for Desktop.
В большинстве случаев клиентское приложение ArcGIS устанавливается на другой компьютер, чем Oracle. Поэтому необходимо иметь поддерживаемого клиента Oracle на компьютере, на котором установлен ArcGIS, чтобы подключиться к экземпляру Oracle. Обратитесь к документации Oracle, чтобы определить, какую версию клиента Oracle необходимо установить для подключения к используемой версии Oracle, а также получить инструкции по установке и настройке клиента.
- Установите клиента ArcGIS, которого вы собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- Установите и настройте клиентское приложение Oracle на клиентском компьютере ArcGIS.
Если вы подключаетесь из 32-разрядного клиента ArcGIS, вы должны установить 32-разрядный клиент Oracle. Это справедливо даже в том случае, если вы устанавливаете приложение клиента ArcGIS на компьютер с 64-разрядной операционной системой, и база данных и операционная система сервера являются 64-разрядными. Если вы подключаетесь из 64-разрядного клиента ArcGIS, вы должны установить 64-разрядный клиент Oracle.
Получить клиент Oracle Instant, Runtime или Administrator Client можно от Oracle. Инструкции по установке см. в документации Oracle.
- Добавьте путь и имя директории, куда вы поместили клиента Oracle, в переменную среды вашей ОС или профиля пользователя.
- В Linux установите переменную среды LD_LIBRARY_PATH.
Получить клиент Oracle Instant, Runtime или Administrator Client можно от Oracle. Инструкции по установке см. в документации Oracle.
. - В Windows установите переменную среды PATH. Если и ArcGIS for Server и ArcGIS for Desktop установлены на одном и том же компьютере с ОС Windows, установите переменную PATH для чтения 64-разрядного клиента до чтения 32-разрядного клиента. Например, если 32-разрядный клиент Oracle установлен в c:\Program Files (x86)\Oracle, а 64-разрядный Oracle Instant Client установлен в c:\Program Files\Oracle, добавьте в начало переменной PATH следующее: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.
- В Linux установите переменную среды LD_LIBRARY_PATH.
- Если клиент ArcGIS уже запущен, перезапустите его, чтобы он опознал клиента Oracle и считал новые переменные среды.
- Вы можете подключиться из ArcGIS к Oracle, используя строку Easy Connect. Однако необходимо настроить базу данных Oracle на работу с Easy Connect. Если у вас установлен полный клиент Oracle, а вы хотите использовать для подключения синтаксис Easy Connect, убедитесь, что файл sqlnet.ora клиента настроен на разрешение использования Easy Connect, а сервер Oracle разрешает синтаксис Easy Connect. Более подробные инструкции см. в документации к Oracle.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Вы можете запустить инструмент геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) из ArcGIS for Desktop (Standard или Advanced) или запустить скрипт Python из ArcGIS for Desktop, ArcGIS for Server или клиента ArcGIS Engine для создания пользователя sde, схемы, табличного пространства и базы геоданных.
Запустите инструмент Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase)
Если у вас есть доступ к ArcGIS for Desktop, для создания базы геоданных вы можете запустить инструмент геообработки.
- Запустите ArcMap или ArcCatalog.
- Откройте инструмент Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase).
Этот инструмент вы найдете в группе инструментов Администрирование баз геоданных набора инструментов Управление данными.
- В раскрывающемся списке Платформа базы данных выберите Oracle.
- Укажите информацию, необходимую для подключения к экземпляру Oracle.
- Если вы уже настроили конфигурацию клиентского приложения Oracle для использования псевдонима сети TNS, введите псевдоним сервиса сети в текстовом окне Экземпляр.
- Если вы не настроили псевдонима сети клиентского приложения Oracle, а база данных Oracle и клиент настроены на работу с Easy Connect, введите в текстовом окне Экземпляр строку Oracle Easy Connect.
Список возможных строк Easy Connect см. в Подключение к Oracle из ArcGIS.
- Введите пароль пользователя sys в поле Пароль администратора базы данных (DBMS Administrator Password).
- Введите sde в поле Администратор базы геоданных (Geodatabase Administrator).
Если пользователя с именем sde в базе данных еще нет, то инструмент создаст пользователя и предоставит ему права доступа, необходимые для создания базы геоданных. Если пользователь уже существует, ему предоставляются необходимые права.
- Введите пароль пользователя sde в поле Пароль администратора базы геоданных (Geodatabase Administrator Password).
Если пользователь sde уже существует в базе данных, необходимо ввести правильный пароль существующего пользователя; этот инструмент не меняет пароль. Если вы создаете пользователя sde, будет использоваться тот же пароль.
- Задайте табличное пространство для пользователя sde.
- Если у вас имеется заранее настроенное табличное пространство, которое вы хотите использовать как репозитарий базы геоданных, введите имя этого табличного пространства в текстовом поле Имя табличного пространства (Tablespace Name).
- Если вы хотите, чтобы инструмент создал табличное пространство, введите корректное имя в текстовом окне Имя табличного пространства (Tablespace Name), и инструмент создаст для вас 400 MB табличного пространства в Oracle в местоположении по умолчанию. Если имя табличного пространства не указано, будет создано табличное пространство SDE_TBS в качестве табличного пространства по умолчанию для пользователя sde.
- Чтобы указать Файл авторизации (Authorization File), выберите файл keycodes, который был создан при авторизации ArcGIS for Server Enterprise.
На серверах Windows этот файл записывается в папку \\Program Files\ESRI\License<release#>\sysgen. Если данная процедура еще не выполнена, авторизуйте ArcGIS for Server сейчас для создания этого файла.
- Щелкните OK, чтобы запустить инструмент.
В базе данных Oracle создается база геоданных.
Создание базы геоданных (GDBCreateGeodatabase<№>.log) регистрируется в файле журнала, который сохраняется в каталоге, указанном для переменной %TEMP%, на том компьютере, где запущен инструмент. При наличии проблем с запуском инструмента изучите этот файл журнала для их устранения.
Затем вы можете создать пользователя, который будет загружать данные в базу геоданных.
Запустите скрипт Python
Вы можете скопировать, сохранить и запустить указанный здесь скрипт для создания базы геоданных из запустить скрипт Python из ArcGIS for Desktop (Standard или Advanced), ArcGIS for Server (Standard или Advanced) или из 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 for 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 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.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.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере запуск выполняется с компьютера с Linux, файл create_gdb.py запускается для экземпляра Oracle с SID orcl. Экземпляр работает на сервере 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/License10.3/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\License10.3\sysgen\keycodes
Теперь у вас есть база геоданных в Oracle.
Файл отчета о создании базы геоданных (GDBCreateGeodatabase<#>.log) будет записан в папку, заданную переменной TEMP или TMP на компьютере, где был запущен скрипт.
Затем вы можете создать пользователя, который будет загружать данные в базу геоданных.
Администратор Oracle настраивает базу данных; администратор базы геоданных создает базу геоданных.
Если сотрудник, создающий базу геоданных, не имеет доступа к паролю администратора базы данных, то администратор базы данных может настроить базу данных и пользователя sde, а администратор базы геоданных может подключиться с ней, используя учетную запись sde и создать базу геоданных с помощью инструмента геообработки Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase) или скрипта Python.
Инструмент Включить многопользовательскую базу геоданных(Enable Enterprise Geodatabase) используют файл подключения к базе данных и создает системные таблицы базы геоданных, представления, функции и процедуры в пользовательской схеме sde.
Настройка Oracle
Прежде чем администратор базы геоданных сможет ее создать, администратор базы данных должен сделать следующее:
- Установить и настроить экземпляр Oracle. Настройка экземпляра Oracle зависит от специфических требований организации. Обратитесь к документации по Oracle для получения информации об установке и настройке Oracle.
Проверьте Системные требования ArcGIS, прежде чем настроить базу геоданных, чтобы быть уверенным, что комбинация СУБД, ArcGIS и аппаратного обеспечения, которую вы хотите использовать, поддерживается. Список необходимых прав находится в разделе Права доступа для баз геоданных в Oracle.
- Создайте пользователя sde и схему.
- Предоставить пользователю sde права доступа, необходимые для создания базы геоданных.
- Создайте табличное пространство пользователя sde и сделайте его пространством по умолчанию.
- Предоставьте права на выполнение пакетов, необходимых для создания базы геоданных. Список пакетов находится в разделе Права доступа для баз геоданных в Oracle.
После установки и настройки Oracle, администратор базы геоданных может установить клиентов ArcGIS и Oracle.
Настройка клиента ArcGIS
Вы можете запустить скрипт Python из ArcGIS for Desktop (Стандартный или Дополнительно), ArcGIS Engine Runtime с дополнительным модулем Geodatabase Update или ArcGIS for Server (Standard или Advanced) для создания базы геоданных. Если вы хотите запустить инструмент геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) вместо скрипта, то используйте ArcGIS for Desktop.
В большинстве случаев клиентское приложение ArcGIS устанавливается на другой компьютер, чем Oracle. Поэтому необходимо иметь поддерживаемого клиента Oracle на компьютере, на котором установлен ArcGIS, чтобы подключиться к экземпляру Oracle. Обратитесь к документации Oracle, чтобы определить, какую версию клиента Oracle необходимо установить для подключения к используемой версии Oracle, а также получить инструкции по установке и настройке клиента.
- Установите клиента ArcGIS, которого вы собираетесь использовать для создания базы геоданных.
Следуйте инструкциям руководств по установке программного обеспечения.
- Установите и настройте клиентское приложение Oracle на клиентском компьютере ArcGIS.
Если вы подключаетесь из 32-разрядного клиента ArcGIS, вы должны установить 32-разрядный клиент Oracle. Это справедливо даже в том случае, если вы устанавливаете приложение клиента ArcGIS на компьютер с 64-битной операционной системой, и база данных и операционная система являются 64-битными приложения. Если вы подключаетесь из 64-разрядного клиента ArcGIS, вы должны установить 64-разрядный клиент Oracle.
Получить клиент Oracle Instant, Runtime или Administrator Client можно от Oracle. Инструкции по установке см. в документации Oracle.
- Добавьте путь и имя директории, куда вы поместили клиента Oracle, в переменную среды вашей ОС или профиля пользователя.
- В Linux установите переменную среды LD_LIBRARY_PATH.
- В Windows установите переменную среды PATH. Если и ArcGIS for Server и ArcGIS for Desktop установлены на одном и том же компьютере с ОС Windows, установите переменную PATH для чтения 64-разрядного клиента до чтения 32-разрядного клиента. Например, если 32-разрядный клиент Oracle установлен в c:\Program Files (x86)\Oracle, а 64-разрядный Oracle Instant Client установлен в c:\Program Files\Oracle, добавьте в начало переменной PATH следующее: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.
- Если клиент ArcGIS уже запущен, перезапустите его, чтобы он опознал клиента Oracle и считал новые переменные среды.
- Вы можете подключиться из ArcGIS к Oracle, используя строку Easy Connect. Однако администратор базы данных должен настроить базу данных Oracle на работу с Easy Connect. Если у вас установлен полный клиент Oracle, а вы хотите использовать для подключения синтаксис Easy Connect, убедитесь, что файл sqlnet.ora клиента настроен на разрешение использования Easy Connect, а администратор базы данных настроил сервер Oracle на работу с синтаксисом Easy Connect. Более подробные инструкции см. в документации к Oracle.
Теперь вы можете создать базу геоданных.
Создание базы геоданных
Администратор базы геоданных может запустить инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase) из ArcGIS for Desktop (Standard или Advanced) или запустить скрипт Python из ArcGIS for Desktop, ArcGIS for Server или клиента ArcGIS Engine для создания базы геоданных в имеющейся базе данных.
Запустите инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase)
Если у вас есть доступ к ArcGIS for Desktop, для создания базы геоданных вы можете запустить инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase).
- Запустите ArcMap или ArcCatalog.
- Подключитесь к базе данных Oracle из дерева Каталога в качестве пользователя sde.
Убедитесь в том, что в диалоговом окне Подключение базы данных сохранен пароль пользователя.
- Щелкните правой кнопкой мыши подключение к базе данных и выберите Включить базу геоданных (Enable Geodatabase).
Откроется инструмент Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase), в поле Входное подключение к базе данных (Input Database Connection) будет указано имя и расположение файла подключения.
- Перейдите к файлу авторизации, который был создан при авторизации 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% на компьютере, на котором запущен инструмент. При наличии проблем с запуском инструмента изучите этот файл журнала для их устранения.
Затем вы можете создать пользователя, который будет загружать данные в базу геоданных.
Запустите скрипт Python
Если вы хотите создать базу геоданных, запустив скрипт из ArcGIS for Server, ArcGIS for Desktop или ArcGIS Engine на компьютере с Windows, вы можете использовать этот скрипт.
- Создайте текстовый файл на клиентском компьютере 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.
- Запустите скрипт, предоставив специфичные для вашего сайта опции и информацию.
В следующем примере запуск выполняется с компьютера с Linux, файл enable_gdb.py запускается для экземпляра Oracle с SID orcl. Экземпляр работает на сервере 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/License10.3/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\License10.3\sysgen\keycodes
Теперь у вас есть база геоданных в базе данных Oracle.
Файл отчета о создании базы геоданных (GDBCreateGeodatabase<#>.log) будет записан в папку, заданную переменной TEMP или TMP на компьютере, где был запущен скрипт.
Затем вы можете создать пользователя, который будет загружать данные в базу геоданных.
Вы хотите хранить несколько баз геоданных в одной базе данных Oracle
После того как база геоданных в пользовательской схеме sde (также называется основная база геоданных sde) создана, с помощью процедур, описанных ранее, другие пользователи могут создавать базы геоданных в своих схемах. Вы можете разрешить другим пользователям создавать собственные базы геоданных, в качестве способа группировки и разделения данных для различных команд и их проектов.
Для баз геоданных в пользовательских схемах применяются следующие правила:
- Владельцем базы геоданных является пользователь, который ее создал. Этот пользователь является администратором базы геоданных, поэтому ему требуются права администрирования базы данных. Административные права для различных баз геоданных указаны в разделе Права доступа для баз геоданных в Oracle.
- Пользователь может быть владельцем только одной базы геоданных.
- Только владельцу базы геоданных пользовательской схемы могут принадлежать данные в этой базе геоданных.
- Если пользователю принадлежит база геоданных, он не может быть владельцем данных основной базы геоданных sde.
- Если пользователю принадлежат данные в основной базе геоданных sde, он не может быть владельцем базы геоданных пользовательской схемы.
- Время на подключение к базе данных Oracle будет возрастать по мере роста числа баз геоданных в пользовательских схемах. Это особенно верно, если базы геоданных в пользовательских схемах содержатся и таблицы базы геоданных, и просто таблицы, не зарегистрированные с базой геоданных.
При наличии основной базы геоданных sde, вы можете использовать любые из вышеупомянутых инструментов и скриптов для создания базы геоданных в схеме пользователя.
- Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase): как упоминалось ранее, инструменту Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) требуется, чтобы пользователь знал пароль пользователя sys. Поэтому этот инструмент должен запускаться администратором базы данных. Убедитесь, что для администратора базы геоданных указано имя владельца схемы.
- Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase): если у вас нет доступа к паролю пользователя sys, администратор базы данных может предоставить вам права, необходимые для создания базы геоданных. Тогда вы сможете подключиться к базе геоданных под своей учетной записью и запустить инструмент геообработки Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase) или скрипт, чтобы создать базу геоданных в своей схеме.