抽出定義は、複写元システムでレプリケーション対象のデータを抽出するための定義です。
複写元システムで、レプリケーション運用するすべての表に対して抽出定義を行います。1つの表に対して複数の抽出定義を行うこともできます。
抽出定義は、抽出定義コマンド(lxrepcreコマンド)で行います。
ここでは、抽出定義コマンドによる抽出定義の方法について説明します。あわせて、コマンドによる抽出定義情報の表示方法や抽出定義の削除方法について説明します。
なお、抽出定義の入力ファイルのサンプルについては、“付録C サンプルファイル一覧”を参照してください。
また、定義ファイル作成コマンド(lxrepmkdefコマンド)により、抽出定義の入力ファイルの雛型を作成することができます。詳細は、“コマンドリファレンス”の“lxrepmkdefコマンド”を参照してください。
抽出定義を行うには、テキストファイルに各種定義項目を記述し、抽出定義コマンド(lxrepcreコマンド)を実行します。コマンドの詳細については、“コマンドリファレンス”の“lxrepcreコマンド”を参照してください。
なお、抽出定義コマンドを実行するには、Symfoware ServerまたはEnterprise Postgresのインスタンスを起動する必要があります。
説明
指定したデータベースをレプリケーションの抽出対象にします。
操作方法
lxrepcre [ -u ユーザ名 [ -w ] ] [ -F ] 入力ファイル名
以下に、抽出定義の入力ファイルの記述方法について説明します。
以下の2つの場合について説明します。
表単位のレプリケーションでの抽出定義
グループ単位のレプリケーションでの抽出定義
表単位のレプリケーションでの抽出定義の方法を、以下の運用例に基づいて説明します。
なお、ここで説明するもの以外にも抽出定義の定義項目は存在します。詳細については、“コマンドリファレンス”の“lxrepcreコマンド”を参照してください。
運用資源
運用資源 | 複写元システム | 複写先システム |
---|---|---|
OS | Linux | Linux |
コード系 | UNICODE系 | UNICODE系 |
データベース名 | 社員管理データベース | 社員管理データベース |
スキーマ名 | 社員スキーマ | 社員スキーマ |
表名 | 社員表 | 社員表 |
運用形態
社員管理データベースの大阪支店のデータを複写先システムに複写します。
# 抽出定義 REPNAME = 社員管理抽出定義 → 1 REPTYPE = COPY → 2 DATABASE = 社員管理データベース → 3 SCHEMA = 社員スキーマ → 4 TABLE = 社員表 → 5 WHERE = 支店名 IN (N'大阪') → 6 LOGPATH = /home/work/logdata_db01/ → 7 LOGSIZE = 10M → 8 LOGALARM = 10M → 9 DIFFTYPE = OPEN →10 NULLIND = YES →11 BYTESWAP = NO →12 DATASIZE = 名前(40),支店名(20) →13
備考:「#」で始まる行はコメント行です。
以下に表単位のレプリケーションに対する抽出定義のオペランドについて説明します。各オペランドの番号は、入力ファイルの記述例の番号と対応します。
抽出定義名を指定します。
レプリケーションの運用種別を指定します。
レプリケーション対象となる複写元のデータベース名を指定します。
レプリケーション対象となる複写元のスキーマ名を指定します。
レプリケーション対象となる複写元の表名を指定します。
レプリケーション対象となる複写元の条件を指定します。
差分ログファイルを格納する任意のディレクトリパス名を指定します。
差分ログファイルのサイズを指定します。
差分ログファイルに蓄積されたデータ量が指定したサイズを超えたときに、コンソールに対して警告メッセージが通知されます。なお、コンソールについては、“読み方”を参照してください。
抽出データの形式を指定します。
オープンサーバ間で表単位のレプリケーションの場合は、“OPEN”(オープン独自形式)を指定します。
抽出データにナル表示域を含むか、含まないかを指定します。
データの抽出時にバイトスワップを行うか、行わないかを指定します。
DATASIZE(抽出する差分データの長さ)
データベースに格納されているデータの長さを指定します。
グループ単位のレプリケーションでの抽出定義の方法を、以下の運用例に基づいて説明します。
なお、ここで説明するもの以外にも抽出定義の定義項目は存在します。詳細については、“コマンドリファレンス”の“lxrepcreコマンド”を参照してください。
運用資源
運用資源 | 複写元システム | 複写先システム |
---|---|---|
OS | Linux | Linux |
コード系 | UNICODE系 | UNICODE系 |
データベース名 | 受注管理データベース | 受注管理データベース |
スキーマ名 | 受注スキーマ | 受注スキーマ |
表名 | 受注表 | 受注表 |
運用形態
受注管理データベースの以下のデータをグループ単位に複写先システムに複写します。
受注表の福岡支店データ
在庫表の全データ
受注表に対する抽出定義
# 受注表抽出定義 REPNAME = 受注表抽出定義 → * REPTYPE = MEMBER → 1 DATABASE = 受注管理データベース → * SCHEMA = 受注スキーマ → * TABLE = 受注表 → * WHERE = 支店名 IN (N'福岡') → * DATASIZE = 支店名(20) → *
在庫表に対する抽出定義
# 在庫表抽出定義 REPNAME = 在庫表抽出定義 → * REPTYPE = MEMBER → 1 DATABASE = 受注管理データベース → * SCHEMA = 受注スキーマ → * TABLE = 在庫表 → * DATASIZE = 製品名(40) → *
レプリケーショングループの定義
# レプリケーショングループ定義 GRPNAME = 受注管理抽出グループ → 2 REPTYPE = COPY → 1 MEMBER = 受注表抽出定義,在庫表抽出定義 → 3 LOGPATH = /home/work/logdata_db02/ → * LOGSIZE = 10M → * LOGALARM = 10M → * DIFFTYPE = JNL → 4 NULLIND = YES → * BYTESWAP = NO → *
以下にグループ単位のレプリケーションに対する抽出定義のオペランドについて説明します。各オペランドの番号は、入力ファイルの記述例の番号と対応します。
なお、入力ファイルの記述例に*印として表したオペランドは、表単位のレプリケーションの場合と同じです。“1.1.6.1.1 表単位のレプリケーションでの抽出定義”を参照してください。
抽出定義またはレプリケーショングループの定義内容を表示するには、抽出定義の定義内容表示コマンド(lxrepprtコマンド)を実行します。コマンドの詳細については、“コマンドリファレンス”の“lxrepprtコマンド(抽出定義の定義内容の表示)”を参照してください。
説明
指定した抽出定義またはレプリケーショングループの定義内容を表示します。
-rオプションで抽出定義名を指定すると、その抽出定義の内容を表示します。
-gオプションでレプリケーショングループ名を指定すると、そのレプリケーショングループの定義内容を表示します。
操作方法
lxrepprt { -r 抽出定義名 | -g レプリケーショングループ名 }
# Extract Definition Infomation REPNAME = 社員管理抽出定義 → 1 REPTYPE = COPY → 2 DATABASE = 社員管理データベース → 3 SCHEMA = 社員スキーマ → 4 TABLE = 社員表 → 5 WHERE = 支店名 IN (N'大阪') → 6 LOGPATH = /home/work/logdata_db01/ → 7 LOGSIZE = 10M → 8 LOGALARM = 10M → 9 OUTCODE = UNI-UTF8 →10 DIFFTYPE = OPEN →11 NULLIND = YES →12 BYTESWAP = NO →13 LOGTYPE = NORMAL →14 DATASIZE = 名前(40),支店名(20) →15
抽出定義名
運用種別
データベース名
スキーマ名
表名
条件指定
差分ログファイル格納ディレクトリパス名
差分ログファイルサイズ
差分ログファイル警告量
抽出コード系
抽出差分形式
ナル表示域の有無
バイトスワップの指定
差分データ形式
抽出する差分データの長さ
# Extract Group Information GRPNAME = 受注管理抽出グループ → 1 REPTYPE = COPY MEMBER = 受注表抽出定義,在庫表抽出定義 → 2 LOGPATH = /home/work/logdata_db02/ LOGSIZE = 10M LOGALARM = 10M OUTCODE = UNI-UTF8 DIFFTYPE = JNL NULLIND = YES BYTESWAP = NO LOGTYPE = NORMAL
レプリケーショングループ名
レプリケーショングループに属する抽出定義名
その他オペランドの表示形式は、抽出定義名指定の場合と同じです。
抽出定義またはレプリケーショングループを削除するには、抽出定義削除コマンド(lxrepdroコマンド)を実行します。レプリケーション運用中は抽出定義またはレプリケーショングループを削除しないでください。コマンドの詳細については、“コマンドリファレンス”の“lxrepdroコマンド”を参照してください。
なお、抽出定義削除コマンドを実行するには、Symfoware ServerまたはEnterprise Postgresのインスタンスを起動する必要があります。
説明
指定した抽出定義またはレプリケーショングループを削除します。
抽出定義名を-rオプションに指定すると、その抽出定義を削除します。
レプリケーショングループ名を-gオプションに指定すると、そのレプリケーショングループを削除します。
抽出定義名またはレプリケーショングループ名は入力ファイル内に記述することもできます。
-eオプションを指定することによって、まだ抽出されていない差分ログが、差分ログファイルに残っている場合でも、強制的に抽出定義を削除することができます。
その他のオプションについては、“コマンドリファレンス”の“lxrepdroコマンド”を参照してください。
操作方法
lxrepdro [ -e ] [ -u ユーザ名 [ -w ] ] { -r 抽出定義名 | -g レプリケーショングループ名 | 入力ファイル名 }