1.9 差分ログの取得と操作
1.9.4 差分ログの操作
不要になった差分ログの破棄や、最新の差分ログの複写など、差分ログを操作したい場合があります。
ここでは、以下の場合での差分ログの操作方法について説明します。
・ 全複写を行った場合の差分ログの操作
・ 最新の差分ログを複写先データベースに複写する場合の操作 これらの操作は、以下の差分ログの操作機能を利用して実現されます。
・ 差分ログの追出し
・ 差分ログの破棄
差分ログの追出し
差分ログの追出しとは、通常は自動的に行われるトランザクションログファイルまたはトランザクションログデータベースか ら差分ログファイルへの差分ログの転送処理(振分け)に対する機能であり、“差分ログの追出しコマンド”で行います。
“差分ログの追出しコマンド”は、Symfoware抽出レプリケーションの場合とOracle抽出レプリケーションの場合とでは、仕 様が異なります。
・ Symfoware抽出レプリケーションの場合
本コマンドは、RDBシステム単位に実行します。
本コマンドは、トランザクションログファイルから差分ログファイルへの差分ログ転送処理に対しコマンド同期をとります。
(本コマンドは、本コマンドを実行した時点で完了しているトランザクションの差分ログが、トランザクションログファイル から差分ログファイルに転送完了されるのを待ちます)
・ Oracle抽出レプリケーションの場合
本コマンドは、Oracleシステム単位に実行します。
本コマンドは、トランザクションログデータベースから完了しているトランザクションの差分ログを差分ログファイルに強 制的に追い出します。
差分ログの追出しは、以下のような場合に使用します。なお、使用する際は、複写元データベースを更新するアプリケー ションを事前に停止することを推奨します。
・ 日中オンライン業務と夜間バッチ業務との切替え時に、複写元データベースと複写先データベースの同期を保証し たい
・ 全複写によってレプリケーションシステムを復旧する前に、不要になった差分ログを差分ログファイルから破棄したい 差分ログの破棄
差分ログの破棄とは、差分ログファイル中の差分ログを削除する機能です。“差分ログの破棄コマンド”で行います。
ただし、Oracle抽出レプリケーションにおける差分ログの破棄コマンドでは、以下に格納されている差分ログを破棄するこ
とはできません。
・ トランザクションログデータベース内の差分ログ
・ 抽出データ格納ファイル内の差分ログ この場合は、以下の方法で差分ログを破棄します。
差分ログの格納場所 差分ログの破棄の方法 トランザクションログデータベース “差分ログの追出しコマンド”を実行し、
差分ログを差分ログファイルに移動させ てから、“差分ログの破棄コマンド”を実 行します。
抽出データ格納ファイル “業務確定コマンド”を実行し、抽出デー タ格納ファイルを削除します。業務確定 コマンドについては、“6.32 lxrpocmtコ マンド”を参照してください。
Windows版Linkexpress Replication optionでは、差分ログの破棄コマンドで、以下に格納されている差分ログを破棄する
ことはできません。
・ トランザクションログファイル内の差分ログ
・ 抽出データ格納ファイル内の差分ログ この場合は、以下の方法で差分ログを破棄します。
差分ログの格納場所 差分ログの破棄の方法 トランザクションログファイル “差分ログの追出しコマンド”を実行し、
差分ログを差分ログファイルに移動させ てから、“差分ログの破棄コマンド”を実 行します。
抽出データ格納ファイル “業務確定コマンド”を実行し、抽出デー タ格納ファイルを削除します。業務確定 コマンドについては、“6.15 lxcmtdbコマ ンド”を参照してください。
1.9.4.1 全複写を行った場合の差分ログの操作
差分ログを取得した状態で全複写を行った場合、トランザクションログファイルまたはトランザクションログデータベースと 差分ログファイルに取得済みの差分ログは不要になります。この場合は、“差分ログの追出しコマンド”と“差分ログの破 棄コマンド”を実行して、不要になった差分ログを削除する必要があります。
説明1
全複写を行った時点で、複写先データベースの内容は最新になるため、すでに取得済みの差分ログは不要になります。
以下の図は、差分ログを取得した状態で、全複写を実施した場合に、トランザクションログファイル(トランザクションログ データベース)と差分ログファイル内、抽出データ格納ファイルに不要になった差分ログが存在している状態を表してい ます。
説明2
不要になった差分ログを“差分ログの追出しコマンド”と“差分ログの破棄コマンド”により、削除します。
以下の図は“差分ログの追出しコマンド”と“差分ログの破棄コマンド”を実行することで、トランザクションログファイル(トラ ンザクションログデータベース)と差分ログファイル内の不要な差分ログを破棄する状態を表しています。
1.9.4.2 最新の差分ログを複写先データベースに複写する場合の操作
トランザクションログファイルまたはトランザクションログデータベースから差分ログファイルへの差分ログの振り分けは、ト ランザクションと同期して行われません。このため、一括差分複写時に最新の差分データが複写されるとは限りません。
最新の差分ログを複写する場合には、一括差分複写の前に、“差分ログの追出しコマンド”により、トランザクションログ ファイルまたはトランザクションログデータベース中の差分ログを差分ログファイルに追い出しておく必要があります。
説明1
下図では、1、2、3の順番で発生した3つの差分ログのうち2つの差分ログが4、5の順番で差分ログファイルに振り分けら れています。この状態で、6の一括差分複写を行うと2つの差分ログしか複写されません。
残りの1つの差分ログは、次回の一括差分複写時に複写されます。
説明2
下図では、6で差分ログの追出しコマンドにより、トランザクションログファイルまたはトランザクションログデータベースの差 分ログを差分ログファイルに追い出しています。この状態で、7の一括差分複写を行うことによって、すべての差分ログを 複写することができます。
1.10 データの抽出・転送・格納
Linkexpress Replication optionでは、レプリケーションでのデータの複写を以下の3つの処理で実現しています。
・ 抽出処理(全件抽出処理または差分抽出処理)
・ データ転送(データ送信またはデータ受信)
・ 格納処理
以下に、抽出処理から格納処理までの概要を示します。
1. 抽出処理によりレプリケーション対象のデータを“抽出データ格納ファイル”に格納します。
抽出したデータがレプリケーション対象の全データの場合(全件抽出)は、全複写となります。
抽出したデータが差分ログファイル中の差分ログ(差分抽出)の場合は、一括差分複写となります。
全件抽出と差分抽出の切分けは、抽出処理で実行する“データベース抽出コマンド”のオプションで指定すること ができます。詳細は、“6.14 lxextdbコマンド”または“6.31 lxrpoextコマンド”を参照してください。
2. 抽出データ格納ファイルのデータを複写先システムの“受信ファイル”に転送します。
データの転送には、Linkexpressのファイル転送機能(ファイル送信またはファイル受信)を使用します。ファイル転 送については、“Linkexpress 運用ガイド”を参照してください。
3. 受信ファイルのデータを格納処理により、複写先データベースに格納します。
データの格納は、LinkexpressのDB連携機能を使用します。 DB連携機能については、“Linkexpress 運用ガイド”
を参照してください。