オフライン スキーマ抽出ソリューション

HCOSS Extract Schema ツールは、オンライン ツールとして使用する場合には DB2 for z/OS に直接接続する必要があります。本番環境によっては、この直接アクセスが、本番データベースの通常のビジネス トランザクションの速度に悪影響を及ぼしたり、データベース セキュリティ ポリシーの適切な機能を妨げることがあります。この問題を回避するために、オフラインで実行できるスキーマ抽出用のソリューションが用意されています。

Mainframe Batch Database Tools (MBDT) と z/OS DB2 DSNUTILB UNLOAD を使用すると、z/OS DB2 カタログに直接アクセスする必要がなくなります。このアプローチでは、z/OS DB2 処理への影響を最小化または除去する方法を使用して、メインフレームから DB2 テーブルの内容がアンロードされます。DB2 カタログ テーブルがアンロードされた後、MBDT を使用してこの情報を SQL Server にロードできます。これにより、SQL Server 経由で Extract Schema ツールからカタログにアクセスできるようになります。

このオフラインのスキーマ抽出アプローチは、HCOSS データベース移行のプロセスでスキーマ抽出ステップのみを変更することで、既存の HCOSS ツールセットを拡張します。Assess Data Migration から Compare Data までのその他すべてのステップは変更されません。

オンラインの Extract Schema ツールと同様に、HCOSS Offline Extract Schema ツールは、バージョン 9 以降の複数バージョンの DB2 for z/OS をサポートしています。

注: z/OS DB2 9 は IBM によってサポートされなくなりました。

1 ステップ プロセスであるオンラインの Extract Schema ツールとは異なり、オフライン ツールでは、次の複数のステップを実行する必要があります。

  1. z/OS DB2 DSNUTILB UNLOAD を使用してメインフレーム DB2 から DB2 カタログ テーブルをアンロードする
  2. Enterprise Server でアンロードされたデータ セットをインポートおよびカタログ化する
  3. SQL Server で DB2 カタログ テーブルを作成する
  4. MBDT DSNUTILB LOAD を使用してデータ セットを SQL Server カタログ テーブルにロードする
  5. SQL Server カタログ テーブルの外部キー参照を作成する
  6. SQL Server ADO.NET DSN で Extract Schema ツールを実行する

次のセクションでは、各ステップの詳細を説明します。

重要: ここで参照されているすべてのファイルは、デフォルトでは、%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\etc\hcoss ディレクトリにあります。
ステップ 1:z/OS DB2 からカタログ テーブルをアンロードする
DB2 for z/OS バッチ ユーティリティの DSNUTILB UNLOAD を使用して、MBDT DSNUTILB LOAD ツールで使用する DB2 カタログ テーブルをアンロードします。

SYSIBM スキーマには、アンロードする必要がある 17 の DB2 カタログ テーブルが含まれています。この操作を簡単に実行できるように、Micro Focus はすべての推奨 UNLOAD カードを含む UNLOAD.parm ファイルを用意しています。UNLOAD.parm 内の UNLOAD カードには、テーブル全体を選択するものも、特定のテーブルの列のサブセットのみを選択するものもあります。次に例を示します。

UNLOAD EBCDIC CCSID(00037,00037,00000)
DATA FROM TABLE SYSIBM.SYSPARMS
( SCHEMA,
  NAME,
  PARMNAME,
  ROWTYPE,
  ORDINAL,
  TYPENAME,
  LENGTH,
  SCALE,
  SUBTYPE,
  CCSID,
  ENCODING_SCHEME)

特定のテーブルの列のサブセットを選択する目的は、アンロードするデータの量を減らすことですが、この場合でも HCOSS Extract Schema ツールが正常に機能するための十分な情報が提供されます。

重要: アンロード時は、必ず生成された LOAD カードを保存してください。これらの LOAD カードは、ステップ 4 で使用します。
注: z/OS DB2 バージョン 9 を使用している場合は、z/OS DB2 バージョン 10 以降用に用意されているカードではなく、UNLOAD.parm 内の SYSIBM.SYSVIEWS 用に用意されている文書化された UNLOAD カードを使用する必要があります。
ステップ 2:アンロードされた DB2 データをコピーして Enterprise Server でカタログ化する
Micro Focus Mainframe Access MFDAS IMPORT コマンド ライン ツールを使用して、アンロードした DB2 データをローカル Windows マシンにコピーし、エンタープライズ サーバー リージョン でデータをカタログ化します。
コピーおよびアンロードの準備
MFDAS IMPORT を実行する前に、Mainframe Subsystem Support および Job Entry Subsystem (JES) に対して有効にする エンタープライズ サーバー リージョン を作成する必要があります。

MFDAS IMPORT を使用すると、すべてのコピーおよびカタログ化を 1 ステップで実行できますが、抽出したテーブルごとに個別にツールを実行する必要があります。したがって、各テーブルに対する MFDAS IMPORT コマンドを含む単一のバッチ ファイルを作成することもできます。

MFDAS IMPORT の実行
MFDAS IMPORTEnterprise Developer command promptから管理者として実行する必要があります。これを行う方法は、お使いのオペレーティング システムによって異なります。詳細については、「Enterprise Developer command promptを管理者として起動するには」を参照してください。

Enterprise Developer command promptで、次の構文を使用して MFDAS IMPORT を実行します。

MFDAS IMPORT datFilePath\datFileName.dat 
FROM QSAM mainframeDataSet /CATLOC=ESWorkArea\ESRegionName\catalog.dat

各変数の内容は次のとおりです。

datFilePath
アンロードされたデータ セットの抽出データを含むファイルを格納する Windows 上のローカル ディレクトリのパス。
datFileName
抽出したデータを含むデータ ファイルの名前。
mainframeDataSet
メインフレーム上のアンロードされたデータ セットの名前。
ESWorkArea
Enterprise Server WORKAREA フォルダー。デフォルトでは %USERPROFILE%\Documents\Micro Focus User\Enterprise Developer\WORKAREA です。
ESRegionName
MSS および JES 対応の エンタープライズ サーバー リージョン の名前。

例えば、SYSVIEWS のデータ セットをコピーおよびカタログ化する場合、コマンド ラインは次のようになります。

MFDAS IMPORT C:\work\DB2CATALOG\SYSVIEWS.DAT FROM QSAM MFIXCH.UTILBTS.ULSYSVWS 
/CATLOC=%USERPROFILE%\Documents\Micro Focus User\Enterprise Developer\WORKAREAEXSCHEMA\catalog.dat
ステップ 3:SQL Server で DB2 カタログ テーブルを作成する
SQL Server で DB2 カタログ テーブルの作成を簡単に実行できるように、Micro FocusCREATECATALOG.sql スクリプト ファイルを用意しています。このファイルには、IBM カタログ テーブルを SQL Server に移行するために必要な SQL Server CREATE TABLE 文が含まれています。

SQL Server Management Studio から CREATECATALOG.sql を実行することをお奨めします。実行前に、SQL Server データベースに SYSIBM スキーマが存在することを確認してください。

ステップ 4:データ セットを SQL Server カタログ テーブルにロードする
MBDT DSNUTILB LOAD ツールは、インポートおよびカタログ化された Enterprise Server データ セットを SQL Server テーブルにロードします。ステップ 2 で z/OS DB2 DSNUTILB UNLOAD によって生成された LOAD カードを、次のように一部変更して使用します。
  • RESUME YESREPLACE YES オプションに置き換えます。
  • EBCDIC オプションを明示的に指定して、MBDT デフォルトの ASCII をオーバーライドします。

SQL Server のテーブルに対する MBDT DSNUTILB LOAD の JCL 例を次に示します。

//LDSYSPRM JOB 
//DSNUPROC EXEC PGM=TSTUTILB,PARM='HCOD,SH      '
//*
//SYSPRINT DD   SYSOUT=*
//UTPRINT  DD   SYSOUT=*
//SYSUDUMP DD   SYSOUT=*
//STPRIN01 DD   SYSOUT=*
//*COLSDISC DD   SYSOUT=* 
//* DISCARDDN CHKSDISC DISCARDS 0
//IDIOFF   DD   DUMMY
//*
//SYSUT1   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSUT1
//SORTOUT  DD   DISP=MOD,DSN=SH.DSNUTILB.SYSOUT
//SYSMAP   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSMAP
//SYSERR   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSERR
//SYSREC   DD   DISP=SHR,DSN=MFIXCH.UTILBTS.ULSYSPRM
//SYSIN    DD   *
LOAD DATA INDDN SYSREC LOG NO  REPLACE YES
 EBCDIC  CCSID(00037,00037,65534)
 INTO TABLE
 "SYSIBM".
 "SYSPARMS"
 WHEN(00001:00002) = X'0146'
 NUMRECS                 1274
 ( "SCHEMA"
  POSITION(  00003:00132) VARCHAR
 , "NAME"
  POSITION(  00133:00262) VARCHAR
 , "PARMNAME"
  POSITION(  00263:00392) VARCHAR
 , "ROWTYPE"
  POSITION(  00393:00393) CHAR(001)
 , "ORDINAL"
  POSITION(  00394:00395) SMALLINT
 , "TYPENAME"
  POSITION(  00396:00525) VARCHAR
 , "LENGTH"
  POSITION(  00526:00529) INTEGER
 , "SCALE"
  POSITION(  00530:00531) SMALLINT
 , "SUBTYPE"
  POSITION(  00532:00532) CHAR(001)
 , "CCSID"
  POSITION(  00533:00536) INTEGER
 , "ENCODING_SCHEME"
  POSITION(  00537:00537) CHAR(001)
 )
/*
//  
//*
ステップ 5:SQL Server カタログ テーブルの外部キーを作成する
SQL Server カタログ テーブルの外部キーを作成するプロセスを簡単に実行できるように、Micro FocusCREATECATALOGFK.txt ファイルを用意しています。このファイルには、外部キーを SQL Server で正しく使用できるようにする SQL Server ALTER TABLE 文が含まれています。SQL Server Management Studio から CREATECATALOGFK.txt を実行することをお奨めします。
ステップ 6:SQL Server に対して HCOSS Extract Schema ツールを実行する
HCOSS Manage Connections ツールまたは ADO.NET Connection Editor を使用して、SQL Server への ADO.NET 接続を作成します。次に、HCOSS Extract Schema ツールを実行します。
コマンド ラインからの場合:
DB2 引数を ADO.NET 接続名に設定した MFExtractSchemaInfo コマンドを使用します。その他のすべての引数は、DB2 for z/OS に対して実行する場合と同様に設定します。次に例を示します。
MFExtractSchemaInfo DB2=HCODEMO; OUT=SCH81010; SCHEMA=DSN81010; TYPELOG=FILE

コマンド ラインからの Extract Schema ツールの実行に関する詳細については、「MFExtractSchemaInfo コマンド」を参照してください。

Extract Schema ツール UI からの場合:
次の点を除いて、「DB2 スキーマ オブジェクトを抽出するには」の指示に従います。
  • ステップ 2 で、DB2 接続を提供する代わりに、[SQL Server DSN] をクリックします 。

    これにより、[Table Row Count] および [Both Estimate and Actual] オプションがオフになります。実際のテーブル行数が必要な場合は、Assess Data Migration ツールの UI バージョンを使用してください。

注: DB2 for z/OS への ADO.NET 接続も Microsoft OLE DB2 Provider for DB2 も必要ありません。