ユーザーズ・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

Oracle Tuxedo Application Rehosting Workbench DB2 to Oracleコンバータ

 


概要

目的

この章では、ファイルをソースDB2データベースからターゲットOracleデータベースへ移行するために、Rehosting Workbench DB2-to-Oracleコンバータをインストール、実装および構成する方法を説明します。

スキル

DB2を移行する場合、COBOL、JCL、z/OSユーティリティ、DB2およびOracleデータベースと、UNIX/Linux Kornシェルの知識が必要です。

関連項目

移行プロセスの包括的な視点については、Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイドのデータ変換およびCOBOL変換の章とCOBOL変換の章を参照してください。

編成

データ・ファイルの移行は次の項で説明しています。

 


DB2からOracleへの移行プロセス

処理するファイル編成

z/OS DB2ソース・プラットフォームからOracle UNIXターゲット・プラットフォームへ移行する時の最初の問題は、どの表を移行するべきかということです。すべてのDB2表を移行するわけではない場合、移行するオブジェクトのサブセットを示すDB2 DDLを作成する必要があります。

移行プロセス手順

この章で詳しく説明する、DB2からOracleへの移行プロセスの原則的な手順は次のとおりです。

  1. 移行する表のリスト全体を作成します。すべてのDB2表を移行するわけではない場合は、移行する表のDB2 DDLを作成します。それ以外の場合は、サイトで使用するDB2 DDL全体を取得します。
  2. コンポーネントの生成に使用する環境を準備します。
  3. Rehosting Workbenchを使用して、次の手順で使用するコンポーネントを生成します。
  4. ソース・プラットフォームから表をアンロードします。
  5. データをターゲット・プラットフォームに転送します。
  6. データをトランスコードして再ロードします。
  7. 結果を確認します。
  8. Oracleデータベースを構築します。

その他のOracle Tuxedo Application Rehosting Workbenchツールとの対話

DB2からOracleへの移行はカタロガの結果に依存します。DB2からOracleへの移行はCOBOL変換に影響を与えるので、プログラムの変換作業の開始前に完了する必要があります。

 


実装するリエンジニアリング・ルール

この項では、DB2データベースからOracleデータベースへデータを移行するときに、Rehosting Workbenchにより適用されるリエンジニアリング・ルールについて説明します。

適用する移行ルール

Oracleへの移行に含まれるDB2オブジェクトのリストは生成されたOracleオブジェクトの作成で説明します。

Rehosting Workbenchの名前の変更ルールの適用を除き、Oracleへの移行時に、移行されたDB2オブジェクトの名前は保持されます(名前の変更ルールの準備および実装を参照)。

DB2からOracleへのデータ型移行ルール

表4-1 DB2からOracleへのデータ型
DB2 z/OSデータ型
Oracleのフォーマット
CHAR(長さ)
長さ <= 2000バイトの場合はCHAR
長さ > 2000バイトの場合はVARCHAR2
VARCHAR(長さ)
VARCHAR2 (長さ)
DECIMAL(…)
NUMBER(…)
NUMERIC(…)
NUMBER(…)
DEC(…)
NUMBER(…)
SMALLINT
NUMBER(5)
INTEGER
NUMBER(10)
TIMESTAMP
TIMESTAMP
TIMESTMP
TIMESTAMP
DATE
DATE
TIME
DATE
DOUBLE
BINARY_DOUBLE
FLOAT(prec)
BINARY_DOUBLE
REAL
BINARY_DOUBLE
CLOB
CLOB
BLOB
BLOB

DB2からOracleへの列プロパティの移行ルール

列プロパティによりアプリケーション・プログラムの動作を変更できます。

次の表にすべてのDB2の列プロパティと、ターゲットOracleデータベース用に変換する方法を示します。

表4-2 DB2からOracleへの列プロパティ
DB2の列プロパティ
Oracleのフォーマット
注意
WITH DEFAULT
DEFAULT <value>
<value>はDB2/z/OSデータ型によります。
WITH DEFAULT ''
CHAR: DEFAULT ‘ ‘
VARCHAR2: DEFAULT ‘ ‘
DB2でのゼロ・バイトの長さはOracleでのNULLフラグになります。
WITH DEFAULT '<value>'
DEFAULT '<value>'
 
NOT NULL
NOT NULL
 
