ページの先頭行へ戻る
Linkexpress Replication option 説明書
FUJITSU Software

2.2.1 レプリケーションシステムの設計

レプリケーションシステムの設計について、考え方・考慮点を以下に示します。

2.2.1.1 必要資源の見積り

セットアップにあたり、以下の製品に対して、インストールに必要なディスク容量と動作に必要なメモリ容量について見積もる必要があります。

参照

  • Symfoware Serverのインストールに必要なディスク容量および動作に必要なメモリ容量については、Symfoware Serverのソフトウェア説明書を参照してください。

  • Linkexpressのインストールに必要なディスク容量および動作に必要なメモリ容量については、Linkexpressのソフトウェア説明書を参照してください。

  • Linkexpress Replication optionのインストールに必要なディスク容量および動作に必要なメモリ容量については、Linkexpress Replication optionのソフトウェア説明書を参照してください。

2.2.1.2 差分ログファイルの自動容量拡張について

差分ログファイルは、差分ログファイル内の空きスペースがなくなると、自動容量拡張を行います。

これにより、差分ログファイルを格納しているディスクの容量に十分な空きがある場合は、差分ログファイルの使用率が高い値を示していても、差分ログファイルの容量不足にはなりません。

しかし、容量拡張の発生はレプリケーション業務の性能に悪影響を及ぼします。本機能は、あくまでも一時的に差分ログ量が増加した場合の安全対策と考え、差分ログファイルは、容量拡張が発生しないだけの容量を確保してください。

参照

差分ログファイルの容量見積りについては、“付録A 容量見積り”を参照してください。

2.2.1.3 ネットワークの一時エラー・無応答の考慮

レプリケーション業務の運用中は、回線異常などの理由により一時的な通信異常や、ファイル送信/ファイル受信または相手側ジョブ起動時に通信異常が発生した場合、業務が無応答となる可能性があります。

このため、Linkexpress Replication optionでは、Linkexpressのネットワーク定義および業務定義で応答監視やリトライを設定することにより、業務の無応答を防止することをお勧めします。ネットワーク定義および業務定義については、“Linkexpress 導入ガイド”および“Linkexpress 運用ガイド”を参照してください。

設定内容

設定個所

推奨値

相手側無通信応答
監視時間

ネットワーク定義のpath定義命令のrecvtimeオペランド

ネットワーク定義のpath定義命令のrecvtimeオペランドに以下の値を指定します。

3分

イベントリトライ

業務定義のイベントリトライ回数とイベントリトライ間隔

ファイル送信イベントやファイル受信イベント、および相手側ジョブ起動イベントや相手側DB格納イベントの起動に対して、イベントのリトライ回数と間隔を指定します。
イベントリトライ回数は、1~3回を推奨します。
以下のどちらかの方法で指定します。

Linkexpressクライアントの業務定義ウィンドウで、“START”イベントの“イベントリトライ回数”および“イベントリトライ間隔”を指定する

業務定義の業務定義命令(lxdwork)のretryオペランドを指定する

各イベントで実行されるバッチファイルまたはシェルスクリプト

本設定により、相手側ジョブ起動のジョブ結果通知で一時的な通信エラーが発生しても、エラーを回避できる可能性を高くすることができます。
lxrspjobコマンドの復帰値が、12、または0以外の場合、最低5回はリトライすることを推奨します。
詳細は、以降の“バッチファイルまたはシェルスクリプトによるリトライの例”を参照してください。

ッチファイルまたはシェルスクリプトによるリトライの例

2.2.1.4 業務の多重度

Linkexpressの業務は、同時に実行できる数は無限ではありません。同時に実行する数が最大値に達しないように、業務の起動時間をずらすなどの工夫が必要です。詳細は、“Linkexpress 導入ガイド”を参照ください。

設定個所

推奨値

ネットワーク定義のcomdef定義命令のscaleオペランド

ネットワーク定義のcomdef定義命令のscaleオペランドの多重度に以下を指定してください。

レプリケーション業務の最大同時実行数+3

2.2.1.5 業務のスケジュール間隔

レプリケーション業務で、スケジュール間隔を指定する場合、以下の点について考慮し、スケジュール間隔を設定する必要があります。

業務スケジュールの詳細は、“Linkexpress 運用ガイド”を参照してください。

考慮する点

考え方

業務のスケジュール間隔内で発生する差分データ量

例えば、5分間隔でレプリケーション業務をスケジュールしたくても、発生する差分データ量が、5分間以内にレプリケーション業務が完了できる量でない場合、5分間隔でスケジュールを設定することはできません。
発生する差分データ量(トランザクション数)を減らすか、スケジュール間隔を延ばす(差分データ量は固定)必要があります。

