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

Windows での SharePlex の実行

SharePlex の実行 > Windows での SharePlex の実行

Windows では、SharePlex は SharePlex port# という名前のサービスとして実行されます。ここで、port#SharePlex の特定のインスタンスによって使用されるポート番号です。このサービスは、SharePlex のインストール時にインストールすることも、後で SharePlex SpUtils プログラムを実行してインストールすることもできます。SpUtils の詳細については、『 SharePlex リファレンスガイド』を参照してください。

注: sp_cop を Windows プラットフォームで開始または停止するようにドキュメントやその他の手順で指示されている場合、SharePlex サービスを起動または停止することを意味します。

Windows での起動シーケンス

複製に関与するシステムを起動するときは、以下の順序でコンポーネントを起動してください。

  1. システムを起動します。
  2. ソースとターゲットのデータベースを起動します。
  3. Windows の管理ツール(コントロールパネル)で NuTCRACKER サービスを起動します。これで、MKS Toolkit® 運用環境が起動します。SharePlex を実行するには、この環境が動作している必要があります。MKS Toolkit の詳細については、『SharePlex インストールガイド』を参照してください。
  4. SharePlex port# サービスを起動します。詳細については、次を参照: Windows での SharePlex の起動および停止
  5. SharePlex 製品ディレクトリの bin サブディレクトリから sp_ctrl を開始します。
  6. sp_ctrllstatus コマンドを発行して、SharePlex プロセスが開始されたことを確認します。

    sp_ctrl> lstatus

Windows での SharePlex の起動および停止

Windows で SharePlex を起動または停止する唯一の方法は、SharePlex サービスを起動または停止することです。このサービスを制御するには、SpUtils ユーティリティまたは Windows の管理ツール(コントロールパネル)を使用します。

注: SharePlex サービスを起動すると、SharePlex 複製プロセス(Capture、Read、Export、Import、および Post)が自動的に開始されます。サービスの起動時にこれらのプロセスを開始したくない場合は、SharePlex サービスをシャットダウンする前に sp_ctrlstop コマンドを使用して停止する必要があります。開始したいプロセスごとに start コマンドを発行しない限り、これらのプロセスは停止したままになります。

SharePlex サービスを SpUtils で制御するには

SpUtils を使用して、SharePlex サービスのインストール、起動、停止、およびステータスチェックを実行します。

  1. Windows に SharePlex Administrator としてログオンします。ユーザー名は、SharePlex admin グループに割り当てられている必要があります。詳細については、次を参照: セキュリティグループへの SharePlex ユーザーの割り当て
  2. Windows サービスを表示して、NuTCRACKER サービスが実行中であることを確認します。必要に応じて、起動します。
  3. デスクトップのショートカットまたは プログラム メニューから SpUtils ユーティリティを実行します。
  4. ユーティリティの SharePlex Services タブをクリックします。
  5. 制御する SharePlex インスタンスのポート番号を選択します。
  6. 次のうちのいずれか 1 つを実行します。

    • Install をクリックして、サービスをインストールします。Install が表示されない場合、サービスは存在しています。
    • Start をクリックして、サービスを起動します。Current State にサービスが実行中であると表示されていれば、ユーティリティを閉じることができます。Start が表示されない場合、サービスはすでに実行中であるか、インストールされていません。
    • Stop をクリックして、サービスを停止します。Stop が表示されない場合、サービスはすでに停止しているか、インストールされていません。

    注:sp_ctrl で shutdown コマンドを使用して、SharePlex サービスを停止することもできます。

SharePlex サービスを Windows から制御するには

SharePlex サービスは、SharePlex port# という名前のエントリとして、管理ツール コントロールパネルの サービス コンソールに表示されます。サービス名を右クリックして、サービスを開始または停止します。

Windows での SharePlex 起動ステータスの設定

SharePlex の起動のタイミングを変更できます。デフォルト(Automatic)では、サービスはシステムの起動時に起動します。この作業を実行するには、必要に応じて、システム管理者にご相談ください。

  1. 管理ツール コントロールパネルの サービス コンソールを開きます。
  2. SharePlex サービス名を右クリックして、プロパティ をクリックします。
  3. スタートアップの種類 リストから、必要なスタートアップオプションを選択します。サポートが必要であれば、このダイアログの ヘルプ リンクをクリックします。

Windows での SharePlex プロセスの優先順位の設定

重要! Windows 標準のタスクマネージャを使用して、SharePlex プロセスの優先順位を設定しないでください。

Windows システムでは、NuTCRACKER 運用環境が SharePlex プロセスを制御します。SpUtils ユーティリティには、プロセスの優先順位の設定に必要な管理者特権で Windows のタスクマネージャを実行できるオプションがあります。この手順は、SharePlex 管理者が実行する必要があります。システム管理者に確認して、システムで実行中のあらゆるソフトウェアの要件に基づいた適切な値を選択します。

SharePlex の優先順位を設定するには

  1. SpUtils を実行します。
  2. TaskMgr タブを選択します。
  3. 優先度を設定する SharePlex インスタンスを右クリックします。
  4. Set Priority を選択して、必要な優先度レベルを選択します。

Windows での SharePlex プロセスの特定

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 を短時間で安全にシャットダウンできます。次に SharePlex を起動すると、複製は REDO ログまたはアーカイブログの正しい位置で適宜再開されます。ただし、トランザクションアクティビティがある間は SharePlex を実行したままにすることがベストプラクティスです。そうしないと、SharePlex を再起動したときに大量の redo バックログの処理が必要になる可能性があり、ソースデータとターゲットデータの間に遅延が生じます。

redo ログがラップし、アーカイブログにアクセスできない場合は、ソースデータとターゲットデータを再同期するしかありません。redo の生成中に SharePlex を停止する場合は、この可能性を考慮してください。

注: SharePlex とデータベースの両方をシャットダウンする場合は、SharePlex を先にシャットダウンしてください。先にデータベースをシャットダウンすると、SharePlex はデータベースに障害が発生したと解釈し、警告メッセージを生成します。

SharePlex を停止する代わりに、sp_ctrlstop コマンドを使用して、個々の SharePlex 複製プロセスを適宜停止できます。このコマンドの詳細については、『リファレンスガイド』を参照してください。

複数の SharePlex インスタンスの実行

複数の SharePlex インスタンスの実行

この章では、単一のマシン上で複数の SharePlex インスタンスを設定して実行する方法を説明します。たとえば、複数のソースシステムから中央のターゲットシステムに複製を行うように設定されている場合は、複数の sp_cop インスタンスを実行して、複製ストリームを分けます。

コンテンツ

別個のインストールからの複数の SharePlex インスタンスの実行

複数の SharePlex インスタンスの実行 > 別個のインストールからの複数の SharePlex インスタンスの実行

重要! このトピックは、アクティブな設定がないことを前提としています。また、sp_cop の複数のインスタンスを複製環境の初期セットアップの一部として設定していることを前提としています。

この方法では、バイナリと変数データディレクトリの間が 1 対 1 の関係となります。この手順では、自律型の複数の SharePlex インスタンスを作成します。これらの間に共通するものはありません。それぞれの SharePlex インスタンスは個別に起動、制御、保持します。特別なセットアップ要件はありません。

この方法には、以下のメリットがあります。

  • プロセスを簡単に分離できます。正しいポートおよび変数データディレクトリを指し示すための環境変数を設定する必要がありません。
  • アップグレードまたはその他のメンテナンスタスクは一度に 1 つの製品ディレクトリに対して実行できます。また、これらのタスクを実行しないこともできます。
  • 1 つのシステム上で同じバージョンまたは異なるバージョンの SharePlex を実行できます。

デメリットは以下のとおりです。

  • それぞれのインストールを別個にインストールおよびアップグレードする必要があります。
  • 製品ファイルを格納するためにより多くのディスクスペースが必要になります。
  • 環境変数を SharePlex コンポーネントにマップする必要があるスタートアップスクリプト、シャットダウンスクリプト、およびその他の場所で、それぞれのインストールに対して環境変数をマップする必要があります。

この設定で SharePlex の複数のインスタンスをセットアップするには、次の手順に従います。

  • それぞれを個別にインストールします。インストールごとに 1 つの製品ディレクトリと 1 つの変数データディレクトリが存在する必要があります。
  • それぞれを異なる TCP/IP ポート番号に対してインストールします。
  • 重要! インストールごとに異なるデータベースアカウントを作成してください。

SharePlex をインストールする方法については、『SharePlex インストールガイド』を参照してください。

1 つのインストールからの複数の SharePlex インスタンスの実行

複数の SharePlex インスタンスの実行 > 1 つのインストールからの複数の SharePlex インスタンスの実行

重要! このトピックでは、アクティブな設定がないことを前提としています。また、sp_cop の複数のインスタンスを複製環境の初期セットアップの一部として設定していることを前提としています。

この方法では、バイナリのセットと複数の変数データディレクトリの関係が 1 対多となります。この設定では、複数の変数データディレクトリを作成し、その各ディレクトリを、sp_cop の別個のインスタンスが実行される一意のポート番号にリンクします。この方法には、以下のメリットがあります。

  • インストールおよびアップグレードする SharePlex のインストールが 1 つで済みます。1 つのインストールに対してのみメンテナンス手順を実行します。
  • 1 セット分の SharePlex バイナリおよびインストールファイルのみを格納すれば済むため、ディスクスペースを節約できます。
  • SharePlex 監視スクリプトのカスタマイズは、1 つの場所で 1 回行うだけで済みます。詳細については、次を参照: Unix での監視スクリプトの実行
  • スタートアップスクリプトおよびシャットダウンスクリプトは、1 つのバイナリセットに対して作成および実行すれば済みます。

デメリットは以下のとおりです。

  • プロセスをそれぞれのインスタンスに指示する必要があります。インスタンスごとに環境変数を設定し、各インスタンスの正しい識別子を使って sp_cop を開始する必要があります。さらに、コマンドを適切なインスタンスに送るために sp_ctrl でポート接続を設定する必要があります。
  • アップグレードは、SharePlex のすべてのインスタンスに適用されます。
  • すべての sp_cop インスタンスが同じ SharePlex バージョンになります。

Unix と Linux で複数の sp_cop インスタンスを実行する方法

同じ Unix または Linux マシンで複数の SharePlex のインスタンスを実行するには、sp_cop プログラムの複数のインスタンスをそれぞれ異なるポート番号で実行します。各 sp_cop を異なる変数データディレクトリにリンクします。各変数データディレクトリは、その sp_cop のポート番号で識別されます。ソースまたはターゲットデータストアへの接続情報は、sp_cop の各インスタンスにリンクされます。

1.ポート番号を割り当てる

sp_copそれぞれのインスタンスに一意のポート番号を割り当てます。

  • sp_cop のインスタンスごとに、TCP および UDP 通信用にそのインスタンスで使用されるポート番号を 1 つ取得します。
  • sp_cop の各インスタンスでは、設定しているインスタンスと同じ複製データストリームを処理する sp_cop のリモートインスタンスに同じポート番号を使用します。

sp_cop プロセスは TCP および UDP ポートのそれぞれのシステム上で ネットワーク内の他のシステム上の SharePlex プロセスからの通信、たとえば、コマンドまたは Export プロセスと Import プロセス間のやりとりなどを待ちます。ポートが異なっている場合、あるシステム上の sp_cop は、別のシステム上の sp_cop に接続してメッセージの送信や受信ができません。

2.変数データディレクトリを作成する

sp_cop のインスタンスごとに、変数データディレクトリを作成し、それぞれを取得したポート番号のいずれかに割り当てます。変数データディレクトリには、SharePlex インスタンスに一意の環境が格納されます。

  1. 『SharePlex インストールガイド』の説明に従って SharePlex をインストールします。インストールの最後には、1 つの製品ディレクトリ、ポート番号と関連付けられた 1 つの変数データディレクトリ、および 1 つのデータベースアカウントが作成されていることになります。これが、SharePlex の基本インスタンスです。
  2. root ユーザーとしてログインします。
  3. sp_cop をシャットダウンします(実行されている場合)。
  4. 元の変数データディレクトリを(サブディレクトリとともに)、実行する sp_cop の各インスタンスの新しい変数データディレクトリにコピーします。以下の例に示すように、それぞれの名前にポート番号を含めます。

    cp -p -r /splex/vardir/splex2100 /splex/vardir/splex2101

    cp -p -r /splex/vardir/splex2100 /splex/vardir/splex2102

3.SharePlex 環境でポート番号を定義する

作成した変数データディレクトリごとに、この手順を実行して、SharePlex のこのインスタンス用に予約したポート番号を設定します。

  1. SP_SYS_VARDIR 変数をエクスポートして、新しい変数データディレクトリの 1 つを指し示します(たとえば、前の例の splex2101)。

    ksh シェルの場合:

    export SP_SYS_VARDIR=/full_path_of_variable-data_directory

    csh シェルの場合:

    setenv SP_SYS_VARDIR /full_path_of_variable-data_directory

  2. SP_COP_TPORT 変数と SP_COP_UPORT 変数をエクスポートして、エクスポートした変数データディレクトリのポート番号を指し示します。

    ksh シェルの場合:

    export SP_COP_TPORT=port

    export SP_COP_UPORT=port

    csh シェルの場合:

    setenv SP_COP_TPORT port

    setenv SP_COP_UPORT port

  3. -u オプションを指定して sp_cop を開始します。ここで、port は、エクスポートした変数データディレクトリに割り当てられているポート番号です。(-u とポート番号の間にはスペースを挿入しません)。

    $ /productdir/bin/sp_cop -uport&

  4. 以下のコマンドを発行して、エクスポートした変数データディレクトリのポート番号を設定します。

    sp_ctrl> set param SP_COP_TPORT port

    sp_ctrl> set param SP_COP_UPORT port

  5. sp_cop をシャットダウンします。
  6. エクスポートした変数データディレクトリの rim サブディレクトリで、shstinfo.ipc および shmaddr.loc ファイルを削除します(この変数データディレクトリに対して sp_cop を開始したことがない場合、これらのファイルは存在しないことがあります)。
  7. 変数データディレクトリごとに、手順 1 からこの手順を繰り返します。

