ArcGIS for Desktop

  • Документация
  • Стоимость
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS for Desktop

Полноценная профессиональная ГИС

ArcGIS for Server

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Стоимость
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • Главная
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительно...

Обновить базу геоданных (Upgrade Geodatabase)

  • Краткая информация
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензировании

Краткая информация

Обновляет базу геоданных до последней версии ArcGIS, чтобы использовать новые функции.

На компьютере, где вы запускаете инструмент или скрипт, должна быть установлена текущая версия ArcGIS for Desktop или ArcGIS for Server. Для обновления многопользовательской базы геоданных вам необходимо подключиться к ней помощью прямого подключения; вы не сможете подключиться через службу ArcSDE.

Использование

  • Инструмент Обновить базу геоданных (Upgrade Geodatabase) может использовать в качестве входных данных персональную или файловую базы геоданных или подключение .sde.

  • Вы не сможете обновить настольные базы геоданных, базы геоданных рабочей группы и многопользовательские базы геоданных из ArcGIS for Desktop Basic.

  • Перед тем, как вы обновите вашу многопользовательскую базу геоданных, убедитесь в том, что выполнили необходимые действия в вашей системе управления базами данных, включая создание резервной копии.

    • Обновление базы геоданных в DB2
    • Обновление базы геоданных в Informix
    • Обновление базы геоданных в Oracle
    • Обновление базы геоданных в PostgreSQL
    • Обновление базы геоданных в SQL Server

  • Чтобы определить версию базы геоданных, щелкните правой кнопкой мыши на базе геоданных в дереве Каталога (Catalog) и перейдите на закладку Свойства (Properties). В разделе Статус обновления (Upgrade Status) на закладке Общие (General) будет отображена версия ArcGIS базы геоданных, а также может ли база геоданных быть обновлена до последней версии.
  • Нужно включить по крайней мере один из параметров Выполнить предварительную проверку (Perform Pre-Requisite Check) или Обновить базу геоданных (Upgrade Geodatabase), но вы также можете включить оба параметра. Если вы не выберите хотя бы один параметр, то будет выведена ошибка.
  • Esri рекомендует выполнять предварительную проверку перед обновлением базы геоданных, чтобы вы могли убедиться, что база геоданных готова к обновлению. Если инструмент обнаружит какие-либо проблемы, то инструмент запишет ошибку в файл журнала в окне Результаты (Results), и база геоданных не будет обновлена. Без предварительной проверки запускать инструмент Обновить нецелесообразно. В случае обнаружения несоответствий, следует решить проблему, затем запустить инструмент Обновить еще раз.
  • Обновление с бета-версий баз геоданных не поддерживается.
  • Опция Выполнять предварительную проверку (Perform Pre-Requisite Check) работает по-разному в зависимости от типа обновляемой базы геоданных. При использовании файловой или персональной базы геоданных происходит анализ следующих ситуаций:
    • База геоданных доступна только для чтения.
    • Больше ни один пользователь не подключен к базе геоданных.
    • Текущее подключение не редактирует данные в базе геоданных.
    • Любую информацию из системных таблиц текущей базы геоданных можно открыть.
    • При использовании настольной базы геоданных, базы геоданных рабочих групп и многопользовательских баз геоданных происходит анализ следующих ситуаций:
      • У подключенного пользователя есть соответствующие права на обновление.
      • Подключенный пользователь не редактирует данные в базе геоданных.
      • Ни один пользователь не подключен к базе геоданных.
      • В базе геоданных включена поддержка типов данных XML.
      • Любую информацию из системных таблиц текущей базы геоданных можно открыть.
      • При использовании многопользовательских баз геоданных в PostgreSQL и Oracle определяется, является ли актуальной библиотека ST_Geometry в местоположении базы данных.
      • При использовании многопользовательских баз геоданных в пользовательской схеме в Oracle определяется, обновлена ли основная (master) база геоданных.

Синтаксис

UpgradeGDB_management (input_workspace, input_prerequisite_check, input_upgradegdb_check)
ПараметрОбъяснениеТип данных
input_workspace

Укажите базу геоданных для обновления. При обновлении настольных баз геоданных, баз геоданных рабочих групп и многопользовательских баз геоданных укажите файл подключения базы данных (.sde), который позволит вам подключиться к базе геоданных из-под администратора базы геоданных.

Workspace
input_prerequisite_check