一時的なエラーが発生した場合

ネットワークが不安定な場合のファイル転送エラーや、格納処理で一時的なエラーが発生した場合、レプリケーションできなかった差分データは、次のスケジュールで、新たに発生した差分データと共にレプリケーションの対象となります。
つまり、次のレプリケーション業務で扱う差分データ量が約2倍になります。
したがって、1回のスケジュール間隔では、最低2回分の差分データを処理できるだけの間隔を指定する必要があります。

レプリケーション間隔は、おおよそ以下の総和で見積もります。

2.2.1.6 ジョブ結果待ち時間

レプリケーション業務の運用中は、回線異常や格納機能での排他エラーなどの理由により、一時的な通信異常や無応答が発生する可能性があります。

このため、Linkexpress Replication optionでは、Linkexpressのネットワーク定義および業務定義で、適切なジョブの監視時間を設定することをお勧めします。ネットワーク定義および業務定義については、“Linkexpress 導入ガイド”および“Linkexpress 運用ガイド”を参照してください。

適切な値を設定しなかった場合、以下のような事象が発生します。

事象

小さすぎる

レプリケーション業務が失敗し続ける。

設定していない

レプリケーション業務の異常(無応答など)を判断することができない。

以上から“ジョブ結果待ち時間(jobtimeオペランド)”には、以下のような値を設定することを推奨します。

設定内容

設定箇所

推奨値

ジョブ結果待ち時間

ネットワーク定義のnode定義命令のjobtimeオペランド

各イベントの処理時間×(4以上)
(4以上は、一時的なエラーで失敗しても、次のスケジュールのレプリケーション業務で、前回失敗分の差分データも処理対象とすることを考慮した値です)

年間を通したピーク時の格納処理に必要とする時間の倍以上の値など

注)Linkexpress Replication optionの動作環境ファイルのREP_DLF_WRITE_MODEオペランドに“MULTI”を指定した場合の抽出処理の推奨値については、“2.2.1.12 利用者プログラムの設計について”を参照してください。

ネットワーク定義のpath定義命令のjobtimeオペランド

業務定義のイベント定義命令(相手側ジョブ起動)のjobtimeオペランド

2.2.1.7 格納処理のジョブ結果待ち時間とレプリケーション業務のスケジュール時間の関係

一時的に大量差分データが発生し、格納処理中に次のレプリケーション業務のスケジュール時間となった場合(注)、格納処理はそのまま継続され、次のスケジュールはスキップされます。スキップされた格納処理の差分データは、次のスケジュールで格納処理の対象になります。

次のスケジュールの格納処理では、スキップされた差分データも対象となるため、同一事象が発生します。ただし、複写元データベースの更新量が収束するに伴い、差分データ量も収束するため、スケジュール間隔内で格納処理が完了するようになります。

注)格納処理は、格納処理のジョブ結果待ち時間内に完了するとします。

2.2.1.8 大規模データベースの考慮

以下に示すような大規模データベースに対するレプリケーションシステムでは、差分データの形式を“可変長ログ形式”とすることで、従来の差分データの形式(標準形式)に比べ、効率のよい差分データを取得することが可能となります。

(Oracle抽出レプリケーションでは、可変長ログ形式はサポートしていません)


以下にINSERT文を実行した場合の差分データ形式のイメージ図を示します。

差分データの形式を“可変長ログ形式”とするには、抽出定義とDBサービス定義に以下を指定します。詳細は、“6.1 lxrepcreコマンド”および“6.34.1 lxgensvコマンド”を参照してください。

設定内容

設定箇所

推奨値

差分データ形式

抽出定義のLOGTYPEオペランド

抽出定義のLOGTYPEオペランドに以下を指定します。

LOGTYPE=LITTLE

DBサービス定義のLOGTYPEオペランド

DBサービス定義のLOGTYPEオペランドに以下を指定します。

LOGTYPE=little

2.2.1.9 セキュアな環境での適用方法について

ここでは、セキュアな環境でのレプリケーションシステムの構築方法について、説明します。レプリケーション管理者用のユーザIDについては、“2.2.2 ユーザIDの準備”を参照してください。

レプリケーションシステムの配置について

Linkexpess Replication optionは、インターネットへのサービスを提供する用途には適用できません。インターネットに接続しないセキュリティにより外部から保護された環境(イントラネット内)で使用してください。

ログインユーザIDの監視

セキュアな環境におけるレプリケーションシステムでは、ログインしたユーザIDの実行履歴などを監視することを推奨します。

また、レプリケーション管理者用のユーザID以外に不要なユーザIDを作成しないことを推奨します。

インストール環境の実行権について

セキュアな環境におけるレプリケーションシステムでは、インストール先のディレクトリやロードモジュールなどの権限を、レプリケーション管理者用のユーザIDだけが参照、更新および実行可能なように変更することを推奨します。

ファイル送信/ファイル受信について

セキュアな環境におけるレプリケーションシステムでは、抽出した抽出データ格納ファイルを、暗号化ソフトによって暗号化し、受信ファイルを復号化した後、複写先データベースに格納を行うことを推奨します。

なお、ファイルの権限については、以下のように設定することを推奨します。

2.2.1.10 ログファイルの監視について

レプリケーションの運用では、差分ログが出力できなくなることを避けるために、トランザクションログファイルと、差分ログファイルを監視する必要があります。

参照

監視方法、および異常発生時の対処方法については、“2.9.4 ログファイルの監視”を参照してください。

2.2.1.11 レプリケーション資源の配置について

Symfoware抽出レプリケーションを行うにあたっては、まずLinkexpress Replication optionのファイルを適切なディスクに配置する必要があります。レプリケーション資源は、Linkexpressのインストール配下には配置しないでください。

Linkexpress Replication optionのファイルのうち、差分ログを蓄積するファイルには以下のものがあります。

これらのファイルは、差分データが発生している間、またはレプリケーション業務が動作した時、頻繁に書込みや読込みを行っています。このため、以下に示す資源と同じディスクに配置することは避けてください。
DBミラーリングシステム連携の場合は、以下に加え“Linkexpress Replication option DBミラーリングシステム連携導入運用ガイド”の“1.4 DBミラーリングシステム連携の設計”も参照してください。

また、上記に示すLinkexpress Replication optionの資源同士もできるだけ、ディスクを分けることを推奨します(特にトランザクションログファイルと差分ログファイル)。

WindowsOSがWindowsの場合、前記に示すLinkexpress Replication optionの資源を作成するドライブのプロパティとして、"ドライブを圧縮してディスク領域を空ける"を設定しないでください。
ドライブ圧縮を行った場合、通常のI/O処理と比較して性能上のオーバヘッドが発生します。これにより、I/O量に依存してOSリソース不足によるアクセスエラーが発生する可能性があります。

また、前記に示すLinkexpress Replication optionの資源を作成するフォルダのプロパティとして「全般タブ」属性の「詳細設定」である、"圧縮属性または暗号化属性"を設定しないでください。
圧縮属性とした場合、ドライブ圧縮と同様に通常のI/O処理と比較して性能上のオーバヘッドが発生します。これにより、I/O量に依存してOSリソース不足によるアクセスエラーが発生する可能性があります。
暗号化属性とした場合、Linkexpress Replication optionの各資源の作成者(lxreplogコマンドなどの実行ユーザ)とSymfowareサービス起動で動作するSymfoware Serverプロセスの実行者(ユーザ登録されないWindowsシステムユーザ)が異なるため、暗号解除ができずアクセスエラーが発生する可能性があります。

2.2.1.12 利用者プログラムの設計について

利用者プログラムの設計時における考慮点について説明します。

利用者プログラムの設計においては、Linkexpress Replication optionにおいて、差分ログを取得する処理が動作することを考慮する必要があります。特に以下の場合、差分ログを取得する処理が顕著化し、利用者プログラムの処理性能に影響を与える場合があります。

また、Linkexpress Replication optionでは、以下の情報を差分ログとして取得することはできません。

2.2.1.13 レプリケーションのチューニングについて

Linkexpress Replication optionのチューニング項目には以下があります。これらは、Linkexpress Replication optionの動作環境ファイルに指定します。

トランザクションログファイルへの書き込みバッファ枚数の指定

トランザクションログファイルへの書き込みバッファ枚数をLinkexpress Replication optionの動作環境ファイルのREP_TRFW_BUFF_NUMオペランドで指定します。本バッファを拡張することで、トランザクションログファイルへの書き込みバッファの枯渇削減、トランザクションログファイルへのi/o処理を軽減することができます。

バッファ枚数1000から始めて、利用者プログラムの処理時間、およびトランザクションログファイルへのi/o処理に効果があるまで増やしてみてください。

なお、トランザクションログファイルへのi/o負荷が低い場合、効果のでない場合があります。

差分ログ処理単位の指定

バックグラウンド処理における差分ログファイルへの書き込み保証処理の実行単位をLinkexpress Replication optionの動作環境ファイルのREP_DLF_WRITE_MODEオペランドで指定します。本オペランドに“MULTI”を指定することで、適切な単位で差分ログファイルへの書き込み保証処理を行い、バックグラウンド処理が効率的に動作します。

一定時間内に発生するトランザクション数が多い場合(例:最大が数十TPS)に、“MULTI”を指定してください。

差分ログファイルの書き込み保証処理の並列化の指定

差分ログファイルへの書き込み保証処理の並列数(複数のCPUまたは複数のコアが必要)をLinkexpress Replication optionの動作環境ファイルのREP_DLF_SYNC_PNUMオペランドで指定します。一度に大量のトランザクションが発生し、かつ複数の差分ログファイルに対して差分ログを取得する場合に効果があります。

以下を目安に見積もります。

REP_DLF_WRITE_MODEオペランドの
指定値

REP_DLF_SYNC_PNUMオペランド指定値の
見積り方法

“SINGLE”を指定した場合

トランザクション内で対象となる差分ログファイル数の最大で見積もります。

省略した場合

“MULTI”を指定した場合

お客様業務単位内で対象となる差分ログファイル数の最大で見積もります。
(例:バッチ処理が対象にする差分ログファイル数の最大)

有効ログ範囲の指定

Linkexpress Replication optionでは、Symfoware/RDBのダウンリカバリ処理が発生すると、Linkexpress Replication optionのダウンリカバリ処理を行います。

このダウンリカバリ処理の処理時間は、トランザクションログファイルに差分ログファイルへの転送待ちとなっている差分ログ(リカバリ対象ログと呼びます)の量に依存します。有効ログ範囲の指定は、Linkexpress Replication optionのダウンリカバリ時間をできるだけ一定にしたい時、またはクラスタシステムの切替え時間内にLinkexpress Replication optionのダウンリカバリ処理時間をできるだけ抑えたい場合に指定します。

Linkexpress Replication optionの動作環境ファイルのREP_RELLOG_RATEオペランドで指定します。

考え方を以下に示します。

Linkexpress Replication optionのダウンリカバリ処理時間< Linkexpress Replication optionのダウンリカバリ処理許容時間

以下を目安に見積もってください。

(A)דREP_RELLOG_RATE”指定値÷100÷(B)×(C)< Linkexpress Replication optionのダウンリカバリ処理許容時間(秒)

A:トランザクションログファイルのサイズ(Mバイト)

B:ディスク性能(Mバイト/秒)

C:安全係数(1.5)

なお、本オプションは、リカバリ対象ログ範囲の最新化を最優先で行いますので、利用者プログラムの処理性能に影響があります。

トランザクションログファイル異常時の差分ログ取得停止

トランザクションログファイルの容量不足や入出力障害が発生すると、複写元データベースを更新するお客様業務が継続できなくなる場合があります(更新SQL文がエラーまたは処理遅延)。このため、トランザクションログファイルを配置するディスクの冗長化や容量監視などの対策が重要となります。
なお、絶対にサービス停止が許されないシステムでは、これらの対策を実施した上で、容量不足や入出力障害が発生した場合に備えて、差分ログの取得を停止することでお客様業務を継続させることを検討してください。

動作環境ファイルのREP_TRF_COFF オペランドを利用することで、トランザクションログファイルが容量不足になりそうな場合に、差分ログの取得を自動的に停止し、お客様業務を継続することが可能です。また、動作環境ファイルのREP_TRF_INH_CLOGオペランドを利用することで、トランザクションログファイルが入出力障害となった場合に、差分ログの取得を停止し、お客様業務を継続することが可能です。以下に機能ごとに説明します。

注意

  • トランザクションログファイルの容量不足または入出力障害などにより、エラーとなったトランザクションは、再実行することを推奨します。(本機能により差分ログが取得されないため、再実行後はエラーにはなりません)

  • 本機能を利用して差分ログの取得を停止した場合は、複写元と複写先のデータベースの一致性を保証できなくなるため、運休日などを利用して、トランザクションログファイル(管理部)の再作成および全複写機能による複写先データベースの再創成を実施してください。再作成の詳細は、2.11.1.5 トランザクションログファイルへの差分ログ停止後の再開を参照してください。

  • Symfoware/RDBの起動時にトランザクションログファイルが入出力障害となるとSymfoware/RDBの起動が失敗します。お客様業務を優先させる場合は、動作環境ファイルにREPLICATION=OFFを指定した後、Symfoware/RDBの起動を再実行することで、Linkexpress Replication optionを止めて業務を継続することが可能です。

2.2.1.14 運用テストについて

システム構築後の運用テストにおいては、必ずLinkexpress Replication optionの性能情報を取得し、レプリケーションの動作を調査してください。その上でチューニングが必要である場合、Linkexpress Replication optionの性能情報の取得をlxreppdaコマンドによって行い、分析してください。

Linkexpress Replication optionのチューニングについては、“付録H レプリケーションのチューニングについて”を参照してください。