4.ソースまたはターゲットデータストアへの接続を確立する

sp_cop インスタンスごとに、SharePlex がこの SharePlex インスタンスのソースまたはターゲットデータにアクセスするための接続を確立します。

  1. SP_SYS_VARDIR 変数をエクスポートして、新しい変数データディレクトリの 1 つを指し示します(たとえば、例の splex2101)。

    ksh シェルの場合:

    export SP_SYS_VARDIR=/full_path_of_variable-data_directory

    csh シェルの場合:

    setenv SP_SYS_VARDIR /full_path_of_variable-data_directory

  2. データベースの適切なデータベースセットアップユーティリティを実行します。詳細については、『 SharePlex リファレンスガイド』の「ユーティリティ」セクションを参照してください。

  3. 変数データディレクトリごとに、これらの手順を繰り返します。

5.sp_cop インスタンスを開始する

これで、必要に応じて sp_copsp_ctrl の別個のインスタンスを実行できます。

  1. SP_SYS_VARDIR 環境変数をエクスポートして、最初の sp_cop インスタンスの変数データディレクトリを指し示します。

    ksh シェルの場合:

    export SP_SYS_VARDIR=/full_path_of_variable-data_directory

    csh シェルの場合:

    setenv SP_SYS_VARDIR /full_path_of_variable-data_directory

  2. -u オプションを使用して sp_cop を開始します。ここで、port は、sp_cop インスタンスに割り当てられているポートです。

    /splex/proddir/bin/sp_cop -u port &

  3. sp_ctrl で、port コマンドを使用して、コマンドの対象の sp_cop インスタンスのポート番号へのセッションを設定します。

    ./sp_ctrl

    port number

  4. 実行する sp_cop の各インスタンスでこれらの手順を繰り返します。

注: 以下のようなエラーメッセージが表示される場合は、他のユーザーによって開始された、同じポート番号と変数データディレクトリを使用する sp_cop のセッションがないかどうかを確認します。許容される場合は、そのセッションに関連するプロセスを kill し、改めて sp_cop を開始します。

Error cleaning up previous shared memory segment ###.

Cannot delete because there are users attached.

Check if SharePlex processes are running and kill them if necessary.

Windows で複数の sp_cop インスタンスを実行する方法

同じ Windows マシン上で SharePlex の複数のインスタンスを実行するには、インスタンスごとに SharePlex サービスをインストールおよび実行し、それぞれ異なるポート番号および変数データディレクトリを割り当てます。

1.インスタンスをインストールする

  1. 『SharePlex インストールガイド』の説明に従ってソースシステムとターゲットシステムに SharePlex をインストールします。これで、SharePlex の初期インスタンスが作成されます。
  2. 作成する SharePlex インスタンスごとにインストール手順を繰り返します。この際、以下のように異なる設定を使用します。

    • 各インスタンスに対して同じ製品ディレクトリを使用します。
    • インスタンスごとに異なる変数データディレクトリを選択または作成します。
    • インスタンスごとに異なるポート番号を選択します。インストールプログラムは利用可能なポートを検出しますが、必要に応じて別のポートを優先することもできます。
    • ライセンスキーを求められた場合は、すべてのインスタンスに同じライセンスキーを使用します。毎回必ず適切なポートを選択してください。
    • データベースセットアップを実行するときは、インスタンスの適切なポート番号を使用し、データベースアカウントごとに異なる名前を使用します。

2.SharePlex インスタンスを開始する

SpUtils ユーティリティを使用してすべてのインスタンスを制御します。

  1. SharePlex の管理者(spadmin グループのメンバ)として Windows にログオンします。
  2. SpUtils ユーティリティを実行します。
  3. SharePlex Services タブを選択します。
  4. 開始する SharePlex のインスタンスのポート番号を選択します。
  5. SharePlex Service Status で、Start をクリックします。インスタンスのサービスが開始されます。
  6. [Current State]テキストボックスにサービスが開始されたことが表示されたら、他の SharePlex インスタンスを開始できます。
  7. インスタンスの Sp_Ctrl を実行します。
  8. Sp_Ctrl で、port コマンドを使用して、コマンドの対象の sp_cop インスタンスのポート番号へのセッションを設定します。

    sp_ctrl > port number

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating