ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

SQL Server のエンタープライズ ジオデータベースのアップグレード

Standard または Advancedのライセンスで利用可能。

  • アップグレードする前に
  • ジオデータベースのアップグレード

エンタープライズ ジオデータベースをアップグレードする目的は、新機能と修正された不具合を利用するために、ジオデータベースのシステム テーブル、ストアド プロシージャ、タイプ、および機能を更新することです。

ArcGIS クライアントの最新バージョンをインストールするか、サービス パック、パッチ、またはホット フィックスを既存のインストールに適用し、ジオデータベースをアップグレードします。

アップグレードする前に

ジオデータベースを含め、エンタープライズ システムをアップグレードする場合は、まず計画を立てます。開発サーバーまたはテスト サーバーで新しいバージョンをテストして、すべてのクライアント アプリケーションで動作することを確認します。

新しいシステムが想定したとおりに機能することが確認できたら、アップグレードのスケジュールを設定します。アップグレードに必要な人員を確保し、各担当者が割り当てられたタスクを実行するために必要な権限を持っていることを確認します。

次の点に注意してください。

  • SQL Server 用の ArcSDE アプリケーション サーバーは、ArcGIS 10.3 以降、使用できなくなりました。ジオデータベースを 10.3 にアップグレードするには、まず、ダイレクト コネクションを使用するために、マップまたはサービスで使用されるすべてのアプリケーション サーバー接続を移行する必要があります。
  • ソフトウェアのベータ バージョンからのアップグレードはサポートされていません。
  • ご使用のデータベースのバージョンがサポート対象であれば、9.3.1、10、10.1、10.2、10.2.1、または 10.2.2 ジオデータベースから 10.3 ジオデータベースに直接アップグレードできます。
  • お使いのジオデータベースのバージョンが 9.3 以下の場合は、まず 10.3 でサポートされているバージョンにアップグレードしてから、10.3 にアップグレードしてください。
  • ジオデータベースをいったんアップグレードすると、以前のバージョンの ArcGIS では接続できなくなる場合があります。これは、旧バージョンの ArcGIS では、新しいバージョンのジオデータベースを読み込めないためです。ArcGIS 10 より前のバージョンでは、10.3 ジオデータベースに接続できません。ArcGIS 10 のクライアントは、10.3 ジオデータベースに接続できます。
  • ジオデータベースを以前のバージョンにダウングレードするための正式のメカニズムはありません。ジオデータベースを新しいバージョンにアップグレードした後で旧バージョンに戻す必要が生じた場合は、旧版のデータベースをバックアップから復元する必要があります。
  • SQL Server のジオデータベースを ArcGIS 10 から ArcGIS 10.1 以降のリリースにアップグレードした場合、新しく作成されたフィーチャクラスは、デフォルトで SQL Server のgeometry 格納タイプを使用します。新しいフィーチャクラスで、デフォルトとは異なるジオメトリ格納タイプを使用する必要がある場合は、DEFAULTS キーワードの GEOMETRY_STORAGE パラメーター値を変更します。
  • マルチ空間データベース モデルを使用している SQL Server のジオデータベースをアップグレードする場合は、sde データベースのアップグレードを実行していることを確認してください。アップグレードした場合、マルチ空間データベース モデル ジオデータベースに新しいデータベースを追加することができなくなりますので注意してください。

以下は、ジオデータベースをアップグレードする前に実行する手順のチェックリストです。

  1. 使用する SQL Server のバージョンが ArcGIS 10.3 でサポートされていることを確認します。詳細については、「ArcGIS の Microsoft SQL Server データベース要件」をご参照ください。
  2. ヒント:

    SQL Server データベースのデータベース互換性レベルがわからない場合は、Microsoft SQL Server Management Studio からデータベース プロパティを確認してください。データベース互換性レベルが 80 の場合は、データベース互換性レベルを更新する必要があります。手順については、SQL Server のドキュメントをご参照ください。

  3. ジオデータベースをアップグレードできるかどうかを確認します。これを行うには、移行するArcGIS クライアントのバージョンを、1 台のコンピューターにインストールします。ArcGIS for Desktop をインストールすると、ジオデータベースに接続し、[データベース プロパティ] ダイアログ ボックスを開いて、ジオデータベースをアップグレードできるかどうかを確認できます。ArcGIS for Server または ArcGIS Engine と Geodatabase Update エクステンションをインストールすると、ArcPy の Describe 関数を使用して、ジオデータベースをアップグレードできるかどうかを判断できます。
    # Open Python.
    cd /arcgis/server/tools
    ./python
    
    # Create a connection to the geodatabase.
    arcpy.CreateDatabaseConnection_management("/tmp/",
                                              "egdb_connection.sde",
                                              "SQL_SERVER",
                                              "prod9",
                                              "DATABASE_AUTH",
                                              "sde",
                                              "mysdepassword",
                                              "SAVE_USERNAME",
                                              "myssgdb")
    
    # Import ArcPy and check the geodatabase release.
    import arcpy
    
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    
    print isCurrent
    

    false が返された場合、そのジオデータベースをアップグレードできます。true が返された場合、ジオデータベースをアップグレードする必要はありません。以降の手順を省略してください。

  4. データベースのバックアップを作成します。
  5. ArcGIS の外部でジオデータベース システム テーブルに追加しているカスタム機能 (トリガー、SQL Server レプリケーションへの参加、追加インデックスなど) をすべて削除します。アップグレード処理では、システム テーブルに行ったカスタマイズを認識できません。これらのカスタマイズがシステム テーブルの変更を妨げる場合、アップグレードは失敗します。
  6. ジオデータベースのアップグレードに使用するログインに、正しい権限が付与されていることを確認します。

    ジオデータベースが dbo スキーマに格納されている場合は、ジオデータベース管理者 (dbo) にアップグレードに必要な権限が自動的に付与されています。sde スキーマに格納されているジオデータベースでは、シングル空間データベース モデルのジオデータベースであり、データベース名が sde でない場合、使用するログインは sysadmin であるか、db_owner ロールに属している必要があります。マルチ空間データベース モデル ジオデータベースを使用している場合 (または、シングル空間データベースの名前が sde である場合)、アップグレードするには sysadmin としてログインする必要があります。

    注意:

    sde ユーザーを sysadmin に追加しないでください。

  7. アップグレード対象のジオデータベースへの接続がないことを確認します。

    ジオデータベースに現在接続しているユーザーのリストを表示するには、ArcGIS for Desktop の [ジオデータベース管理] ダイアログ ボックスの [接続ユーザー] タブを開きます。

