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 環境変数

ソースおよびターゲットデータについて

SharePlex の概要 > ソースおよびターゲットデータについて

SharePlex の複製は、ソースターゲットという概念に基づいています。

  • ソースデータは、複製されるプライマリデータです。このデータはソースシステム上に存在します。
  • ターゲットデータは、プライマリデータの完全コピーまたはサブセットのコピーです。このデータは、ターゲットシステム上に存在します。複製の目的は、ソースデータとターゲットデータの同期を保つ、すなわち同期状態にすることです。これは、ソースデータの状態が、ターゲットデータによって正確に反映され、実行されるすべての変換と複製ストリーム内のすべてのタイムラグが調整されることを意味します。

ソースデータが変更されると同時に、SharePlex はそれらの変更をターゲットシステムに継続的に複製します。ターゲットデータは、データベース内のテーブル、JMS キューまたは Kafka トピック内のメッセージ、または他のソフトウェアプログラムで使用できるファイル内の XML または SQL レコードのいずれかの SharePlex でサポートされているターゲットタイプの形式を取ることができます。

直接設定またはカスケード設定では、データを 1 つのソースから複数のターゲットに複製すること、および複数のソースから 1 つのターゲットに複製することができます。

SharePlex アーキテクチャについて

SharePlex の概要 > SharePlex アーキテクチャについて

このトピックでは、SharePlex の複製の基本コンポーネントについて説明します。

注: このトピックでは、SharePlex のデフォルト設定について説明します。データストリームの分離やパフォーマンスの向上のために、キューとプロセスを追加するように SharePlex 設定をカスタマイズできます。

SharePlex キュー

複製されたデータは、ソースシステムからターゲットシステムに転送されるときにキューに格納されます。キューは、「チェックポイントリカバリシステム」の一部であり、安全な「非同期」データ転送を促進します。データは、生成された順にキューを通して送信されます。

データは 1 つのキューから次のキューへ書き込まれるまで「read-release(削除)」されません。ネットワーク、システム、またはデータベースの速度低下や障害が発生したり、複製プロセスが停止したりすると、データはソースおよびターゲットシステムのキューに蓄積されます。問題または停止が解決されると、SharePlex は停止した時点から処理を再開します。

SharePlex の複製では、次のキューを使用します。

  • capture キュー:capture キューは、ソースシステム上に存在し、SharePlex でさらに処理するためキャプチャしたデータを格納します。複製されるデータソースごとに 1 つの capture キューがあります。capture キューは datasource で識別されます(例:o.oraA)。
  • export キュー:export キューはソースシステムに存在します。SharePlex で処理されたデータを保持し、ターゲットシステムに転送する準備ができています。export キューの数は、アクティブ設定またはターゲットシステムの数に関係なく、デフォルトで 1 つです。デフォルトの export キューは、キューが存在するソースシステムの名前で識別されます(例:SysA)。さらに named export queues を作成するように SharePlex に指示することで、より複雑な複製方法が可能です。詳細については、を参照してください。
  • post キュー:post キューはターゲットシステムに存在します。このキューは、ターゲットに書き込む準備ができているデータを保持します。各ターゲットシステムにおいて、データソースとターゲット間の複製ストリームに対して、1 つの post キューがあります。たとえば、OraA と OraB が両方 OraC に複製している場合、2 つの post キューがあります。デフォルトの post キューは、ソースシステムと、データソースおよびターゲットの名前で識別されます(例:SysA (o.oraA-o.oraB))。さらに名前付き post キューを作成するように SharePlex に指示することで、より複雑な複製方法が可能です。詳細については、を参照してください。

注: すべての SharePlex キューファイルは SharePlex 変数データディレクトリの rim サブディレクトリに作成され、保守されます。

SharePlex プロセス

SharePlex は、主要 SharePlex プロセス、sp_cop によって開始される一連の複製プロセスを通じてデータを複製します。

  • Capture プロセス:Capture プロセスは、SharePlex による複製用に設定されたオブジェクトへの変更を、ソースシステムのトランザクションログまたはアーカイブログで読み取ります。Capture プロセスは、データを capture キューに書き込み、Read プロセスの準備ができるまでキューで蓄積します。複製する各 datasource に対して個別の Capture プロセスがあり、それぞれ同時に独立して機能します。Capture プロセスの名前は sp_ocap(Oracle Capture)です。
  • Read プロセス:Read プロセスは、ソースシステムで動作し、capture キューからのデータを読み取り、データにルーティング情報を追加します。データを処理した後、Read プロセスは、それを Export キューに送信します。Read プロセスの名前は sp_ordr(Oracle Reader)です。
  • Export プロセス:Export プロセスはソースシステムで動作し、データを export キューから読み取り、ネットワークを通してターゲットシステムに送信します。デフォルトにより、ソースシステムにはそのターゲットシステムそれぞれに対して 1 つの Export プロセスがあります。たとえば、2 つのターゲットシステムがある場合、2 つの Export プロセスがあります。各 Export プロセスでは、ソースシステムからターゲットシステムに複製されるすべてのデータの伝送が制御されます。Export プロセスは Export/Import の転送ペアの前者であり、TCP/IP ネットワーク上でデータをシステム間で移動します。Export プロセスの名前は sp_xport です。
  • Import プロセス:Import プロセスは、Export/Import の転送ペアの後半です。ターゲットシステム上で動作し、データを受信し post キューを構築します。Export プロセスごとに 1 つの Import プロセスがあります。たとえば、2 つのソースシステム(それぞれが Export プロセスを含む)がターゲットシステムにデータを複製する場合、ターゲットには 2 つの Import プロセスがあります。Import プロセスの名前は sp_mport です。

    注: 同じシステム上の Oracle インスタンス間でデータを複製することができます。この場合、Export および Import プロセスは作成されません。Read プロセスはデータを直接システムの post キューに置きます。

  • Post プロセス:Post プロセスは、ターゲットシステム上で動作し、post キューを読み取り、複製された操作をターゲットに適用します。ターゲットシステム上の post キューごとに Post プロセスがあります。複数の Post プロセスが、1 つのシステム上で同時に動作できます。Post プロセスは、Oracle データベースに post するように設定されている場合は sp_opst_mt で、オープンターゲットのターゲットに post するように設定されている場合は sp_xpst です。

SharePlex によるすべてのデータの通信と移動は、非同期ストリームプロトコル、大規模なデータ転送に効率的な TCP/IP 接続を使用した、内部メッセージおよび転送システムによって取り扱われています。この方法は通信の帯域幅を節約すると共に、最適なパフォーマンス、信頼性、再起動の機能を保証します。SharePlex は WAN 環境を含む、いかなる TCP/IP ネットワーク上でも複製できます。

SharePlex プロセスは、ネットワーク障害から回復します。ネットワークが使用不可能の場合、データはソースシステムにキューされます。SharePlex はネットワークが再度使用可能になった時点でそれを検知し、転送を再開します。

SharePlex がどのようにデータを複製するか

SharePlex は、redo ログのブロックを読み取り、設定ファイルで指定されたオブジェクトに対するトランザクションの変更を複製します。設定ファイルでは、複製するデータとそのデータが適用されるターゲットを指定します。設定のアクティベート時に、SharePlex はソースデータへの「変更」のみを複製するので、迅速で信頼性のある複製ソリューションを提供します。設定ファイルの詳細については、次を参照してください。

SharePlex は操作について持っている情報から、1 つまたは複数の「メッセージ」を作成し、Capture プロセスから Read プロセスに、そして Read プロセスから複製ストリーム内の他のすべての複製プロセスに送信します。メッセージは、SQL 操作または SharePlex 内部操作を反映することがありますが、ほとんどの場合、INSERT、UPDATE、DELETE、COMMIT、TRUNCATE またはサポートされた DDL 操作を含みます。

メッセージにはサイズの制限があるため、LONG または LOB 列にあるような大規模な操作は複数のメッセージが必要である場合があります。小さなレコードの配列の INSERT など、他の操作には逆効果になります。膨大な数の操作に対して 1 つのレコードしかない可能性があるためです。たとえば、70,000 行の配列の INSERT について、データによってわずか 700 個のメッセージがある場合があります。

一般的に、LONG と BLOB に対する多数の変更を複製しない限り、「プロセスまたはキューのステータス出力に表示されるメッセージ数は、ほぼ SQL 操作の数に相当する」と想定できます。

Post プロセスは、post キューからメッセージを読み取り、複製されたデータ変更をターゲットに適用します。データベースターゲットの場合、Post はデータを適用する SQL 文を構築します。非データベースターゲットの場合、Post は、JMS キューなど、ターゲットが必要とする形式でデータレコードを出力します。

次に、SharePlex がターゲットシステムで SQL 文を構築するデフォルトの方法について説明します。

  • もし変更が INSERT の場合は、SharePlex は行中の全列を使用して INSERT 文を構築します。
  • もし変更が DELETE の場合は、SharePlex は正しい行を見つけるためにキーのみを使用して WHERE 句を構築します。テーブルにキーがない場合、SharePlex は LONG 列と LOB 列以外のすべての列の値を使用してキーをシミュレートします。設定ファイルを作成するときに、キーとして使用する列を指定できます。
  • 変更が UPDATE の場合、SharePlex は正しい行を見つけるために、キーと「変更された」列の値を使用して WHERE 句を構築します。変更をデータベースに適用する前に、Post プロセスはソース列の値の「プリイメージ」をターゲット列の「既存の」値と比較します。プリイメージ(前イメージとも呼ばれます)とは、それぞれ変更された列の、UPDATE 前の値を指します。プリイメージの値と既存ターゲットの値が一致した場合は、同期されている状態が確認できるので、Post が変更を適用します。もし一致しない場合は、Post が操作をエラーファイルにログし、SharePlex が「out-of-sync」エラーを返します。
  • 変更が、ソースマシンで複数行に影響する UPDATE 文または DELETE 文であった場合、SharePlex はターゲットに複数の文を発行し、作業を完了させます。たとえば UPDATE tableA set name = ‘Lisa’ where rownum < 101 という文は、ソースで 1 つの文のみが発行された場合でも、実際に 100 個の UPDATE 文をターゲットに送信します。

sp_cop について

SharePlex の概要 > sp_cop について

sp_cop プログラムは、SharePlex 複製プロセス(Capture、Read、Export、Import、Post)と SharePlex のキューを調整するほか、特定のタスクを実行するその他すべてのバックグラウンドプロセスを開始します。また、複製ネットワーク内の他のシステムとの通信を維持します。一般に、起動と停止を行う以外、ユーザーが sp_cop を操作することはほとんどありません。起動後は、sp_cop はバックグラウンドで稼働します。

  • SharePlex 管理者(SharePlex Admin グループのメンバ)のみが sp_cop を起動または停止できます。
  • sp_cop は、複製に関与するすべてのソースおよびターゲットシステム上で起動する必要があります。
  • すべての SharePlex プロセスがいつでも処理トランザクションを開始できるように、ソースシステム上のデータにユーザーがアクセスする前、またはアクセスしたら直ちに sp_cop を開始してください。これで、Capture をソースデータの変更に合わせることができます。
  • Capture がソーストランザクションの生成速度から遅れをとると、Capture が読み取りを終了する前に、REDO ログがラップする場合があります。ログラップは、オンラインの Oracle REDO ログのサイズと数が最大値に達し、Oracle が新しいログを既存のログに上書きし始めたときに発生します。ログラップ前に変更をキャプチャしきれなければ、SharePlex はアーカイブログを読み取りますが、それまでの間にソースデータとターゲットデータの間に許容範囲を超える遅延が生じる可能性があります。このようなケースでは、データを再同期した方が現実的です。

複製プロセスの詳細については、「SharePlex アーキテクチャについて」を参照してください。

sp_ctrl について

SharePlex の概要 > sp_ctrl について

sp_ctrl を使用して、SharePlex のアクティビティを開始、停止、設定、制御、監視するすべてのコマンドを発行します。sp_ctrl プログラムは sp_cnc(コマンドおよび制御)プロセスと内部で対話します。このプロセスは sp_cop の子プロセスで、コマンドを実行します。ユーザーが sp_cnc 自体と対話することはありません。

 

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating