Standard または Advancedのライセンスで利用可能。
z/OS (z オペレーティング システム) 上の Db2 にジオデータベースを作成するには、以下を実行する必要があります。
- ArcGIS クライアントと Db2 クライアントをインストールして構成する。
- Db2 で ZPARM を構成する。
- z/OS上で sde ユーザーおよびグループを作成する。
- 2 つ以上のデータベースを作成する。
- sde ユーザーおよびグループに権限を付与する。
- システム テーブル格納を指定するように dbtune.sde ファイルをカスタマイズする。
- ジオデータベースの作成
クライアントの構成
Db2 データベースの設定に必要なファイルを取得し、ツールまたはスクリプトを実行してジオデータベースを作成するには、ArcGIS クライアントをインストールする必要があります。
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 システムを構成します。
ZPARM の構成
ArcGIS を z/OS 上の IBM Db2 に対する分散クライアントとして実行できるようにするには、DDF (分散データ機能) が起動されている必要があります。ArcGIS などのクライアントでのジオデータベースのパフォーマンスを最適化するために、以下の DB2 ZPARM の値を設定することを強くお勧めします。
- z/OS の管理者として Db2 にログインします。
- DSNTIJUZ の DSN6FAC セクションに以下を設定します。
- CMTSTAT=INACTIVE
- IDTHTOIN=3600
- TCPKPALV=120
- DSNTIJUZ の DSN6SYSP セクションに以下のパラメーターを設定します。
- CONDBAT=10000
- EXTSEC=YES
- IMPDSDEF=YES
- IXQTY=0
- MAXDBAT=1000
- TSQTY=0
- XMLVALA=204800
- XMLVALS=10240
- DSNTIJUZ の DSN6SPRM セクションで、WLMENV に正しいデフォルトの WLM 環境を設定する必要もあります。次に示します。
- CACHEDYN=YES
- EDMDBDC=102400
- EDMPOOL=32000
- EDMSTMTC=102400
- EDM_SKELETON_POOL=102400
- ZPARM 値を上のように変更した後、Db2 が起動時に正しい ZPARM モジュールを読み込むように、ジョブ ステップ DSNTIZL の SYSLMOD が正しいデータセット名を指していることを確認する必要もあります。
- SET SYSPARM コマンドを使用して Db2 を停止および起動し、変更をオンラインにします。
sde ユーザーおよびグループの作成
z/OS の RACF で TSO (Time Sharing Option) にアクセスできる主認証 ID (デフォルトで sde) を作成します。RACF を使用してユーザーを作成する方法については、z/OS の管理マニュアルをご参照ください。
IBM は、ユーザー権限の管理を効率化するために、二次認証 ID (z/OS 上の RACF のユーザー グループ) の使用を推奨しています。z/OS で二次認証 ID を有効にする必要があります。二次認証を有効にする方法については、z/OS のマニュアルをご参照ください。
GIS データとジオデータベースを管理するユーザーのみが、sde ユーザーとしてログインするようにします。その他の ArcGIS ユーザーは、sde 以外のアカウントを使用して接続するようにしてください。
- RACF を使用して、システムに sde という名前のスタンドアロン ユーザー アカウントを作成します。
- RACF を使用して、z/OS 上に GISUSERS などのユーザー グループを作成します。このためには、VM14 のグループの名前を EC に送信します。
- RACF を使用して、sde ユーザーを GISUSERS グループに追加します。
ArcGIS クライアントをインストールした Windows クライアント コンピューターからジオデータベースに sde ユーザーとして接続するには、サーバーへの接続で指定した同じ名前 (sde) の ローカル Windows ユーザーが、クライアント コンピューターに存在している必要があります。このユーザーに特別な権限は必要ありません。ローカル Windows ユーザーの作成方法については、Microsoft Windows のドキュメントをご参照ください。
データベースの作成
ジオデータベースを格納するには、空間対応のデータベース サブシステム内に、ジオデータベース リポジトリの格納用とユーザー データの格納用として、少なくとも 2 つの Db2 データベースが必要です。ジオデータベース リポジトリを格納するデータベースと、ユーザー データを格納する 1 つ以上のデータベースで、1 つのジオデータベースが構成されます。したがって、ジオデータベースを設定する前に、これらのデータベースを作成する必要があります。
JCL スクリプトの ESRIUDFI は、ジオデータベース作成用のデータベースと UDF を作成するために用意されています。このスクリプトは、ArcGIS クライアントのインストール ディレクトリの DatabaseSupport\DB2zOS フォルダーにインストールされています。実装に応じた固有の情報を使用して ESRIUDFI スクリプトをカスタマイズし、スクリプトを z/OS にアップロードして実行する必要があります。2 つのデータベースを作成する手順は、スクリプト内で説明されています。
ESRIUDFI をカスタマイズするには、JCL スクリプト中の指示を参照し、次の内容を十分に確認してください。
- ESRIUDFI の本体には、対応するユーザー環境パラメーターによる置換が必要な文字列がいくつかあります。各文字列の意味と置換方法の詳細は、ESRIUDFI スクリプトの先頭で説明されています。
- JCL スクリプトの ESRIS1 のステップでは、2 つのデータベースを作成して、照合順序を設定します。これらの行を使用するには、コメントを解除して、データベースの名前と照合順序を指定します。例を次に示します。
CREATE DATABASE SDEDBR00 CCSID UNICODE; CREATE DATABASE SDEDBU00 CCSID UNICODE;
- 必要な場合は、ジオデータベース データをより効率的に管理するためにストレージ グループを作成できます。ストレージ グループは最初に作成する必要があるため、ESRIUDFI スクリプトに次のような行を追加する必要があります。
CREATE STOGROUP ARCSDE VOLUMES (VOL1, VOL2, …) VCAT SDECAT; CREATE DATABASE SDEDBR00 CCSID UNICODE STOGROUP ARCGIS; CREATE DATABASE SDEDBU00 CCSID UNICODE STOGROUP ARCGIS;
- ESRIUDFI スクリプトのカスタマイズが完了したら、ターゲット コンピューターでスクリプトを実行する必要があります。
ESRI UDF インストール ジョブが完了すると、最後のステップで、パッケージのバインドと SDE.SDE_UPDT_LMOD プロシージャの作成は成功したが、警告が発生したことが通知されます。これらの警告は、ジオデータベース システム テーブルがまだデータベース内に作成されていないことを示しています。[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを実行する時点で、テーブルは作成され、パッケージ オブジェクトはツールから参照されるときに自動的にバインドされるため、これらの警告は無視できます。
- データベース サブシステムを空間対応にします。手順については、Db2 z/OS のドキュメントをご参照ください。
権限の付与
データベースおよび UDF を作成した後、sde ユーザーと ArcGIS ユーザー グループに権限およびデータベース権限を付与する必要があります。
- SYSADM ロールを持つアカウントで Db2 にログインし、設定した ArcGIS ユーザー グループと sde ユーザーに必要な権限を付与します。この GRANT ステートメントの例では、グループの名前は GISUSERS です。
GRANT SELECT ON SYSIBM.SYSTABAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSDBAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSROUTINES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSTABCONST TO GISUSERS; GRANT SELECT ON SYSIBM.SYSINDEXES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSKEYS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSCOLUMNS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSCHECKS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSSCHEMAAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSTABLES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSSEQUENCES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSDUMMY1 TO GISUSERS;
- sde ユーザーに次の権限を付与します。
GRANT BINDADD TO SDE; GRANT CREATE ON COLLECTION SDE TO SDE; GRANT DBADM ON DATABASE <repository_database_name> TO SDE; GRANT DBADM ON DATABASE <user_data_database_name> TO SDE;
- PUBLIC ロールに次の特権を付与します。
GRANT EXECUTE ON PACKAGE SYSPROC.* TO PUBLIC;
- ストレージ グループを使用する場合は、次のステートメントが必要です。この例では、ストレージ グループの名前は ARCGIS です。
GRANT USE OF STOGROUP ARCGIS to SDE;
dbtune.sde のカスタマイズ
データベース サブシステムを指定するように <ArcGIS client installation directory>\DatabaseSupport\DB2zOS にある dbtune.sde ファイルを変更します。
dbtune.sde ファイルにより、DBTUNE ジオデータベース システム テーブルに、データベース内のテーブルの物理的な格納を制御するコンフィグレーション キーワード、パラメーター、および値が入力されます。z/OS 上の Db2 データベースの場合は、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを実行する前にこのファイルを編集して、特定のテーブルを作成するデータベースを指定する必要があります。
- テキスト エディターで dbtune.sde ファイルを開きます。
- DATA_DICTIONARY キーワード以下にある次のコンフィグレーション文字列の値をコメント解除および変更して、特定のジオデータベース システム テーブルを作成するデータベースを指定します。次の設定を推奨します。SDEDBR00 という名前のデータベースは、ジオデータベース リポジトリ テーブルを格納するデータベースです。
B_STORAGE "IN DATABASE SDEDBR00" MVTABLES_MODIFIED_TABLE "IN DATABASE SDEDBR00" STATES_TABLE "IN DATABASE SDEDBR00" STATE_LINEAGES_TABLE "IN DATABASE SDEDBR00" VERSIONS_TABLE "IN DATABASE SDEDBR00" XML_INDEX_TAGS_TABLE "IN DATABASE SDEDBR00"
- DEFAULTS キーワード以下の BLOB_OPTION および CLOB_OPTION パラメーターに、空の文字列が設定されていることを確認します。
- DEFAULTS キーワード以下にある次のコンフィグレーション文字列の値をコメント解除および変更して、ユーザー定義データに関連するオブジェクトを作成するデータベースを指定します。
次の設定を推奨します。SDEDBU00 という名前のデータベースは、データベース サブシステム内でユーザー定義データを格納するデータベースです。
AUX_STORAGE "IN DATABASE SDEDBU00" A_STORAGE "IN DATABASE SDEDBU00" BLK_STORAGE "IN DATABASE SDEDBU00" BND_STORAGE "IN DATABASE SDEDBU00" B_STORAGE "IN DATABASE SDEDBU00" D_STORAGE "IN DATABASE SDEDBU00" RAS_STORAGE "IN DATABASE SDEDBU00"
- LOGFILE_DEFAULTS キーワード以下にある次のコンフィグレーション文字列の値をコメント解除および変更して、ログ ファイル テーブルを作成するデータベースを指定します。
LD_STORAGE "IN DATABASE SDEDBU00" LF_STORAGE "IN DATABASE SDEDBU00" SESSION_STORAGE "IN DATABASE SDEDBU00"
- 編集した dbtune.sde ファイルを保存して閉じます。
これで、Db2 サブシステムにジオデータベースを作成できるようになりました。
ジオデータベースの作成
z/OS 上の Db2 にジオデータベースを作成するには、以下のいずれかの方法を使用します。
エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase) ツールの使用
ArcGIS Desktop をインストールして Db2 サブシステムに接続するように構成してある場合、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを実行できます。
- ArcMap または ArcCatalog を起動します。
- カタログ ツリーから Db2 に接続します。sde ログインを使用して接続します。
[データベース コネクション] ダイアログ ボックスで、必ず sde ユーザーのパスワードを保存してください。
- データベース接続を右クリックして、[ジオデータベースの有効化] をクリックします。
[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールが開きます。
- [入力データベース] テキスト ボックスに、データベース接続ファイルを追加します。
- 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 サブシステム内にジオデータベースが作成されます。
ここで、データを作成できるユーザーを作成します。
Python スクリプトの使用
ArcGIS Desktop (Desktop Standard または Desktop Advanced)、ArcGIS Server (エンタープライズ エディション)、または ArcGIS Engine (と Geodatabase Update エクステンション) クライアント コンピューターから Python スクリプトを実行して、Db2 サブシステムにジオデータベースを作成できます。
以下の手順に従って Python スクリプトを実行し、Db2 z/OS サブシステムにジオデータベースを作成します。
- 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\License\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/License/sysgen/keycodes'
ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルにあります。このファイルは、Python スクリプトを実行したコンピューター上の TEMP 変数または TMP 変数で指定されたディレクトリに作成されます。ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。
Db2 サブシステム内にジオデータベースが作成されます。
ここで、データを読み込むことができるユーザーを作成します。