アイデンティティ
Sequenceの作成
Triggerの作成
IDENTITY属性はOracleには存在しないので、Rehosting Workbenchはその属性をSequenceおよびTriggerオブジェクトで置き換えます。
FOR SBCS …
属性を無視
 

名前の変更ルールの準備および実装

Oracle Tuxedo Application Rehosting Workbenchでは、DDLソース・ファイル内の様々な名前(表名や列名)を変更できます。

名前の変更ルールは次の場合に実装できます。

注意: Rehosting Workbenchを実行するときにOracleの予約語がDDLソースで検出されると、エラーが報告されますが、Rehosting WorkbenchはDDLの分析を続行します。

名前の変更ルールはrename-objects-<schema name>.txt.という名前のファイルに置かれます。このファイルは$PARAM/rdbmsパラメータで示されたディレクトリに置かれます。

名前の変更ルールの形式は次のとおりです。

コメントは% Textのように追加できます。

例:

% Modification applied to the AUALPH0T table
column;AUANPR0U;AUALPH0T;NUM_ALPHA;MW_NUM_ALPHA

LOBSデータ型の移行の準備と実装

Oracle Tuxedo Application Rehosting Workbenchでは、CLOBおよびBLOBデータ型をダウンロードできます。DB2アンロード・ユーティリティは、CLOB列またはBLOB列の各行を別個のファイルにダウンロードします(PDSまたはHFSデータセット・タイプ)。このユーティリティ(DSNUTILB)は、すべての列のデータおよびNULLテクニカル・フラグを一意のMVSメンバー・ファイルにダウンロードします。ただし、個別のCLOBまたはBLOBファイルのファイル名で置き換えられるCLOBまたはBLOB列は除きます。

MVSシステム構成によっては、PDSデータセット・タイプで一部のファイルが許可されないため、CLOBまたはBLOB列のダウンロードに別のデータセット・タイプを選択しなければならないこともあります。

この2つの制約に基づいて、db-param.cfg構成ファイルで正しいパラメータを設定する必要があります(「構成ファイルの実装」を参照)。

MBCSデータの移行の準備と実装

Oracle Tuxedo Application Rehosting Workbenchでは、シングル・バイト・データのトランスコーディングが提供されています。ただし、DB2データにMBCS文字が含まれる場合は、DSNUPROCアンロード・ユーティリティを選択してcsvデータ形式を設定する必要があります。MBCSトランスコーディングは、転送ツールによって行われます。

この制約に基づいて、db-param.cfg構成ファイルで正しいパラメータを設定する必要があります(「構成ファイルの実装」を参照)。

DB2オブジェクトの移行の例

この例では、DB2 DDLに、主キーおよびXCUSTIDENという名前の一意の索引を持つ、ODCSF0という名前の表が含まれます。

リスト4-1 移行前のDDLの例
DROP TABLE ODCSF0;
  COMMIT;
  CREATE TABLE ODCSF0
         (CUSTIDENT DECIMAL(6, 0)  NOT NULL,
          CUSTLNAME CHAR(030)      NOT NULL,
          CUSTFNAME CHAR(020)      NOT NULL,
          CUSTADDRS CHAR(030)      NOT NULL,
          CUSTCITY  CHAR(020)      NOT NULL,
          CUSTSTATE CHAR(002)      NOT NULL,
          CUSTBDATE DATE           NOT NULL,
          CUSTEMAIL CHAR(040)      NOT NULL,
          CUSTPHONE CHAR(010)      NOT NULL,
          PRIMARY KEY(CUSTIDENT))
         IN DBPJ01A.TSPJ01A
         CCSID EBCDIC;
  COMMIT;
  CREATE UNIQUE INDEX XCUSTIDEN
                   ON ODCSF0
                   (CUSTIDENT ASC) USING STOGROUP SGPJ01A;
  COMMIT;

移行ルールの適用後、名前の変更ルールを実装せずに、次のOracleオブジェクトが取得されます。

リスト4-2 移行後のOracle表の例
WHENEVER SQLERROR CONTINUE;
DROP TABLE ODCSF0 CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE ODCSF0 (
  CUSTIDENT NUMBER(6) NOT NULL,
  CUSTLNAME CHAR(30) NOT NULL,
  CUSTFNAME CHAR(20) NOT NULL,
  CUSTADDRS CHAR(30) NOT NULL,
  CUSTCITY CHAR(20) NOT NULL,
  CUSTSTATE CHAR(2) NOT NULL,
  CUSTBDATE DATE NOT NULL,
  CUSTEMAIL CHAR(40) NOT NULL,
  CUSTPHONE CHAR(10) NOT NULL);
リスト4-3 移行後のOracle索引の例
WHENEVER SQLERROR CONTINUE;
DROP INDEX XCUSTIDEN;
WHENEVER SQLERROR EXIT 3;
CREATE UNIQUE INDEX XCUSTIDEN ON ODCSF0
  (
     CUSTIDENT ASC
   );
リスト4-4 移行後のOracle制約の例
WHENEVER SQLERROR CONTINUE;
ALTER TABLE ODCSF0 DROP CONSTRAINT CONSTRAINT_01;
WHENEVER SQLERROR EXIT 3;
ALTER TABLE ODCSF0 ADD
  CONSTRAINT CONSTRAINT_01 PRIMARY KEY (CUSTIDENT);

 


環境の準備

この項では、DB2データをOracleに移行するのに使用するコンポーネントを生成する前に実行するタスクについて説明します。

DB2 DDLソース・ファイルのカタログ化の実装

移行するDB2 DDLソース・ファイルがカタログ操作の準備前に検出されます。移行プロセス中に、SQL CREATEコマンドだけが処理されOracleに移行されますが、すべての有効なDB2構文が受け入れられます。

system.descファイル・パラメータ

DB2からOracleへの移行では、すべてのRehosting Workbenchツールで使用するsystem.desc システム記述ファイルに、パラメータを設定する必要があります。

スキーマ

スキーマは一貫性のあるオブジェクトのセットから構成される必要があります(たとえば、スキーマに存在しない表に対してのCREATE INDEXはありません)。

デフォルトでは、DB2 DDLのSQLコマンドに修飾子または認可識別子の接頭辞が付く場合(たとえばCREATE TABLE <修飾子または認可識別子>.表名)、この接頭辞はRehosting Workbenchによりスキーマ名として使用されます。

スキーマ名は、 system.descファイルのglobal-options句を使用して、Rehosting Workbenchが決定することもできます。

例:

system STDB2ORA root ".."
global-options
  catalog="..",
  sql-schema=<schema name>.

また、各DDLディレクトリのスキーマ名は、system.descファイルのdirectory options句を使用してRehosting Workbenchが決定することもできます。「カタロガ」の章の「オプション句」の項を参照してください。

directory "DDL"  type SQL-SCRIPT
		   files "*.sql"
  	    	   options SQL-Schema = "<schema name>".

構成ファイルの実装

次の1つのファイルだけは$PARAMで記述されたRehosting Workbenchのファイル構造に置く必要があります。

その他の2つの構成ファイル

これらのファイルはRehosting Workbenchのインストール時にファイル構造に自動的に生成されます。これらのファイルの特定のバージョンが必要な場合は、PARAM/rdbmsファイル構造に置かれます。

環境変数の初期化

Rehosting Workbenchの実行前に次の環境変数を設定します。

パラメータの生成

リスト4-5 db-param.cfgファイルの例
#
# This configuration file is used by FILE & RDBMS converter
# Lines beginning by "#" are ignored
# write information in lower case
#
# common parameters for FILE and RDBMS
# source information is written into system descriptor file (OS, DBMS=, # DBMS-VERSION=)
target_rdbms_name:oracle
target_rdbms_version:11
target_os:unix
# optional parameter
target_cobol:cobol_mf
#
# specific parameters for FILE to RDBMS conversion
file:char_limit_until_varchar:29
# specific parameters for RDBMS conversion
rdbms:date_format:YYYY/MM/DD
rdbms:timestamp_format:YYYY/MM/DD HH24 MI SS FF6
rdbms:time_format:HH24 MI SS
rdbms:lobs_fname_length:75
rdbms:jcl_unload_lob_file_system:pds
rdbms:jcl_unload_utility_name:dsnutilb
#rdbms:jcl_unload_format_file:csv
# rename object files
# the file param/rdbms/rename-objects-<schema>.txt is automatically loaded by # the tool if it exists.

パラメータtarget_<xxxxx>およびrdbms:<xxxxx>だけが適用される必要があります。

必須パラメータ

オプションのパラメータ

target_cobol:cobol_mf

COBOL言語の名前許容値は"cobol_mf"(デフォルト値)および"cobol_it"です。

この例では、言語はCOBOL Microfocusです。

DATE、TIMEおよびTIMESTAMPデータ型の場合のオプションのパラメータ

次のrdbmsパラメータは、z/OS DB2により使用され、DSNZPARMに格納される日付、タイムスタンプおよび時間形式を示します。

これらのパラメータは再ロード操作およびCOBOLの日付および時間の操作に影響を与えます。これらはオプションで、DB2データベースにDATETIMEまたはTIMESTAMPフィールドが含まれる場合のみ必要です。

警告: これらのパラメータを正しく設定することが重要です。

CLOBまたはBLOBデータ型の場合のオプションのパラメータ

次のrdbmsパラメータはオプションで、DB2スキーマにCLOBまたはBLOBデータ型が含まれる場合にのみ必要です。

警告: これらのパラメータを正しく設定することが重要です。
注意: rdbms:jcl_unload_utility_nameパラメータには、値"dsnutilb"を設定する必要があります。

JCLアンロード・ユーティリティのオプションのパラメータ

次のパラメータはオプションです。

MVSにDB2アンロード・ユーティリティがあるかどうかによって、値を変更することもできます。

注意:

 


コンポーネントの生成

データのDB2データベースからOracleデータベースへの移行に使用されるコンポーネントを生成するのに、Rehosting Workbenchはrdbms.shコマンドを使用します。この項ではこのコマンドについて説明します。

rdbms.sh

名前

rdbms.sh - DB2からOracleデータベースへの移行コンポーネントを生成。

概要

rdbms.sh [ [-c|-C] [-g] [-m] [-r] [-i <installation directory>] <schema name> ] -s <installation directory> (<schema name>,...) ]

説明

rdbms.shはz/OS DB2データベースのUNIX Oracleデータベースへの移行に使用されるRehosting Workbenchコンポーネントを生成します。

オプション

生成オプション

-C <schema name>

次のコンポーネントが$TMPPROJECTに生成されます: DDL Oracle、SQL*LOADERCTLファイル、COBOLコンバータで使用されるXMLファイル、構成ファイル(mapper.reおよびDatamap.re)。エラーまたは警告が発生してもプロセスは中断しません。
生成操作中に作成されたSQLスクリプトについては、トランスコードおよび再ロード・スクリプトの実行を参照してください。

-c <schema name>

エラーまたは警告が生成されてプロセスが中断する場合を除き、このオプションでは-Cオプションと同じ結果になります。

-g <schema name>

構成ファイルで提供される情報を使用してアンロードおよびロード・コンポーネントを$TMPPROJECTに生成します。このオプションの前に-Cまたは-cコマンドを指定してrdbms.shコマンドを実行する必要があります。
変更オプション

-m <schema name>

生成されたシェル・スクリプトを実行可能にします。COBOLプログラムは、ターゲットCOBOLの固定形式に合うように調整されます。あれば、生成されたソースを変更するシェル・スクリプトが実行されます。

-r <schema name>

生成されたオブジェクト(表の作成、表名、SQL*LOADER用のCTLファイル、KSH)からスキーマ名を削除します。このオプションが使用されるときに、COBOLコンポーネントの変換時に使用されるconfig-cobolファイル(COBOL変換構成ファイル)にある、オプションsql-remove-schema-qualifierを使用して、スキーマ名もCOBOLコンポーネントから削除できます。
インストール・オプション

-i <installation directory> <schema name>

インストール・ディレクトリにコンポーネントを配置します。この操作は rdbms-move-assignation.pgmファイル内の情報を使用します。
COBOL変換用の構成ファイルの生成

-s <installation directory> <schema name>,...)

COBOLコンバータの構成ファイルの生成を可能にします。このファイルは、プロジェクトのすべての単一XMLファイルを取得します。これらのファイルはすべて$PARAM/dynamic-configに作成されます。
例: rdbms-conv.txt rdbms-conv-PJ01DB2.xml

rdbms.sh -Cgrmi $HOME/trf PJ01DB2

Makeユーティリティの使用

Makeはターゲット(ファイルまたはアクション)の構成を自動化および最適化することを目的としたUNIXユーティリティです。

すべての操作が実装されるソース・ディレクトリにmakefileという名前の記述子ファイルが存在する必要があります(makefileはプロジェクトの初期化中にソース・ディレクトリに準備されます)。

次の2つの項では、Makeファイルの構成と、 Makeファイルを使用したRehosting Workbench DB2-To-Oracleコンバータ機能の使用方法について説明します。

Makeファイルの構成

Version.mk

$PARAMversion.mk構成ファイルを使用して、Makeユーティリティで必要な変数およびパラメータを設定します。

version.mkには、各種のコンポーネントがインストールされる場所とその拡張を、使用される様々なツールのバージョンとともに指定します。このファイルにはログ・ファイルの構成方法も記述されます。

次の一般的な変数を、version.mkファイルでの移行プロセスの最初に設定する必要があります。

また、RDBMS_SCHEMAS変数はDB2の移行に特有で、処理する様々なスキーマを示します。

この構成はMakeファイルの使用の前に完了する必要があります。

Makeファイルの内容

makefileの内容は実行するタスクの要約です。

makefileおよびversion.mkファイルはRehosting Workbench Simple Applicationとともに提供されます。

Rehosting Workbench DB2-To-OracleコンバータでのMakefileの使用

make RdbmsConvert コマンドを使用してRehosting Workbench DB2-To-Oracleコンバータを起動できます。これによりDB2データベースからOracleへの移行に必要なコンポーネントを生成できます。

Makeファイルは rdbms.shツールを、-C-g、-r-mおよび-iオプションを使用して、RDBMS_SCHEMAS変数に含まれるすべてのスキーマに対して起動できます。

生成されたファイルの場所

-i $HOME/trfオプションで生成されるアンロード・コンポーネントおよびロード・コンポーネントは、次の場所に配置されます。

表4-3 コンポーネントの場所
「場所」
フィールド値
$HOME/trf/unload/rdbms/<schema name>

各アンロードに使用されるJCLが各<schema name>用に生成されます。

$HOME/trf/SQL/rdbms/<schema name>

Oracleオブジェクトを作成するのに使用されるSQLスクリプトの<スキーマ名>による場所。この章で使用される例では、次の3つのスクリプトがあります。

  • INDEX-ODCSF0.sql
  • TABLE-ODCSF0.sql
  • CONSTRAINT-ODCSF0.sql
$HOME/trf/reload/rdbms/<schema name>/src

COBOLトランスコード・プログラムの<schema name>による場所。この章の例では、次の1つのプログラムがあります。

  • MOD_ODCSF0.cbl
およびCLOBデータ型の場合のその他のプログラム:
  • CLOB_<table>_<column>.cbl
$HOME/trf/reload/rdbms/<schema name>/ctl

SQL*LOADERにより使用されるCTLファイルの<スキーマ名>による場所。この章の例では、次の1つのCTLがあります。

  • ODCSF0.ctl
$HOME/trf/reload/rdbms/<schema name>/ksh

再ロードKornシェル・スクリプトの<schema name>による場所。この章の例では、次の1つのスクリプトがあります。

  • loadrdbms-ODCSF0.ksh

$TMPPROJECT/outputs/<schema name>

-cまたは-Cオプションを使用して生成された生成ログ・ファイル。rdbms-converter-<schema name>を使用して問題を解決できます。

生成されたコンポーネントの変更

生成されたコンポーネントはプロジェクト固有のスクリプトを使用して変更できます。これらのスクリプト(sed、awk、 perlなど)は次の場所に配置する必要があります。

$PARAM/rdbms/rdbms-modif-source.sh

このファイルが存在している場合、生成プロセスの最後に自動的に実行されます。これは、引数として<schema name>を使用して呼び出されます。

 


移行の実行

この項では、Rehosting Workbenchを使用して生成されたコンポーネント(コンポーネントの生成を参照)を使用する、アンロード、転送および再ロードのタスクについて説明します。

準備

環境の構成およびコンポーネントのインストール

z/OSでのアンロード・コンポーネントのインストール

アンロードに使用されるコンポーネント($HOME/trf/unload/rdbmsに生成)は、ソースz/OSプラットフォームにインストールする必要があります。生成されたJCLは、JOBカード、ライブラリ・アクセス・パス、入力および出力ファイル(データ・セット名: DSN)へのアクセス・パスを含む、特定のサイトの制約への適合が必要な場合があります。

ターゲット・プラットフォームへの再ロード・コンポーネントのインストール

再ロードに使用されるコンポーネント($HOME/trf/reload/rdbmsに生成)はターゲット・プラットフォームにインストールする必要があります(実行時)。

表4-4は、ターゲット・プラットフォームに設定する必要がある環境変数を示しています。

表4-4 変数とそのプラットフォーム
変数
DATA_SOURCE
Oracle表に再ロードするためにz/OSから転送された、アンロード済DB2表を含むディレクトリの名前。
BIN
汎用的な再ロードおよび制御スクリプト($HOME/trf/reload/bin)の場所。
TMPPROJECT
一時ディレクトリ。
MT_LOG
実行ログを含むディレクトリ。
CTL
SQL*LOADER($HOME/trf/reload/rdbms/<schema name>/ctl)により使用される<table name>.ctlファイルを含むディレクトリ。
DATA_TRANSCODE
DB2バイナリ・データ・トランスコード・スクリプトにより使用される一時ディレクトリ(ASCII形式の一時ファイルが含まれます)。

注意: CLOBまたはBLOBデータ型の移行の場合、このディレクトリには<column_name>という名前のサブディレクトリが含まれます。

NLS_LANG
Oracleドキュメントでの説明に従って設定します。
NLS_SORT
NLS_COMP
『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』およびその他のOracleドキュメントの説明に従って設定します。
NLS_DATE_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIME_FORMAT
『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』およびその他のOracleドキュメントの説明に従って設定します。

次の変数はOracle Tuxedo Application Rehosting Workbenchインストレーション・ガイドの情報に従って設定する必要があります。

再ロード・スクリプトloadrdbms-<表名>.kshSQL*LDR Oracleユーティリティを使用します。このユーティリティがアクセスできるのはORACLEサーバーに限られるため、このスクリプトはORACLEサーバーで使用する必要があり、クライアント接続では使用できません。特にこの再ロード手順では、この変数に@<oracle_sid>文字列を含めることはできません。

ターゲット・プラットフォームへのMWDB2ORAパッケージ・コンポーネントのインストール

COBOLプログラムによって呼び出されるパッケージの機能(Oracle Tuxedo Application Rehosting Workbench COBOLコンバータによって変換)をターゲット・プラットフォーム(ランタイム)にインストールする必要があります。

パッケージはREFINEDIR/convert-data/fixed-components/MWDB2ORA.plbおよびREFINEDIR/convert-data/fixed-components/MWDB2ORA_CONST.plbに配置されます。MWDB2ORA_CONST.plbパッケージを変更して、これらのパッケージを「Oracle Tuxedo Application Rehosting Workbench DB2 to Oracleコンバータ」に説明されいるようSQLPLUSの下にインストールする必要があります。

アンロード用JCL

各DB2表をアンロードするには、IBMアンロード・ユーティリティを使用するJCLを実行します。通常、アンロード・ユーティリティによって各表に3つのファイルが作成されます。

表にCLOBまたはBLOBデータ型が含まれる場合、アンロード・ユーティリティで次が作成されます。

これらのアンロード用JCLの名前は<表名>.jclunloadです。

表名が8文字よりも長い場合、Rehosting Workbenchはできるだけ元の名前に近い8文字の名前をz/OS JCLの名前とみなします。この名前の変更プロセスにより、各表名の一意性が保たれます。

この章で使用される例では、ODCSF0という表名が、z/OS JCLの名前を付けるときにODCSF0X1に伸ばされます。

ファイルの転送

アンロードされたデータ・ファイルは、サイトで使用可能なファイル転送ツール(CFT、FTPなど)を使用して、バイナリ形式で、ソースz/OSプラットフォームとターゲットUNIXプラットフォーム間で転送される必要があります。

LOGおよびSYSPUNCHファイルはテキスト・モードで転送される必要があります。

ターゲットUNIXプラットフォームに転送されたファイルは$DATA_SOURCEディレクトリに格納される必要があります。

CLOBおよびBLOBデータ・ファイルはバイナリ・モードで転送し、$DATA_SOURCE/<schema_name>.<column_name>ディレクトリに格納する必要があります。

MBCSデータ・ファイルはテキスト・モードで転送し、転送ツールによって適切にトランスコードする必要があります。詳細は、Oracle Tuxedo Application Workbenchリファレンス・ガイドを参照してください。