Определяет, надо ли выполнять предварительную проверку перед обновлением базы геоданных.

  • NO_ PREREQUISITE_CHECK —Проверка не выполняется.
  • PREREQUISITE_CHECK —Проверка выполняется. Это значение используется по умолчанию.
Boolean
input_upgradegdb_check

Определяет, будет ли база геоданных обновлена.

  • NO_UPGRADE —Обновление не выполняется.
  • UPGRADE —Обновление выполняется. Это значение используется по умолчанию.
Boolean

Пример кода

UpgradeGeodatabase. Пример 1 (окно Python)

Пример скрипта Python для выполнения функции Обновить базу геоданных (UpgradeGDB), с запуском из окна Python в ArcGIS, для обновления файловой базы геоданных:

import arcpy
Output_Workspace = "C:/temp/Default.gdb"
Default_gdb = "C:/temp/Default.gdb"
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Пример UpgradeGeodatabase 2 (автономный скрипт для файловой базы геоданных)

Пример скрипта Python для выполнения функции Обновить базу геоданных (UpgradeGDB), в автономном режиме для файловой базы геоданных:

# Description: upgrade a geodatabase
 
# Import arcpy module
import arcpy

# Local variables:
Output_Workspace = "C:/temp/Default.gdb"
Default_gdb = "C:/temp/Default.gdb"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
UpgradeGeodatabase. Пример 3 (автономный скрипт с использованием файла подключения .sde)

Пример автономного скрипта Python для запуска функции UpgradeGDB для обновления многопользовательской базы геоданных с использованием существующего файла подключения .sde:

# Description: upgrade a geodatabase

# Import arcpy module
import arcpy

# Local variables:
Output_Workspace = "C:/connections/gdbconnection.sde"
Default_gdb = "C:/connections/gdbconnection.sde"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Пример UpgradeGeodatabase 4 (автономный скрипт для многопользовательской базы геоданных)

Пример скрипта Python для выполнения функции Обновить базу геоданных (UpgradeGDB) в автономном режиме, для обновления многопользовательской базы геоданных с использованием файла подключения .sde:

"""
Name: upgrade_gdb.py
Description: Provide connection information to an Enterprise geodatabase 
and upgrade the geodatabase
Type upgrade_gdb.py -h or upgrade_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, or POSTGRESQL.")
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 ("--upgrade", dest="Upgrade", type="choice", choices=['TRUE', 'FALSE'], default="FALSE", help="Upgrade Options (case-sensitive):  TRUE=Perform Pre-requisite check and upgrade geodatabase, FALSE=Perform Pre-requisite check only.  Default=FALSE")                   
parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")


# 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 to upgrade
	account_authentication = options.account_authentication.upper()
	username = options.User.lower() 
	password = options.Password	
	do_upgrade = options.Upgrade
	database = options.Database.lower()
	database_type = options.Database_type.upper()
	instance = options.Instance
	
	if (database_type == ""):
		print "\nDatabase type must be specified!\n"
		parser.print_help()
		sys.exit(3)
	
	if (database_type == "SQLSERVER"):
		database_type = "SQL_SERVER"
	
	# Get the current product license
	product_license=arcpy.ProductInfo()
	
	# Checks required license level to upgrade
	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
		print "\n" + product_license + " license found!" + "  Enterprise geodatabase upgrade 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 upgrading.")
	else:
		print "\n" + product_license + " license available!  Continuing to upgrade..."
		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")
			
	# Check whether geodatabase needs upgrade
	isCurrent = arcpy.Describe(Connection_File_Name_full_path).currentRelease
	
	if isCurrent == True:
		print "The geodatabase is already at the current release and cannot be upgraded!"
		sys.exit("Upgrade did not run.")
	
	
	# Process: Upgrade geodatabase...
	try:
		if do_upgrade.lower() == "true":
			print "Upgrading Geodatabase...\n"
			arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="UPGRADE")
			for i in range(arcpy.GetMessageCount()):
				arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
		else:
			print "Running Pre-Requisite Check...\n"
			arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="NO_UPGRADE")
			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)

Параметры среды

  • Текущая рабочая область (Current Workspace)

Связанные темы

  • Обзор группы инструментов Администрирование базы геоданных
Отзыв по этому разделу?

ArcGIS for Desktop

  • На главную
  • Документация
  • Стоимость
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация