Chat now with support
Chat with Support

SharePlex 8.6.6 - 管理ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex の概要 SharePlex の実行 複数の SharePlex インスタンスの実行 sp_ctrl でのコマンドの実行 SharePlex パラメータ 複製のための Oracle 環境の準備 設定ファイルの作成 オープンターゲットのターゲットへの複製の設定 複製方法の設定 分割レプリケーションの設定 名前付きキューの設定 変更履歴ターゲットを維持するための SharePlex の設定 Oracle DDL の複製 エラー処理のセットアップ データの変換 SharePlex セキュリティ機能の設定 実稼動環境での複製のアクティベート SharePlex の監視 複製上の問題の防止および解決方法 非同期データの修復 Oracle の高可用性を維持するための手順 アクティブな複製環境の変更 Oracle アプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲット上の Oracle データのバックアップ Capture プロセスのチューニング Post プロセスのチューニング 付録 A:ピアトゥピアの説明図 付録 B:SharePlex 環境変数

非同期操作を含むトランザクションの処理

エラー処理のセットアップ > 非同期操作を含むトランザクションの処理

非同期状態を処理するように Post を設定できます。デフォルトの動作と代替の動作を以下に示します。

非同期エラーに対する Post のデフォルトの処理

トランザクションに非同期操作が含まれる場合の Post のデフォルト動作では、トランザクション内の他の有効な操作の処理を続行し、遅延を最小限に抑えて、ターゲットをできるだけ最新の状態に維持しようとします。遅延は、ソーストランザクションが発生してからターゲットに適用されるまでの時間です。異常なトランザクション量やネットワークトラフィックの遮断など、さまざまな要因が複製の遅延時間に影響を及ぼします。

Post は、非同期操作の SQL 文とデータを ID_errlog.sql ログファイルにログとして記録します。ここで、ID はデータベースの識別子です。このファイルは、ターゲットシステム上の変数データディレクトリの log サブディレクトリ内にあります。

非同期エラーの発生時に停止する

次のパラメータを 1 に設定することで、Post の非同期状態が発生したときに Post を停止するように設定できます。

  • Oracle ターゲット: SP_OPO_OUT_OF_SYNC_SUSPEND
  • オープンターゲットのターゲット: SP_OPX_OUT_OF_SYNC_SUSPEND

この機能を使用する場合は、複製を頻繁に監視してください。Post が停止すると、遅延が大きくなり、データがキューに蓄積されます。詳細については、『 SharePlex リファレンスガイド』のパラメータに関するドキュメントを参照してください。

非同期エラーが発生した場合にトランザクションをロールバックする

トランザクション内のいずれかの操作によって非同期エラーが生成された場合、そのトランザクションをロールバックおよび破棄するように Post を設定できます。トランザクション全体が SQL ファイルにログとして記録されますが、ターゲットには適用されません。SQL ファイルを編集して無効な DML を修正してから、SQL ファイルを実行してトランザクションを適用できます。この機能は、SP_OPO_SAVE_OOS_TRANSACTION を 1 に設定すると有効になります。

詳細については、『 SharePlex リファレンスガイド』のパラメータに関するドキュメントを参照してください。

データの変換

データのトランスフォーメーション

このトピックでは、SharePlex のトランスフォーメーション機能の使用方法を説明します。トランスフォーメーションでは、ターゲットに post する前に、または post する代わりに、SharePlex がデータを操作できます。

コンテンツ

トランスフォーメーションの概要

データの変換 > トランスフォーメーションの概要

トランスフォーメーションは、SQL 操作をターゲットデータベースに適用する代わりに、PL/SQL プロシージャ(トランスフォーメーション ルーチンとして定義)を呼び出すよう Post プロセスに指示します。トランスフォーメーションでは、ターゲットに post する前に、または post する代わりに、複製データを操作できます。

たとえば、ソーステーブルとそのターゲットテーブルの構造が異なっている場合(人のファーストネームとラストネームがソーステーブルでは 1 つの列に収まるが、ターゲットテーブルでは別々の列に分かれるというような場合)、トランスフォーメーションルーチンを書いて、複製が成功するように列に合わせてデータを変換できます。トランスフォーメーションルーチンを使用すると、データ型、測定単位、またはキャラクタセットを変換できます。データベーストリガの代わりにこのルーチンを使用すると、その他の多くのビジネス要件に対しても入出力オーバーヘッドを軽減できます。

テーブルにトランスフォーメーションを指定すると、Post は複製データに対して何も動作を行いません。その代わり、トランスフォーメーションルーチンにデータ値を渡します。これにより、データの形式とデスティネーションの両方をこのプロシージャで制御できるようになります。ターゲットテーブルに post するか、または別の場所に post するか、あるいは両方に post できます。そのため、ルーチンを書く場合、posting に必要な SQL 操作をプロシージャに含める必要があります。

サポートされるデータベース

Oracle

サポートされる複製方法

トランスフォーメーションは、同一の構造やデータの維持を気にせずに、SharePlex を用いてテーブルからテーブルへとデータを転送する便利な方法です。これは、レポート、ブロードキャスト、データマートおよびデータウェアハウスアプリケーションにとって実用的なものです。

トランスフォーメーションは、peer-to-peer または high-availability 複製環境には適していません。High availability には、複製によって同期が維持される同一のデータベースが必要です。peer-to-peer 複製の場合、SharePlex は、同じ記録にいくつかの変更が同時に加えられるときの競合を検出および解決できます。データが変換される場合、同期を確認して競合を検出する値の前後では SharePlex は比較できません。

サポートされる操作

トランスフォーメーションは、INSERT、UPDATE および DELETE 操作のみをサポートします。プロシージャを開発するときは、次のような作業を実行できます。

  • 3 種類の操作タイプすべてについて共通の 1 つのプロシージャを作成することも、操作タイプごとに 1 つのプロシージャを作成することもできます。
  • すべてのテーブルについて共通の 1 つのプロシージャを使用することも、テーブルごとに異なるプロシージャを使用することもできます。SharePlexでは、テーブルを指定するのにワイルドカードを使用できます。

個々のテーブルのトランスフォーメーションルーチンが指定されており、そのテーブルが別のルーチンが指定されているテーブルのグループの一部である場合、関連の DML 操作が発生すると、そのテーブルにはテーブル固有のルーチンのみが使用されます。

トランスフォーメーションを使用する場合の考慮事項

データの変換 > トランスフォーメーションを使用する場合の考慮事項

トランスフォーメーションはデータを変化させ、SharePlex はそのデータを post しないため、トランスフォーメーションでは複製動作に変化はありません。これは、SharePlex 処理のカスタマイズです。トランスフォーメーション手順が成功するように、トランスフォーメーションを実装する前に、次の考慮事項を確認してください。

権限

トランスフォーメーションを行うために PL/SQL を介してアクセスされるテーブルは、SharePlex に対するオブジェクトの所有者から明示的に許可された権限を必要とします。

キー

トランスフォーメーションを使用するすべてのテーブルには PRIMARY または UNIQUE キーが必要です。SharePlex はキーを用いて UPDATE および DELETE のターゲット行を特定し、これにより UPDATE のターゲットテーブルからトランスフォーメーションルーチンに値を返すことができます。ターゲットシステムではキーを変更しないでください。さもないと、SharePlex はルーチンに値を渡すための行を特定できなくなります。

ルーチンのテスト

トランスフォーメーションルーチンを作成する前に、そのルーチンをテストして、意図したとおりに機能すること、およびあるルーチンが別のルーチンに対して反作用しないことを確認します。データが変換される場合、SharePlex では前後の値を比較して同期を確認することはできません。これはルーチンが正しく実行されているかどうかの目安となります。同期を確認する唯一の方法は、compare コマンドを key オプションとともに使用することです。このオプションは比較をキー値のみに制限し、同期を完全に確認するわけではありません。欠落した行や余分な行を検出するだけです。ターゲットデータが変換されたため、これは非キー列の値がソース列の値と適切な相関関係にあるかどうかは示しません(示すことができません)。

したがって、repair コマンドでデータを再同期することはできません。勤務先の業務規則やデータベース環境に基づいて独自の再同期プロシージャを考案する必要があります。

日付

SharePlex トランスフォーメーションのデフォルトの日付フォーマットは、MMDDYYYY HH24MISS です。デフォルトの日付のテーブルはそのフォーマットを使用しますが、そうでない場合、トランスフォーメーションではエラーが返されます。デフォルトの日付のテーブルを作成する前に、次のコマンドを使用して SQL*Plus の日付フォーマットを変更します。

ALTER SESSION SET nls_date_format = 'MMDDYYYYHH24MISS'

他の考慮事項

  • トランスフォーメーションは LOB および LONG 列に対する変更をサポートしません。
  • プロシージャにデータを渡す場合の処理オーバーヘッドはプロシージャ自体を実行する処理オーバーヘッドと組み合わされ、通常の複製および posting に比べると、ターゲットシステムにおけるパフォーマンス全体を低下させます。
  • 同一の PL/SQL パッケージが generic conflict resolution とトランスフォーメーションの両方に使用されます(名前は sp_cr)。generic conflict resolution またはトランスフォーメーションの「どちらか一方」を使用するか、またはどちらも使用しません。変換されたテーブルは SharePlex によって比較できないため、conflict resolution は成功しません。両方が使用される場合、SharePlex はトランスフォーメーションルーチンのみを呼び出します。適切であれば、generic conflict resolution およびトランスフォーメーションを同じ設定の異なるテーブルに使用することができます。conflict resolution の詳細は、「複数のピアデータベースを保持するための複製の設定」を参照してください。
Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating