表単位のレプリケーションでは、以下の定義文が必要です。
INTABLE定義文
OUTTABLE定義文
EXTRACT定義文
表単位のレプリケーションでのDBサービス定義の方法を、以下の運用例に基づいて説明します。
なお、ここで説明するもの以外にもDBサービス定義の定義項目は存在します。詳細については、“6.34.1 lxgensvコマンド”ならびに“Linkexpress 運用ガイド”を参照してください。
運用資源
運用資源 | 複写元システム | 複写先システム |
---|---|---|
OS | Solaris | Solaris |
コード系 | EUC(S90)系 | EUC(S90)系 |
データベース名 | 管理データベース | 管理データベース |
スキーマ名 | 社員スキーマ | 社員スキーマ |
表名 | 社員表 | 社員表 |
列名およびデータ型 | 社員番号:SMALLINT | 社員番号:SMALLINT |
抽出データの形式 | EUC(S90)コード系 |
|
運用形態
社員管理データベースの仙台支店の社員データを社員管理データベースに複写します。
レプリケーション運用例でのINTABLE定義文の記述例を以下に示します。
内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。
INTABLE NAME = INEMPLY → 1 DATATYPE = (local,non-attribute add null field) → 2 CODE = euc-s90 → 3 ITEM = ((@DBOP,sint except null field), (ITEM1,sint), (ITEM2,nchar(10)), (ITEM3,nchar(5))) → 4 FILE = /home/work/indata → 5
以下にINTABLE定義文のオペランドの指定時に注意すべき点を説明します。各オペランドの番号は、記述例の番号と対応します。
INTABLE識別名を指定してください。
入力データの種別には、“local”を指定してください。
入力データの形式には、複写元システムの抽出定義で指定したNULLINDオペランドの値に従って指定してください。
複写元システムで抽出したコード系を指定します。抽出定義のOUTCODEオペランドの値に従って指定してください。
注意
CODEオペランドにunicodeを指定した場合には、UNICODE_TYPEオペランドの指定が必要です。
抽出される差分データの形式に従ってください。
以下に複写元システムで抽出される差分データのレコード形式とITEMオペランドでの指定形式について説明します。
抽出レコード形式
レコードの形式にはナル表示域あり(抽出定義でNULLIND=YESを指定)と、ナル表示域なし(抽出定義でNULLIND=NOを指定)の2種類があります。
レコードの構成を以下に示します(コード系をEUCまたはシフトJIS(MS)、数値の表現形式を前進法で示します。)。
差分反映操作(長さ:2バイト、属性:SMALLINT)
0x0000:全件抽出
0x0001:追加差分
0x0002:更新差分
0x0003:削除差分
0xffff:抽出件数が0件の全件抽出
ナル表示域 (長さ:2バイト、属性:SMALLINT)
0x0000:ナル値でない
0xffff:ナル値
ナル表示域なしのレコードの場合および抽出件数が0件の全件抽出の場合、本フィールドは存在しません。
データ項目 (長さ:データ型によって異なります)
各項目のデータが抽出されます。
詳細は、“付録B 抽出データ項目の形式”を参照してください。
抽出件数が0件の全件抽出の場合、本フィールドは存在しません。
ITEMオペランドでの指定形式
差分反映操作
“@DBOP,sint except null field”と指定してください。
DATATYPEオペランドの入力データの形式でナル表示域の有無に“except null field”を指定した場合、“@DBOP,sint”だけの指定も可能です。
各データ項目の属性
“付録B 抽出データ項目の形式”を参照してください。
各データ項目のナル表示域の有無
DATATYPEオペランドで入力データの形式を指定した場合はナル表示域の有無をITEMオペランドで指定する必要はありません。
DATATYPEオペランドの入力データの形式を指定していない場合は、以下のように指定します。
ナル表示域ありのレコードの場合:add null field
ナル表示域なしのレコードの場合:except null field
格納処理の入力ファイル名(受信ファイル名)を指定してください。
レプリケーション運用例でのOUTTABLE定義文の記述例を以下に示します。
内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。
OUTTABLE NAME = OUTEMPLY → 1 DATATYPE = (database,symfoware/rdb) → 2 EXTRACT = EXTEMPLY → 3 CODE = euc-s90 → 4 DATABASE = 仙台社員管理データベース → 5 SCHEMA = 仙台社員スキーマ → 6 TABLE = 仙台社員表 → 7 ITEM = (@DBOP,社員番号,名前,支店名) → 8 LOADMODE = (difference,load) → 9
以下にOUTTABLE定義文のオペランドの指定時に注意すべき点を説明します。各オペランドの番号は、記述例の番号と対応します。
OUTTABLE識別名を指定してください。
DATATYPEオペランド(出力データの出力先およびデータベース・システムの種類)
データの出力先には、“database”を指定してください。
データベース・システムの種類は、Symfoware/RDB間のレプリケーションでは“symfoware/rdb”を指定してください。
EXTRACT識別名を指定してください。
複写先データベースに格納するデータのコード系を指定してください。
注意
CODEオペランドにunicodeを指定した場合には、UNICODE_TYPEオペランドの指定が必要です。
複写先データベースのデータベース名を指定してください。
複写先データベースの格納先のスキーマ名を指定してください。
複写先データベースの格納先の表名を指定してください。
格納先の表の列名を指定してください。
INTABLE定義文のITEMオペランドの入力データ項目名が複写先データベースの表の列名と同じ場合は、本オペランドを省略することができます。
格納方式には、全複写、一括差分複写を問わず、“difference”を指定してください。
格納方法には、“load”または“insert”を指定してください。
注意
複写先データベースの表をDSI分割し、全複写をDSI単位に行う場合は、OUTTABLE定義文のDSIオペランドに格納先のDSI名を指定してください。
なお、Linkexpress for Windows NT V1.1L11以前およびSolaris版Linkexpress 1.0.2以前のLinkexpressでは、OUTTABLE定義文にDSIオペランドを指定することができません。環境変数“LXDBTARGET”を使用してください。
DSIオペランド(または環境変数“LXDBTARGET”)を指定する場合、LOADMODEオペランドの格納方式に“difference”、格納方法には“load”を指定してください。
レプリケーション運用例でのEXTRACT定義文の記述例を以下に示します。
内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。
EXTRACT NAME = EXTEMPLY → 1 INTABLE = INTEMPLY → 2 CONVERT = on → 3 SELECT = * → 4
以下にEXTRACT定義文のオペランドの指定時に注意すべき点を説明します。各オペランドの番号は、記述例の番号と対応します。