ここでは、単一ノード内に偏在しているDSI同士をグループ化し、ノードごとに独立してレプリケーションする場合について説明します。
以下に運用例を示します。あわせて、抽出定義とDBサービス定義の関係を示します。
図6.4 ノードごとに独立してレプリケーションする場合の運用例
単一ノード内のDSIのグループ単位のレプリケーションでの抽出定義とDBサービス定義は、以下の方法で行います。
DSI単位に抽出定義を行います。このとき、運用種別(REPTYPE)には“MEMBER”を指定します。また、表のDSI名(キーワード“DSI”)で抽出対象のDSI名を指定します。
DSI単位に定義した抽出定義をレプリケーショングループとしてグループ化します。このとき、運用種別(REPTYPE)には“COPY”を指定します。
抽出定義およびレプリケーショングループの定義は、DSIが偏在しているノードで行います。
全複写のDBサービス定義は以下の方法で行います。
DSI単位にDBサービス定義(INTABLE定義文、OUTTABLE定義文、EXTRACT定義文)を行います。このとき、OUTTABLE定義文のDSIオペランドに格納対象のDSI名を指定します。
DSI単位に定義したDBサービス定義を、REPLICAGROUP定義文でレプリケーショングループとしてグループ化します。レプリケーショングループに属するDBサービス定義の並びは、抽出側のレプリケーショングループに属する抽出定義の並びに対応させる必要があります。
DBサービス定義およびレプリケーショングループの定義は、DSIが偏在しているノードで行います。
一括差分複写のDBサービス定義は以下の方法で行います。
DSI単位にDBサービス定義(INTABLE定義文、OUTTABLE定義文、EXTRACT定義文)を行います。OUTTABLE定義文のDSIオペランドは指定することができません。
DSI単位に定義したDBサービス定義を、REPLICAGROUP定義文でレプリケーショングループとしてグループ化します。レプリケーショングループに属するDBサービス定義の並びは、抽出側のレプリケーショングループに属する抽出定義の並びに対応させる必要があります。
DBサービス定義およびレプリケーショングループの定義は、DSIが偏在しているノードで行います。
“受注表”の“受注表DSI1”と“在庫表”の“在庫表DSI1”をグループ化してレプリケーションします。
また、“受注表”の“受注表DSI2”と“在庫表”の“在庫表DSI2”をグループ化してレプリケーションします。
[複写元データベース]
データベース名 | 受注管理データベース |
スキーマ名 | 受注スキーマ |
表名 | 受注表 |
DSI名 | 受注表DSI1(偏在先ノード:NODE1) |
受注表DSI2(偏在先ノード:NODE2) |
データベース名 | 受注管理データベース |
スキーマ名 | 受注スキーマ |
表名 | 在庫表 |
DSI名 | 在庫表DSI1(偏在先ノード:NODE1) |
在庫表DSI2(偏在先ノード:NODE2) |
[複写先データベース]
データベース名 | 受注管理データベース |
スキーマ名 | 受注スキーマ |
表名 | 受注表 |
DSI名 | 受注表DSI1(偏在先ノード:NODE3) |
受注表DSI2(偏在先ノード:NODE4) |
データベース名 | 受注管理データベース |
スキーマ名 | 受注スキーマ |
表名 | 在庫表 |
DSI名 | 在庫表DSI1(偏在先ノード:NODE3) |
在庫表DSI2(偏在先ノード:NODE4) |
“NODE1”での定義例を以下に示します。
“NODE2”では、“受注表DSI2”と“在庫表DSI2”のレプリケーショングループに対して定義を行います。
受注表DSI1に対する抽出定義
REPNAME = 受注表抽出定義 REPTYPE = MEMBER DATABASE = 受注管理データベース SCHEMA = 受注スキーマ TABLE = 受注表 DSI = 受注表DSI1
在庫表DSI1に対する抽出定義
REPNAME = 在庫表抽出定義 REPTYPE = MEMBER DATABASE = 受注管理データベース SCHEMA = 受注スキーマ TABLE = 在庫表 DSI = 在庫表DSI1
レプリケーショングループの定義
GRPNAME = 抽出グループ REPTYPE = COPY DBMSKIND = SYMFO INCODE = EUC-S90 MEMBER = 受注表抽出定義,在庫表抽出定義 LOGPATH = /home/work/logdata_db02/ LOGSIZE = 1024 LOGWARN = 70 OUTCODE = EUC-S90 DIFFTYPE = JNL
“NODE3”での定義例を以下に示します。
“NODE4”では、“受注表DSI2”と“在庫表DSI2”のレプリケーショングループに対して定義を行います。
[全複写のDBサービス定義]
レプリケーショングループの定義
REPLICAGROUP NAME = GRPALL MEMBER = (OUTODRA,OUTSTKA) FILE = /home/work/str020 INCODE = euc-s90 DATABASE = 受注管理データベース
備考:全複写の場合には、REPLICAGROUP定義文のFILEオペランドの指定は意味を持ちません。
受注表DSI1に対するDBサービス定義
INTABLE NAME = INODRA DATATYPE = (local-member, non-attribute add null field) ITEM = ((@TRHEADER, char(8) except null field), (@DBOP, sint), (ITEM1, sint), (ITEM2, sint), (ITEM3, int), (ITEM4, int)) FILE = /home/work/str021
OUTTABLE NAME = OUTODRA DATATYPE = (database-member, symfoware/rdb) EXTRACT = EXTODRA SCHEMA = 受注スキーマ TABLE = 受注表 DSI = (受注表DSI1) ITEM = (@TRHEADER, @DBOP, 受注番号, 製品番号, 数量, 受注額) LOADMODE = (difference, load)
EXTRACT NAME = EXTODRA INTABLE = INODRA CONVERT = on SELECT = *
在庫表DSI1に対するDBサービス定義
INTABLE NAME = INSTKA DATATYPE = (local-member, non-attribute add null field) ITEM = ((@TRHEADER, char(8) except null field), (@DBOP, sint), (ITEM1, sint), (ITEM2, nchar(10)), (ITEM3, int), (ITEM4, int)) FILE = /home/work/str022
OUTTABLE NAME = OUTSTKA DATATYPE = (database-member, symfoware/rdb) EXTRACT = EXTSTKA SCHEMA = 受注スキーマ TABLE = 在庫表 DSI = (在庫表DSI1) ITEM = (@TRHEADER, @DBOP, 製品番号, 製品名, 単価, 在庫量) LOADMODE = (difference, load)
EXTRACT NAME = EXTSTKA INTABLE = INSTKA CONVERT = on SELECT = *
[一括差分複写のDBサービス定義]
レプリケーショングループの定義
REPLICAGROUP NAME = GRPDIFF MEMBER = (OUTODRD,OUTSTKD) FILE = /home/work/str020 INCODE = euc-s90 DATABASE = 受注管理データベース
受注表DSI1に対するDBサービス定義
INTABLE NAME = INODRD DATATYPE = (local-member, non-attribute add null field) ITEM = ((@TRHEADER, char(8) except null field), (@DBOP, sint), (ITEM1, sint), (ITEM2, sint), (ITEM3, int), (ITEM4, int)) FILE = /home/work/str021
OUTTABLE NAME = OUTODRD DATATYPE = (database-member, symfoware/rdb) EXTRACT = EXTODRD SCHEMA = 受注スキーマ TABLE = 受注表 ITEM = (@TRHEADER, @DBOP, 受注番号, 製品番号, 数量, 受注額) LOADMODE = (difference, load)
EXTRACT NAME = EXTODRD INTABLE = INODRD CONVERT = on SELECT = *
備考:一括差分複写の場合には、INTABLE定義文のFILEオペランドの指定は意味を持ちません。
在庫表DSI1に対するDBサービス定義
INTABLE NAME = INSTKD DATATYPE = (local-member, non-attribute add null field) ITEM = ((@TRHEADER, char(8) except null field), (@DBOP, sint), (ITEM1, sint), (ITEM2, nchar(10)), (ITEM3, int), (ITEM4, int)) FILE = /home/work/str022
OUTTABLE NAME = OUTSTKD DATATYPE = (database-member, symfoware/rdb) EXTRACT = EXTSTKD SCHEMA = 受注スキーマ TABLE = 在庫表 ITEM = (@TRHEADER, @DBOP, 製品番号, 製品名, 単価, 在庫量) LOADMODE = (difference, load)
EXTRACT NAME = EXTSTKD INTABLE = INSTKD CONVERT = on SELECT = *
備考:一括差分複写の場合には、INTABLE定義文のFILEオペランドの指定は意味を持ちません。