注意: MVSでは、Rehosting Workbenchは6文字の名前に数値を加えたもの(表の最初のCLOBまたはBLOB列には1、2番目には2など)を データセットまたはディレクトリの<column_name>とみなします。UNIX/Linuxプラットフォームでは、loadrdbms.shスクリプトは実際のcolumn_nameを使用します。

生成されたOracleオブジェクトの作成

Oracleオブジェクト(表、索引、制約など)を作成するスクリプトは$HOME/trf/SQL/rdbms/<スキーマ名>ディレクトリに作成されます。これらはターゲットOracleインスタンスで実行される必要があります。

<スキーマ名>.lstファイルにはすべての表の名前が階層的な順序で(親表の次に子表)含まれます。

表4-5にRehosting Workbenchで管理されるDB2オブジェクトとそれを作成するために使用するスクリプトの名前をリストします。

表4-5 DB2オブジェクト
オブジェクトの種類
ファイル名
注意
TABLE- <target_table_name>.sql
表ごとに1ファイルです。ファイルには表構成が、列名、データ型および属性とともに含まれます。
NULL/NOT NULL属性を除く制約はこのファイルには書き込まれません。
索引
INDEX- <target_table_name>.sql
このファイルには、表<ターゲット表名>に関連付けられたすべてのCREATE INDEXが含まれます。このファイルは表<target_table_name>>に索引が定義されてない場合には生成されません。
索引: 一意制約または一意ではない制約
制約
CONSTRAINT-
<target_table_name>.sql
このファイルには、表<target_table_name>に関連付けられたすべての制約が含まれます。このファイルは表<target_table_name>に定義された制約がない場合には生成されません。
制約: 主キー、一意、チェックおよび外部キー
コメント
COMMENT- <target_table_name>.sql
表と列のすべてのコメントが含まれます。表ごとに1ファイルです。
ビュー
VIEW-<schema_name>.sql
このファイルにはソース・データベース/スキーマで作成されたすべてのビューが含まれます。
このリリースでは、Select文はターゲット・データベース言語に自動的には変換されません。
シーケンス
SEQUENCE-<schema_name>.sql
このファイルにはソース・データベースですでに作成されたすべてのCREATE SEQUENCEが含まれます。
シノニム
SYNONYMS-<schema_name>.sql
このファイルにはソース・データベースですでに作成されたすべてのCREATE SYNONYMが含まれます。
IDENTITY
IDENTITY- <target_table_name>.sql
DB2からORACLEへの移行時のIDENTITYの場合、Rehosting WorkbenchはSequenceおよびTriggerオブジェクトを作成します。

トランスコード・プログラムのコンパイル

トランスコードに使用される生成されたCOBOLプログラムの名前は次のとおりです。

MOD_<表名>.cbl

この章で使用される生成されたプログラムの例は次のとおりです。

このプログラムはターゲットCOBOLコンパイラと、『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』に記載されたオプションを使用してコンパイルされる必要があります。

このプログラムは出力時にRECORD SEQUENTIALファイルを生成し、それは次にSQL*LOADERユーティリティに読み取られます。

リスト4-6 FILE CONTROLの例 – プログラムMOD_ODCSF0.cblからの抽出
SELECT MW-SORTIE
              ASSIGN TO "SORTIE"
              ORGANIZATION IS RECORD SEQUENTIAL
              ACCESS IS SEQUENTIAL
              FILE STATUS IS IO-STATUS.

CLOB列のトランスコードに使用される、生成されたCOBOLプログラムの名前は次のとおりです。

CLOB_<table name>_<column_name>.cbl

トランスコードおよび再ロード・スクリプトの実行

データのトランスコードおよび再ロードを可能にするスクリプトが次のディレクトリに生成されます。

$HOME/trf/reload/rdbms/<schema name>/ksh

スクリプト名の形式は次のとおりです。

loadrdbms-<table name>.ksh

この章で使用する例では、スクリプトの名前は次のとおりです。

loadrdbms-ODCSF0.ksh

各スクリプトは、トランスコードを実行するCOBOLプログラムを開始し、次にSQL*LOADERユーティリティを開始します。SQL*LOADERにより使用されるCTLファイルの名前は次のとおりです。

<table name>.ctl.

この章の例で使用されるCTLファイルの名前は次のとおりです。

ODCSF0.ctl

トランスコードと再ロードのコマンド

