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

Oracle からオープンターゲットへの複製のアクティベート

実稼動環境での複製のアクティベート > Oracle からオープンターゲットへの複製のアクティベート

Oracle ソースデータベースとオープンターゲットデータベースを同期するには、次の手順を使用します。Oracle から使用しているターゲットのタイプにコピーできるコピーユーティリティを使用する必要があります。SharePlex は、Oracle データの変更を複製し、コピーでターゲットが確立されるまで Post キューに保持します。ターゲットの準備が整ったら、SharePlex reconcile 機能を実行します。この機能により、Post はコピー後に発生した操作のみを適用し、コピー前にソースに対してコミットされた操作を破棄します。

実稼動ソースデータベースでのオーバーヘッド増加を避けるため、ミラーリングされたセカンダリ Oracle インスタンスからデータをコピーできます。この場合は、Oracle RMAN バックアップシステムを使用してセカンダリインスタンスをコピーの開始時点まで回復することも、セカンダリインスタンスへの手動バックアップを実行することもできます。手順にはこのオプションが含まれています。

重要!セカンダリインスタンスをデータコピーのソースとして使用する場合でも、SharePlex 設定ファイルは実稼動 Oracle インスタンスからオープンターゲットのターゲットに直接複製してください。セカンダリ Oracle インスタンスへの複製はありません。

事前の考慮事項

先に進む前に、以下の点をお読みください。

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

Oracle ソースおよびサポートされるターゲット

セカンダリ Oracle インスタンスをコピーのソースとして使用する場合、そのインスタンスは実稼動ソースインスタンスのミラーである必要があります。

サポートされる複製方法

カスケード以外のすべて。

必要条件

  • このドキュメントでは、選択したコピー方法の実行方法については説明しません。データベースのコピー方法に精通したユーザーがこの手順を実行してください。ターゲットデータベースをサポートし、Oracle データベースからデータをコピーできるコピー方法を使用してください。

  • (Linux/UNIX)セカンダリ Oracle インスタンスをコピーのソースとして使用する場合は、バックアップとの間で確立するインスタンスの oratab ファイルの ORACLE_SID および ORACLE_HOME が正しいことを確認します。SID はアクティベートする設定ファイルのルーティングマップで使用されている SID でなければなりません。
  • 設定ファイルをアクティベートするための要件をお読みください。設定をアクティベートするための要件
  • SharePlex データベースアカウントがソースおよびターゲットのデータベースに存在することを確認します。通常、このアカウントはインストール時に作成されます。詳細については、『SharePlex インストールガイド』を参照してください。
  • 開始する前にこの手順を確認してください。使用するコマンドの詳細については『 SharePlex リファレンスガイド』を参照してください。

使用される命名規則

この手順で、「ソース」は次のいずれかを表します。

  • 一方向レプリケーション設定のソースデータベースまたはシステム。
  • 集約(多対 1)レプリケーション設定のすべてのソースデータベースまたはシステム。

この手順で「ターゲット」システムとは、オープンターゲットデータベースまたはターゲットシステムを表します。

この手順では、SharePlex コマンドは複製設定のすべての sp_cop インスタンスに適用されます。これには、集約レプリケーションでのターゲットのすべての sp_cop プロセスが含まれます。

手順

  1. ソースおよびターゲットシステムで、SharePlex 製品ディレクトリ下の bin サブディレクトリから、sp_cop および sp_ctrl を実行します。
  2. ソースおよびターゲットシステムで、SharePlex プロセスが実行中であることを確認します。

    sp_ctrl> status

  3. ターゲットシステムで、Post プロセスを停止します。これで複製されたデータは、ターゲットデータベースがインスタンス化されて調整されるまで、post キュー内に蓄積されます。

    sp_ctrl> stop post

  4. セカンダリインスタンスからコピーを作成する場合は、バックアップを開始してそのインスタンスを確立します。バックアップが完了するまで待機してから、次の手順に進みます。
  5. ソースシステム上で設定をアクティベートします。

    sp_ctrl> activate config filename

  6. ソースシステムで、アクティベーションステータスを監視します。

    sp_ctrl> show activate

    注: sp_ctrl は、アクティベートが終了するまでこのコマンドで制御されます。

  7. 「アクティベートが完了したら」、ソースシステムのログファイルを切り替えます。

    svrmgr1> alter system switch logfile;

  8. 次のうちのいずれか 1 つを実行します。

    • ターゲットのシーケンス番号に調整するため、新しいログファイルのログシーケンス番号を書き留めます。

    • ターゲットの Oracle System Change Number(SCN)に調整するため、新しいログファイルの SCN を書き留めます。
  9. セカンダリインスタンスからコピーを作成する場合は、以下の作業を行います。

    1. シーケンス番号または SCN を記録したログを Oracle が完全に適用した時点まで、データベースを回復します。
    2. RESETLOGS オプションでデータベースを開きます。

      : 次の手順では、バックアップ時点後に発生した、複製された変更を適用します。

  10. コピーユーティリティを使用して、Oracle データを(該当する場合はセカンダリインスタンスから、または実稼動ソースから直接)オープンターゲットデータベースにコピーします。コピーが完了するまで待機してから、次の手順に進みます。
  11. [オプション]名前付き post キューを使用していて、キュー名が不明な場合は、qstatus コマンドを発行して名前を書き留めます。

    sp_ctrl> qstatus

  12. ターゲットシステムで、ターゲットテーブルのトリガを無効にします。
  13. ターゲットシステムで、チェック制約、および DML を実行するスケジュールされたジョブを無効にします。
  14. ターゲットシステムで、sp_ctrl を実行し、次のいずれかの reconcile コマンドを発行します。名前付き post キューを使用している場合、各キューに対してコマンドを発行します。

    • ログシーケンス番号に回復する場合は、前のステップで記録したログのシーケンス番号に置き換えます。

      sp_ctrl> reconcile queue queuename for datasource-datadest seq sequence_number

      例:reconcile queue SysA for o.prod1-r.rep1 seq 1234

    • SCN に回復する場合は、前のステップで記録した SCN に置き換えます。

      sp_ctrl> reconcile queue queuename for datasource-datadest scn scn_number

      例:reconcile queue SysA for o.prod1-r.rep1 scn 0123456789

      注: sp_ctrl は、調整プロセスが終了するまでこのコマンドで制御されます。

  15. [分割レプリケーションのみ]テーブルに垂直分割または水平分割レプリケーションを使用している場合は、不要な行や列をそれらのテーブルから削除します。
  16. ターゲットシステムで、Post プロセスを起動します。これで 2 つのインスタンスは同期され、SharePlex で同期が保持されるように、継続的に複製されます。

    sp_ctrl> start post

SharePlex の監視

SharePlex の監視

この章では、エラーを検出し、複製プロセスを監視するために SharePlex に用意されているツールの概要を説明します。他のミッションクリティカルなソフトウェアと同様に、SharePlex は処理に干渉する可能性がある状況またはイベントについて定期的に監視する必要があります。データ同期化の消失につながるものについてはなおさらです。

コンテンツ

SharePlex プロセスの表示と終了

SharePlex の監視 > SharePlex プロセスの表示と終了

以下の手順では、複製をすぐにシャットダウンする必要がある場合に SharePlex プロセスを強制的に終了する方法を説明します。通常の状況では、以下のトピックで説明するシャットダウン手順に従ってください。

Unix および Linux での SharePlex の実行

Windows での SharePlex の実行

Unix および Linux でのプロセスの表示と終了

UNIX および Linux システムでは、ps -ef | grep sp_ コマンドを使用して、実行中の SharePlex プロセスを表示できます。

  • sp_cop プロセスは root プロセスです。
  • 以下の子プロセスは、ソースシステム上の sp_cop によって生成されます。

    • Command および Control プロセス(sp_cnc
    • Capture(sp_ocap
    • Read(sp_ordr
    • Export (sp_xport)
  • 以下の子プロセスは、ターゲットシステム上の sp_cop によって生成されます。

    1. Command および Control プロセス(sp_cnc

    2. Import (sp_mport)
    3. Post(データベースが Oracle の場合は sp_opst_mt、データベースがオープンターゲットの場合は sp_xpst

それぞれの子プロセスの -uidentifier は、親の sp_cop プロセスと同じです。このため、sp_cop の複数のセッションが実行されているときに、関連するプロセスを簡単に識別できます。

Unix および Linux でプロセスを終了するには

$ killPID

または

$ kill -9PID

Windows での SharePlex プロセスの表示と終了

Windows システムで、SharePlex は Windows オペレーティングシステムではなく NuTCRACKER 運用環境によって管理されます。ただし、その他の Windows プログラムの場合と同様に、SharePlex プロセスを通常の方法で表示および終了できます。

Windows での SharePlex プロセスの表示

Windows システムでは、SharePlex プロセスは次の方法で表示できます。

  • SharePlex ソフトウェアに付属している tlist プログラムを使用してコマンドプロンプトコンソールから。
  • Windows タスクマネージャから。

Windows タスク マネージャでは、SharePlex は、SharePlex sp_cop プロセスを表す Sp_Copsrv.exe として表示されます。親にあたる Sp_Copsrv.exe サービスは、オペレーティングシステムが制御します。親プロセスの Sp_Copsrv.exe は、各複製プロセス(Capture、Read、Export、Import、Post、sp_ctrl など)につき、子プロセスの Sp_Copsrv.exe を 1 つずつ生成します。

デフォルトキューを介して 1 つのターゲットシステムに複製を行う標準的な一方向の設定では、Windows システム上に以下のプロセスがあります。

ソースシステム側:

  • 1 つの Sp_Copsrv.exe 親プロセス
  • 1 つの Sp_Ocap (Capture)プロセスと 1 つの Sp_Copsrv.exe 子プロセス
  • 1 つの Sp_Ordr(Read) プロセスと1 つの Sp_Copsrv.exe 子プロセス
  • 1 つの Sp_Xport(Export) プロセスと1 つの Sp_Copsrv.exe 子プロセス
  • 他にも sp_ctrl などの SharePlex プロセスが実行されている場合は、そのプロセスごとに Sp_Copsrv.exe プロセスが追加されます。

ターゲットシステム側:

  • 1 つの Sp_Copsrv.exe 親プロセス
  • 1 つの Sp_Mport(Import) プロセスと 1 つの Sp_Copsrv.exe 子プロセス
  • 1 つの Sp_Opst_Mt(Oracle Post)または Sp_Xpst(オープンターゲット Post)プロセスと 1 つの Sp_Copsrv.exe 子プロセス
  • 他にも sp_ctrl などの SharePlex プロセスが実行されている場合は、そのプロセスごとに Sp_Copsrv.exe プロセスが追加されます。

アクティブな複製設定がない場合は、サービスを開始したときに SharePlex プロセスは開始されず、親の Sp_Copsrv.exe のみが実行されます。

Windows タスクマネージャで親 Sp_Copsrv.exe プロセスを特定するには、使用しているメモリ量が最も大きいプロセスを探します。子 Sp_Copsrv.exe プロセスが消費するメモリは、親プロセスよりも少なくなります。

ある子 Sp_Copsrv.exe プロセスと関連付けられている複製プロセスを特定するには、その複製プロセスがいつ起動したかを示すメッセージを SharePlex Event ログで調べます。このエントリには、そのプロセスの PID と、関連付けられている Sp_copsvr.exe プロセスの PID が記載されています。

Windows での SharePlex プロセスの終了

Windows システムでは、SharePlex プロセスを次の方法で終了できます。

  • Windows タスクマネージャ:1 回で 1 つの SharePlex プロセスを終了します。
  • KillSharePlex.bat:バッチファイルを使用して、1 回ですべての SharePlex プロセスを終了します。

タスクマネージャでプロセスを終了するには

  1. Control | AltDelete を押します。
  2. お使いの Windows バージョンに応じて、タスク マネージャーの起動 または タスク マネージャー を選択します。
  3. プロセス タブをクリックします。
  4. (オプション)プロセスを名前でソートします。
  5. kill するプロセスを選択します。
  6. End Process]をクリックします。

KillSharePlex.bat ですべてのプロセスを終了するには

SharePlex 製品ディレクトリの bin サブディレクトリから KillSharePlex.bat を実行します。

:このツールは、すべての SharePlex プロセスを表示せずに終了します。ユーザープロンプトや確認メッセージは表示されません。

イベントおよびエラーの表示

SharePlex の監視 > イベントおよびエラーの表示

SharePlex はエラーやその他の異常終了を、次のように報告します。

Event ログ

SharePlex では、操作のエラー、注意、および警告条件がイベントログに報告されます。このログは、常時の複製活動、エラー、およびイベントの段階的な記録を提供します。イベントログは、問題が発生した一連のイベントを再生するのに役立ちます。

複製イベントの例には次のものがあります。

  • sp_cop または複製プロセスの起動または停止
  • sp_ctrl でのコマンドの実行。ユーザーが発行するコマンドは、発行されるすべての SharePlex コマンドで記録されます。

    注: 以下の例のように、ユーザーが発行するコマンドはイベントログに Notice として記載されます。

    Notice 08-07-02 16:13:24.641582 23696 1 User command: rjones activate config 1route (from mycomp14)

  • データベースエラー
  • ネットワーク接続または SharePlex プロセスの障害
  • ユーティリティまたはスクリプトの起動または停止
  • ユーザーのログインまたはログアウト

イベントログの各エントリには以下の情報が含まれます。

  • イベントが発生した日付と時刻。
  • イベントの説明および関連メッセージ(エラーであるか、エラーでないか)。
  • イベントのプロセス ID 番号(SharePlex プロセスと関連付けられている場合)。

イベントログを表示するには

sp_ctrlshow log コマンドを使用するか、SharePlex 変数データディレクトリの log サブディレクトリ内の event_log という名前のファイルを開きます。

SharePlex には、このログを無人で監視するためのスクリプトが用意されています。「sp_eventmon によるイベントの監視」を参照してください。

Status Database

Status Database には、sp_ctrl ユーザーインターフェイスでエラーメッセージや警告を生成しなかったイベントを含めて、イベントログに報告された条件のサマリが格納されます。この情報は、潜在的な問題を発見したり、既存の問題を解決したりするのに役立ちます。Status Database からイベントログを参照して、警告、通知またはイベントのより詳細な説明が得られます。

Status Database を表示するには

sp_ctrlshow statusdb コマンドを使用するか、SharePlex 変数データディレクトリの data サブディレクトリ内のファイルを開きます。

エラーログ

Post プロセスによってソースとターゲットのテーブルが非同期であることが検出された場合、非同期のトランザクションの最初の 100 個の SQL 文とデータが、ターゲットシステムのエラーファイルに記録されます。このログを使用して非同期の範囲を判断し、状況が深刻でない場合はまず問題の原因を解決した後、SQL 文を使用してターゲットテーブルを修復することができます。

エラーログを表示するには

SharePlex 変数データディレクトリの log サブディレクトリ内の ID_errlog.sql ファイルを開きます(ここで、ID はターゲットデータベースなどの SharePlex ターゲットの識別子です)。

プロセスログ

SharePlex プロセスがレコードを処理できない場合、イベントログに加えてプロセスログファイルにもレコードが記録されます。プロセスログは、主にデバッグに使用されます。

プロセスログの名前は、データソース識別子(ORACLE_SID など)、プロセスの短縮名前ocapordoporcl など)、ファイル番号ファイル拡張子.log)で構成されます。

Capture:ora10_ocap02.log

Read:ora10_ord01.log

Post:ora10_opo03.log

Reconcile:ora10_rcl01.log

古いログファイルのエージングは循環パターンで実行されます。番号は 01 で始まり、03 で終わります。現在のログを含めて、いつでも最大 3 つのログが存在できます。3 つのログがすべていっぱいになると(50 MB)、プロセスは最も古いログから上書きを開始します。

プロセスログを表示するには

SharePlex 変数データディレクトリの log サブディレクトリ内のファイルを開きます。

アクティベーションログ

設定をアクティベートすると、ログが生成されます。

アクティベーションログを表示するには

SharePlex 変数データディレクトリの log サブディレクトリ内の SID_oconf##.log ファイルを開きます。

compare/repair ログ

compare および repair コマンドでは、エラー、メッセージ、警告がログに記録されます。これらのログの詳細については、『SharePlex リファレンスガイド』の compare コマンドに関する説明を参照してください。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating