ページの先頭行へ戻る
Linkexpress Transactional Replication option V5.0L60 説明書
FUJITSU Software

13.3.3 初期DBの創成

逐次差分抽出を実行する前に、初期DBの創成が必要です。初期DBの創成は、"図13.9 初期DBの創成"の手順に従って行います。

図13.9 初期DBの創成

例として使用する"表13.3 初期DBの創成環境の構成"を以下に示します。

表13.3 初期DBの創成環境の構成

資源

名前

コンピュータ名

SERVER1

インスタンス名

DBINSTANCE

データベース名

販促

SQLスクリプト

D:\def\in_sqlsv.sql

出力CSVファイル

D:\def\out_sqlsv.csv

サービスグループ名

SERVICE1

DBサービス定義ファイル名

SQLSVALL.def

OUTTABLE識別名

OUT00001

13.3.3.1 初期DB創成用のデータを抽出

SQL Serverデータベースからレコードを抽出するためのSQLスクリプトを作成します。抽出したレコードは、CSV形式のファイルに格納します。
SQLスクリプトファイルの例を"表13.4 SQLスクリプトファイルの例"に示します。

表13.4 SQLスクリプトファイルの例
set nocount on      --行数を示すメッセージを表示しない

SELECT ISNULL(CHAR01,''),      --char型(注1)
       ISNULL(VCHAR01,''),     --varchar型(注1)
       ISNULL(NCHAR01,''),     --nchar型(注1)
       ISNULL(NVARCHAR01,''),  --nvarchar型(注1)
       DECIMAL01,   --decimal型
       NUMERIC01,   --numeric型
       INT01,       --int型
       SINT01,      --smallint型
       FLOAT01,     --float型
       REAL01,      --real型
       DATE01,      --date型
       DATETIME01,  --datetime型
       DATETIME2_01,--datetime2型
       CONVERT(VARCHAR,SMALLDATETIME01,120)+".00", --smalldatetime型(注2)
       TIME01       --time型
FROM SCHEMA01.IN_TBL;

注1)文字型(char型、varchar型、nchar型、nvarchar型)は、ISNULL関数を指定してください。
注2)Linkexpressの時刻型は、秒未満の値まで必要です。smalldatetime型は、秒までであるため、秒未満までの値(.00)を付与してください。また、binary型のようにLinkexpressの初期抽出で使用できないデータ型があります。使用できないデータ型については、Linkexpressのマニュアルを参照してください。

SQLスクリプトの実行例を以下に示します。斜体の部分が修正箇所です。

----------------------------------------------------------------------------------------------------------
  sqlcmd -S SERVER1\DBINSTANCE -E -d 販促 -i D:\def\in_sqlsv.sql -o D:\def\out_sqlsv.csv -s, -h -1 -W
----------------------------------------------------------------------------------------------------------

13.3.3.2 LinkexpressのDBサービス定義の作成

格納システムへの転送データ形式に変換するために、LinkexpressのDBサービス定義を作成します。DBサービス定義の作成の詳細については、Linkexpressのマニュアルを参照してください。
DBサービス定義の例を"表13.5 DBサービス定義の例"に示します。

表13.5 DBサービス定義の例
INTABLE
    NAME = INT00001
    DATATYPE = ( local, non-attr csv )
    CODE = sjis-ms
    ITEM = (
             ( ITEM1, char(10))
            ,( ITEM2, vchar(10))
            ,( ITEM3, nchar(10))
            ,( ITEM4, vnchar(10))
            ,( ITEM5, pack(5,1))
            ,( ITEM6, zone(5,1))
            ,( ITEM7, int)
            ,( ITEM8, sint)
            ,( ITEM9, double)
            ,( ITEM10, real)
            ,( ITEM11, date)
            ,( ITEM12, datetime)
            ,( ITEM13, datetime)
            ,( ITEM14, datetime)
            ,( ITEM15, time)
    )
    FILE = D:\def\out_sqlsv.csv
;

EXTRACT
    NAME = EXT00001
    INTABLE = INT00001
    CSV_INFO = ((DATE_DELIMITER,HYPHEN))
    SELECT = *
;

OUTTABLE
    NAME = OUT00001
    DATATYPE = ( local )
    EXTRACT = EXT00001
    CODE = jef-ebcdic-kana
    TEMPDIR = C:\temp
    FILE = D:\def\out_sqlsv
    LOADMODE = (new-ignore, insert)
;

13.3.3.3 格納側システムへの転送データの作成

以下の手順で格納システムへの転送データを作成します。転送データの作成の詳細については、Linkexpressのマニュアルを参照してください。

転送データの作成例を以下に示します。斜体の部分が修正箇所です。

------------------------------------------------
   lxgensv -s SERVICE1 -f SQLSVALL  (注)
   lxintsv -s SERVICE1
   lxstrdb -s SERVICE1 -t OUT00001
------------------------------------------------
注)SQLSVALLは、拡張子(.def)を省略したDBサービス定義ファイル名を指定してください。

13.3.3.4 格納側システムにデータを転送

格納側システムにデータを転送後、初期DBを創成します。転送方法の詳細については、Linkexpressのマニュアルを参照してください。