トランスコードおよび再ロード・スクリプトには次のパラメータがあります。

概要
loadrdbms-<table name>.ksh [-t | [-O|-T]] [-l] [-c: <method>]
オプション

-t

ファイルおよびすべてのCLOBまたはBLOBファイル(ある場合)をトランスコードします。

-T

表に関連付けられているファイルのみをトランスコードします(CLOBおよびBLOBファイルは除く)。このオプションは、表にCLOBまたはBLOB列が含まれる場合に使用されます。

-O

BLOB列の場合: すべてのバイナリBLOB転送ファイルへのUNIXリンクのみを作成します。 CLOB列の場合: すべてのバイナリCLOB転送ファイルのみをトランスコードします。

-l

データをOracle表に再ロードします。

-c rows:

転送の検証を実装します(「転送のチェック」を参照)。
サンプル

DB2オブジェクトの移行の例での例で、生成されるスクリプトは次のとおりです。

転送のチェック

この確認は loadrdbms-<表名>.kshの次のオプションを使用します。

-c rows
注意: このオプションでは、再ロードの後でDB2アンロード・ユーティリティにより、再ロードされたOracle表にz/OSからアンロードされた対応する表と同数のレコードが含まれることを確認します。レコード数が異なる場合は、エラー・メッセージが生成されます。

 


トラブルシューティング

この項では、データをDB2データベースからターゲットOracleデータベースへ移行するときに発生した使用エラーにより生じる問題について説明します。

概要

Rehosting Workbenchツールを実行するときに、ユーザーは次のことを確認する必要があります。

エラー・メッセージとその説明は、『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』の付録に記載されています。

共通の問題と解決策

エラー: RDBMS-0105

$REFINEDIR/$VERS/rdbms.sh -Cgrmi $HOME/trf PJ01DB2 STFILEORA の実行時に、次のメッセージが表示されます。
Fatal RDBMS error.
Error: RDBMS-0105: Catalog for /home2/wkb9/param/system.desc is out of date 
and needs to be updated externally.
Refine error...
説明

DDLが変更されたのでカタログ化操作を再度実行します。

エラー: 変換が中断されました。読み取りできません

$REFINEDIR/$VERS/rdbms.sh -Cgrmi $HOME/trf SCHEMA の実行時に、次のメッセージが表示されます。
Refine error...
/tmp/refine-exit-status.MOaZwgTphIN14075
ERROR : conversion aborted . Can not read /home2/wkb9/tmp/outputs/SCHEMA/rdbms-converter-SCHEMA.log log file
abort	
説明

スキーマ名が不明です。

エラー: 構成ファイル/db-param.cfgがありません。

$REFINEDIR/$VERS/rdbms.sh -Cgrmi $HOME/trf PJ01DB2 の実行時に、次のメッセージが表示されます。
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=--=-
#########################################################################
CONVERSION OF DDLs and CTL files and GENERATION of directive files
ERROR : Configuration file /db-param.cfg is missing !
ERROR : Error in reading configuration file
Abort
説明

外部変数PARAMが設定されていません。

エラー: ターゲット出力ディレクトリ...がありません

$REFINEDIR/$VERS/rdbms.sh -Cgrmi $HOME/bad-directory PJ01DB2 の実行時に、次のメッセージが表示されます。
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Target output directory /home2/wkb9/bad-directory is missing
Check parameters: -i <output_directory> <schema>
ERROR : usage : rdbms.sh [ [-c|-C] [-g] [-m] [-r] [-i <output_directory>] <schema_name> ] -s <output_directory> (<schema>,...) ]
abort
説明

ターゲット・ディレクトリが存在しません。

エラー: サポートされていない機能の場合には、-cオプションの使用時に中断するします

$REFINEDIR/$VERS/rdbms.sh -c WWARNの実行時に次のメッセージが表示されます。

*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-
WARNING: some unsupported db2 objects have been ignored by this tool.
Check file /home2/wkb9/tmp/outputs/WWARN/unsupported-WWARN.log to see a detail of those objects.
ERROR:
RDBMSWB-0199: conversion aborted due to 26 Warning message(s). Check previous error messages and try -C option instead of -c
abort
説明

DDLにサポートされていない機能が含まれます。警告ファイルを確認してください。-cオプションを-Cオプションに置き換えることで、この中断を無視できます。


  先頭に戻る       前  次