Standard または Advancedのライセンスで利用可能。
IBM DB2 および ArcGIS クライアントをインストールおよび構成し、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールまたは Python スクリプトを使用して DB2 データベースにジオデータベースを作成します。
このトピックは、Linux、UNIX、または Windows サーバー上の DB2 でのジオデータベースの作成を対象にしています。z/OS (z オペレーティング システム) 上の DB2 のジオデータベースの作成手順については、「z/OS 上の DB2 でのジオデータベースの作成」をご参照ください。
DB2 のインストールと構成
[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールまたはスクリプトを実行して DB2 にジオデータベースを作成するには、まず、DB2 データベース管理システムをインストールして構成する必要があります。ジオデータベースを設定する前に、使用するデータベース、ArcGIS、およびハードウェアの組み合わせがサポートされているかどうかを「DB2 に対する ArcGIS のシステム要件」で確認してください。
DB2 インスタンスをインストールおよび構成する場合は、IBM から提供された手順に従ってください。その後、ジオデータベースを使用するために、以下の手順に従ってデータベースとログインを構成します。
-
DB2 サーバー上に sde というオペレーティング システム ログイン名を作成します。
ジオデータベースを作成するために、sde ログインを使用してデータベースに接続します。
- DB2 データベースを作成し、Spatial Extender モジュールに登録します。
- sde ユーザーに、データベースの DBADM 権限を付与します。
次に、ArcGIS クライアントを設定し、そこから DB2 データベースに接続してジオデータベースを作成します。
クライアントの構成
ArcGIS Desktop (Desktop Standard または Desktop Advanced)、ArcGIS Engine Geodatabase Update、または ArcGIS Server (エンタープライズ エディション) から Python スクリプトを実行してジオデータベースを作成できます。スクリプトの代わりに [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを実行する場合は、ArcGIS Desktop を使用します。
- ジオデータベースの作成に使用する ArcGIS クライアントをインストールします。
ソフトウェア インストール ガイドに記載されている手順に従います。
- ほとんどの場合、ArcGIS クライアントは、DB2 サーバーとは異なるコンピューターにインストールされます。そのため、DB2 クライアントを ArcGIS クライアント コンピューターにインストールして構成します。
IBM Data Server Runtime Client for DB2 を My Esri からダウンロードするか、DB2 クライアントの独自のインストールを使用することができます。インストール手順については、DB2 のドキュメントをご参照ください。DB2 クライアントを 64 ビット オペレーティング システムにインストールする場合、64 ビットの実行可能ファイルを実行します。これによって、32 ビットと 64 ビットの両方のファイルがインストールされ、32 ビットおよび 64 ビットの両方の ArcGIS クライアントから接続できます。
- DSNless 接続文字列を使用して ArcGIS から DB2 データベースに接続できます。ただし、代わりにデータ ソース名を使用して接続する場合、データベースをカタログ化し、それによってデータ ソース名を構成する必要があります。データ ソース名の作成手順については、IBM DB2 のドキュメントをご参照ください。
これで、ジオデータベースを作成できるようになりました。
ジオデータベースの作成
以下のいずれかの方法を使用して、DB2 データベースにジオデータベースを作成します。
エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase) ツールの使用
ArcGIS Desktop をインストールして DB2 データベースに接続するように構成してある場合、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを実行できます。
ArcMap でジオデータベースを作成するには、次の手順に従います。
- ArcMap または ArcCatalog を起動します。
-
DB2 データベースへの接続. sde ログインを使用して接続します。
[データベース コネクション] ダイアログ ボックスで、必ず sde ユーザーのパスワードを保存してください。
- データベース接続を右クリックして、[ジオデータベースの有効化] をクリックします。
[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールが開きます。
- DB2 データベースのデータベース接続ファイルを [入力データベース] テキスト ボックスに追加します。
- ArcGIS Server を認証したときに作成された ArcGIS Server のキーコード ファイルを参照して選択し、それを [認証ファイル] テキスト ボックスに追加します。
ウィザードを使用して ArcGIS Server を認証する際に、ソフトウェアがインストールされているコンピューターにキーコード ファイルが書き込まれます。Linux ボックス上で ArcGIS Server を認証した場合、このファイルは /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen に作成されています。Windows サーバー上で認証した場合、このファイルは Program Files\ESRI\License<release>\sysgen に作成されています。このファイルを、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールからアクセスできる場所にコピーします。まだキーコード ファイルを作成していない場合には、ArcGIS Server を認証して作成します。
- [OK] をクリックして、このツールを実行します。
ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルにあります。このファイルは、ツールを実行したコンピューター上の %TEMP% 変数で指定されたディレクトリに作成されます。ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。
ジオデータベースが DB2 データベース内に作成されます。
次に、ジオデータベースにデータを読み込むユーザーを作成します。ユーザーの作成手順については、IBM DB2 Information Center をご参照ください。
Python スクリプトの使用
ArcGIS Desktop (Desktop Standard または Desktop Advanced)、ArcGIS Server (エンタープライズ エディション)、または ArcGIS Engine Geodatabase Update クライアント コンピューターから Python スクリプトを実行して、DB2 データベースにジオデータベースを作成できます。
以下の手順に従って Python スクリプトを実行し、DB2 データベースにジオデータベースを作成します。
- 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=['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 Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license." sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.") else: print "\n" + product_license + " license available! Continuing to enable..." arcpy.AddMessage("+++++++++") # Local variables instance_temp = instance.replace("\\","_") instance_temp = instance_temp.replace("/","_") instance_temp = instance_temp.replace(":","_") Conn_File_NameT = instance_temp + "_" + database + "_" + username if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = Conn_File_NameT + ".sde" Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde" # Check for the .sde file and delete it if present arcpy.env.overwriteOutput=True if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) print "\nCreating Database Connection File...\n" # Process: Create Database Connection File... # Usage: out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true) arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE") for i in range(arcpy.GetMessageCount()): if "000565" in arcpy.GetMessage(i): #Check if database connection was successful arcpy.AddReturnMessage(i) arcpy.AddMessage("\n+++++++++") arcpy.AddMessage("Exiting!!") arcpy.AddMessage("+++++++++\n") sys.exit(3) else: arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") # Process: Enable geodatabase... try: print "Enabling Enterprise Geodatabase...\n" arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print "\n" parser.print_help() parser.exit(2)
- *.py 拡張子を付けてファイルを保存します。
- ユーザーの環境に固有のオプションと情報を指定して、スクリプトを実行します。
以下の例では、Windows コンピューターから実行しています。enable_gdb.py ファイルは、インスタンス db2prod 上のデータベース spdata に対して実行されます。パスワード Tgdbst@rtsh3r3 を使用して sde ログインで接続が確立されます。ジオデータベースを認証するために、ArcGIS Server のデフォルトの場所のキーコード ファイルが指定されます。
enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License10.5\sysgen\keycodes
次の例では、Linux コンピューター上でスクリプトを実行しています。
/enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.5/sysgen/keycodes
ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルにあります。このファイルは、Python スクリプトを実行したコンピューター上の TEMP 変数または TMP 変数で指定されたディレクトリに作成されます。ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。
ジオデータベースが DB2 データベース内に作成されます。
次に、ジオデータベースにデータを読み込むユーザーを作成します。ユーザーの作成手順およびデータを読み込むための権限の付与については、IBM DB2 Information Center をご参照ください。