これで、ジオデータベースをアップグレードできるようになりました。

ジオデータベースのアップグレード

ArcGIS for Desktop の [ジオデータベースのアップグレード (Upgrade Geodatabase)] ツール、または ArcGIS クライアント コンピューターで実行する Python スクリプトを使用して、ジオデータベースをアップグレードできます。

ジオデータベースのアップグレード (Upgrade Geodatabase)ツールの使用

[ジオデータベースのアップグレード (Upgrade Geodatabase)] ツールは、[一般] タブの [ジオデータベースのアップグレード] ボタンをクリックして [データベース プロパティ] ダイアログ ボックスから開きます。または、このツールを直接開くこともできます。[データベース プロパティ] からツールを開いた場合、[入力ジオデータベース] テキスト ボックスにジオデータベース接続情報が事前に入力されています。

[前提条件を確認] および [ジオデータベースをアップグレード] オプションをオンのままにすることをお勧めします。これにより、ジオデータベースのアップグレードを続ける前に、アップグレードを行うための前提条件を満たしているかどうかが確認されます。

前提条件のチェックでは、ジオデータベースへの他のアクティブな接続が検出され、接続しているユーザーにジオデータベースをアップグレードするための十分な権限が付与されているかどうか、データベースが XML 列をサポートできること、すべてのデータセットを開くことができること、およびデータベースとライブラリのリリースが同じであることが確認されます。前提条件のいずれかが満たされていない場合、ツールは終了します。アップグレードの手順を再度実行する前に、問題を修正する必要があります。

確認の結果は、ジオプロセシング ツールのダイアログ ボックスで報告されます。チェックで不合格になった (またはアップグレードに失敗した) 場合は、c:\Users\<user name>\AppData\Local\ESRI\<ArcGIS product> にある GDBUpgrade.log ファイルにも結果が書き込まれます。

すべてのチェックに合格した場合、ツールはアップグレードに進みます。前提条件チェックとアップグレードの状態は、ジオプロセシング ツールの進行状況を示すダイアログ ボックスに表示されます。アップグレードに失敗すると、GDBUpgrade.log に情報が書き込まれ、さらに詳細な情報が sdesetup.log に書き込まれます。sdesetup.log はシステムの TEMP ディレクトリにあります。

スクリプトの実行

ジオデータベースをアップグレードするには、以下のサンプル スクリプトのいずれかをテキスト エディターにコピーします。環境の情報に合わせて、変数の値を変更します。

  • ダイレクト コネクションを使用する既存のデータベース接続ファイルが存在し、sde ユーザーとして接続する場合、使用しているオペレーティング システムに適用するスクリプトをコピーし、テキスト エディターに貼り付け、環境に固有の情報を使用するように変更し、そのファイルを保存して閉じてから、実行します。
    # Name: upgradesdegdb_example.py
    # Description: Connect from a Windows computer 
    # with an existing database connection file 
    # and upgrade an enterprise geodatabase
    # Author: Esri
    
    # Import arcpy module
    import arcpy
     
    # Local variables:
    Output_Workspace = "C:\\ArcGIS\connection_files\<Connection file>"
    Default_gdb = "C:\\ArcGIS\connection_files\<Connection file>"
    
    # Process: Upgrade Geodatabase
    arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
    
  • アップグレードのスクリプティングを行うコンピューター上にデータベース接続ファイルがない場合、次のスクリプトをコピーして、環境に固有の情報をコマンド ラインに入力できます。
    """
    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)
    
    たとえば、テキスト ファイルを gdbupgrade として保存し、SQL Server インスタンスが prod9、データベースが myssgdb であり、オペレーティング システム認証を使用して接続している場合、コマンド プロンプトで以下を入力します。

    gdbupgrade --DBMS SQL_SERVER -i prod9 --auth OPERATING_SYSTEM_AUTH --upgrade TRUE -D myssgdb

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS プラットフォーム

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

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2019 Esri. | プライバシー | リーガル