Chat now with support
Chat with Support

SharePlex 11.4 - 管理者ガイド

このガイドについて このガイドで使用される表記規則 SharePlexの概要 SharePlexの実行 SharePlexの複数のインスタンスの実行 sp_ctrlでのコマンドの実行 SharePlexパラメータの設定 データレプリケーションの設定 コンテナデータベースとの間のレプリケーションの設定 名前付きキューの設定 分割レプリケーションの設定 変更履歴ターゲットへのレプリケーションの設定 レプリケーション戦略の設定 DDLレプリケーションの設定 エラー処理の設定 データトランスフォーメーションの設定 セキュリティ機能の設定 SharePlexユーザのセキュリティグループへの割り当て 本番システムでのレプリケーションの開始 SharePlexの監視 レプリケーションの問題の防止と解決 非同期データのrepair Captureプロセスの調整 Postプロセスの調整 Oracleフェールオーバー後のレプリケーションのリカバリ アクティブなレプリケーション環境に対する変更 Oracleアプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲットのOracleデータのバックアップ トラブルシューティングのヒント 付録A: ピアツーピア図 付録B: SharePlex環境変数

UNIXでの監視スクリプトの実行

UnixまたはLinuxでの監視スクリプトの実行

SharePlex監視スクリプトは、UnixまたはLinuxシステム上のレプリケーションに悪影響を及ぼす可能性のあるイベントや状況を通知します。これらのスクリプトは、sp_ctrlによる頻繁なステータスチェックを必要としない監視メカニズムとなります。これらは単独で実行することも、スケジュールされたジョブを通じて実行することもできます。

SharePlexには以下のスクリプトがあります。

  • sp_eventmonSharePlexのイベントログを監視し、特別なファイルで指定したエラーを報告します。
  • sp_logmonは、REDOログに入力される変更にCaptureがどの程度ペースを合わせているかを監視します。指定されたログ数だけCaptureがペースを失った場合、ログがラップする前にsp_logmonにより警告が発行されるため、対応処置を取ることができますOracleソースにのみ適用可能
  • p_psSharePlexのプロセスを監視し、1つ以上のプロセスが停止した場合に、ログがラップしたり、キューが使用可能なディスク容量を超えたりする前に問題を修正できるように通知します。
  • sp_qstatmonSharePlexのキューのステータスを監視し、定義されたしきい値制限値をバックログが超えた場合に警告を送信します。これにより、キューが利用可能なディスク容量を超え、レプリケーションに悪影響が出る前に、対応処置を取ることができます。
重要!
  • これらのスクリプトは、UnixまたはLinuxシステムでのみ実行されます。
  • SharePlexのパッチやアップグレードの際、監視スクリプトは新しいスクリプトで上書きされます。パッチやアップグレードをインストールする前に、既存のスクリプトの名前を変更し、カスタマイズした内容が保持されるようにしてください。パッチを適用したら、カスタマイズした新しいスクリプトを更新します。更新されたスクリプトを置き換えるために既存のスクリプトの名前を変更しないでください。重要!な改善や修正が失われる可能性があります。

監視スクリプトを使用するための要件

  • これらのスクリプトはkshシェルで実行する必要があります。
  • すべての監視スクリプトは、それらがインストールされたディレクトリに残っている必要があります。sp_ps以外はすべて、SharePlexのインストールディレクトリの.app-modulesディレクトリにあります。sp_psスクリプトは、インストールディレクトリのutilディレクトリにあります。

  • スクリプトは、Eメールのタイプや利用可能なページングなど、お客様の環境に合わせてカスタマイズする必要があります。
  • 監視スクリプトを使用するには、sp_cop-uname nameオプションを指定して起動します。nameには任意の識別子を指定できます。以下のように提案します。

    • SharePlexのポート番号
    • レプリケーションを監視するインスタンスのデータベース名
    • SharePlex管理者名

  • SharePlexは、監視スクリプトを実行する前に実行する必要があります。
  • 監視対象の各OracleインスタンスのORACLE_HOMEORACLE_HOMEディレクトリへのパスを確認しますOracleソースの場合のみ

  • 監視スクリプトではsp_ctrlコマンドを使用します。スクリプトを使用する前に、utilサブディレクトリで、SharePlex製品ディレクトリのbinサブディレクトリにあるsp_ctrlバイナリへのリンクを作成します。sp_ctrlへのパッチのメンテナンスが困難になるため、バイナリ自体をコピーしないでください。
  • 監視ユーティリティのユーザには以下の権限が必要です。

    • sp_ctrlへのローカルアクセスと、監視対象のsp_copが実行されているシステムでスクリプトを実行する権限。
    • UnixまたはLinuxコマンドラインからのKornkshシェルアクセスおよびps権限。
    • スクリプトが存在するディレクトリの読み取り、書き込み、および実行権限。
    • iwgrepユーティリティの権限は755でなければなりません。
  • 監視ユーティリティは、mailxプログラムを使用してEメール通知を送信します。スクリプトを使用する前に、監視スクリプトを展開するすべてのシステムでEメールを送信するようにmailxが設定されていることを確認してください。
  • ページングを行うには、サービスプロバイダがページングデバイスでのEメールの受信をサポートしている必要があります。
  • これらのスクリプトによって生成されたプロセスを終了するには、kill -9コマンドを使用します。killコマンドだけでは、すべてのプロセスを終了することはできません。

sp_logmonによるOracle Captureの監視

sp_logmon監視スクリプトを使用すると、データを再同期しなければならない状況を効果的に防ぐことができます。これはCaptureでの読み取りが完了する前にOracleのREDOログがラップされるためです。Oracleが現在書き込んでいるREDOロググループを監視し、SharePlexがどのログを読み込んでいるかを判断します。

Captureが指定されたログ数だけペースを失った場合、sp_logmonオプションが有効になっていれば、logmon.logファイルとEメールメッセージに警告が生成されます。これにより遅延の原因を修正し、必要に応じてアーカイブログを復元する時間が得られます。

sp_logmonの実行の準備

スクリプトを実行する前に以下のタスクを実行します。

要件の達成

このスクリプトを使用する前に、「監視スクリプトを使用するための要件ページを参照してください。

注意: このスクリプトはkshシェルで実行する必要があります。

Eメールアドレスの定義

Eメール通知機能を使用するには、スクリプトを実行する前に、スクリプトでEメールアドレスを定義します。

  1. SharePlexの製品ディレクトリのapp-modulesディレクトリにあるスクリプトを開きます。
  2. MailUserName=変数の後に任意の数のアドレス文字列を追加します。Eメールまたはポケットベルの完全なアドレスを使用してください。次の例のように複数のエントリをコンマで区切ります。

    MailUserName=scott@company.com,12345678910@pageservice.com

重要!スクリプトを修正する人がSharePlex以外のユーザの場合、以下のOracle権限を持っている必要があります。
  • CONNECT権限
  • V$LOGテーブルのSELECT権限
  • SharePlexの内部テーブルのSELECT権限

sp_logmonの実行

app-modulesからではなく、SharePlexの製品ディレクトリのutilディレクトリからスクリプトを実行します。utilディレクトリから実行すると、スクリプト自体を実行する前に、まず正しい環境をセットアップするユーティリティを実行するソフトリンクが作成されます。

構文:

nohup sp_logmon -p port -t interval -l integer [-m ] [/dev/null] &

表6: 必要な引数

引数 説明
nohup sp_logmon ユーザがログアウトした後もバックグラウンドで実行を継続するようにスクリプトに指示します。これにより継続的な監視が確実に実行されます。sp_logmonコンポーネントがスクリプトを実行します。
-p port 監視対象のsp_copのインスタンスのポート番号を設定します。それぞれにsp_logmonを実行し、この引数に異なる値を指定することで、SharePlexの異なるインスタンスを監視することができます。
-t interval スキャン間隔を秒単位で設定します。値は任意の正の整数です。
-l integer Oracleが書き込む場所とCaptureが読み込む場所の間のREDOログの最大許容数を設定します。この値は、sp_logmonによって生成される警告をトリガします。有効な値は、1からグループ内のREDOログの数までの正の整数です。
& バックグラウンドでスクリプトを実行します。

表7: オプションの引数

引数 説明
/dev/null 通知出力をローカルシステム上の/dev/nullデバイスにリダイレクトし、監視プロセスがバックグラウンドで続行されて、出力が生成されるようにします。出力を画面に表示するには、この引数を省略します。
-m e-mail/pagingオプションを有効にします。このパラメーターがないと、sp_logmonはエラーを単にログファイルに記録します。

 

sp_eventmonによるイベントの監視

sp_eventmon監視スクリプトは、SharePlexのイベントログevent_logを設定された間隔で監視し、主要なレプリケーションイベントに関連するエントリを探します。スキャンの間隔と、スクリプトで検出するエラーメッセージを定義できます。各スキャンは、システムへの影響を最小限に抑え、警告の重複を防ぐために、前回のスキャンが停止した場所から開始されます。

sp_eventmonスクリプトは、イベントログの各スキャンの後に以下のアクションを実行します。

  • sp_eventmonが定義されたエラーを検出すると、error.splexログファイルとEメールメッセージこのオプションが有効になっている場合に通知が出力されます。
  • 各エラー、エラーのイベントログ行番号、sp_copインスタンス名通常はポート番号、エラーの発生日時をログに記録します。
  • このスクリプトは、iwgrepプログラム、error_listファイル後述username.mrkという名前のマーカーファイルここで、usernameは、sp_eventmonを実行するときの-s引数で入力する文字列から派生するものに依存しています。これら3つのコンポーネントは、スクリプトと同じディレクトリに保持する必要があります。そのようにしないと機能しません。
    注意: username.mrkファイルは、警告メッセージがログとEメールまたはポケットベルに重複して送信されるのを防ぎます。このファイルがないと、スクリプトは、起動するたびにイベントログを最初からスキャンし始めます。直前に生成された警告が再度送信されます。

    sp_eventmonの実行の準備

    スクリプトを実行する前に以下のタスクを実行します。

    要件の達成

    このスクリプトを使用する前に、「監視スクリプトを使用するための要件ページを参照してください。

    注意: このスクリプトはkshシェルで実行する必要があります。

    エラーメッセージの定義

    sp_eventmonスクリプトは、SharePlexの製品ディレクトリのutilサブディレクトリにあるerror_listファイルにリストされたイベントをスキャンします。サポートされているエラーの詳細については、そのファイルをご覧ください。任意のASCIIテキストエディタで編集することにより、error_listファイルにカスタムエラー文字列を追加することができます。ファイルを開き、各エラー文字列を個別の行に配置します。

    IW_HOMEの設定

    スクリプトのIW_HOME変数は、各マシンで正しい値に設定する必要があります。この変数は、監視スクリプトとiwgrepが存在するディレクトリを指す必要があります。

    パスが正しくない場合は、以下のようにします。

    1. SharePlexの製品ディレクトリのapp-modulesディレクトリにあるスクリプトを開きます。
    2. 以下の例のようにパスを設定します。

      IW_HOME=/export/home/splex/monscripts

    Eメールアドレスの定義

    Eメール通知機能を使用するには、スクリプトを実行する前に、スクリプトでEメールアドレスを定義します。

    1. SharePlexの製品ディレクトリのapp-modulesディレクトリにあるスクリプトを開きます。
    2. MailUserName=変数の後に任意の数のアドレス文字列を追加します。Eメールまたはポケットベルの完全なアドレスを使用してください。次の例のように複数のエントリをコンマで区切ります。

      MailUserName=scott@company.com,12345678910@pageservice.com

    sp_eventmonの実行

    注意:
    • sp_eventmonの複数のインスタンスを実行する場合、各インスタンスは異なるオペレーティング・システム・ユーザ名で実行する必要があります。個username.mrkファイルのusernameはそれぞれ異なります。
    • sp_ctrltruncate logコマンドを使用して、sp_eventmonスクリプトを実行しているときにイベントログを頻繁にトランケートします。ログが大きくなりすぎると、iwgrepプログラムは、そのログから正しくgrepを実行できなくなります。truncate logコマンドを実行すると、username.mrkファイルが削除されます。次にsp_eventmonを実行すると、新しいファイルが作成されます。truncate logコマンドの詳細については、『SharePlexリファレンスガイド』を参照してください。

    • 既存のイベントログにエラーがあり、スクリプトが実行されている場合は、truncate logコマンドを実行してsp_cop_name.mrkファイルをトランケートします。ここで、sp_cop_nameは、スクリプトの実行時に-s引数で使用された値です。このファイルは、SharePlexの製品ディレクトリのutilサブディレクトリにあります。

    sp_eventmonを実行するには

    app-modulesからではなく、SharePlexの製品ディレクトリのutilディレクトリからスクリプトを実行します。utilディレクトリから実行すると、スクリプト自体を実行する前に、まず正しい環境をセットアップするユーティリティを実行するソフトリンクが作成されます。

    構文:

    nohup sp_eventmon -s 'sp_copname' -t interval -p path [-n name ] [-m] /dev/null &

    表8: 必要な引数

    コンポーネント 説明
    nohup sp_eventmon

    ユーザがログアウトした後もバックグラウンドで実行を継続するようにスクリプトに指示します。これにより継続的な監視が確実に実行されます。sp_eventmonコンポーネントがスクリプトを実行します。

    -s 'sp_copname'

    sp_cop-uオプションで起動されたときに使用したsp_copの名前を設定します。sp_copの名前は一重引用符で囲む必要があります。このパラメーターを複数回使用して、システム上の複数のsp_copインスタンスを監視することができます。このパラメーターがないとsp_eventmonは起動しません。

    &

    バックグラウンドでスクリプトを実行します。

    -t interval

    スキャン間隔を秒単位で設定します。値は任意の正の整数です。

    表9: オプショナルコンポーネント

    コンポーネント 説明
    -p path SharePlex変数データディレクトリへのパスを設定します。この変数がない場合、sp_eventmonはデフォルトのパスを想定します。
    /dev/null 通知出力をローカルシステム上の/dev/nullデバイスにリダイレクトし、監視プロセスがバックグラウンドで続行されて、出力が生成されるようにします。出力を画面に表示するには、この引数を省略します。
    -n name イベントログの名前がデフォルトの「event_log」以外の場合、その名前を設定します。
    -m e-mail/pagingオプションを有効にします。このオプションを指定しないと、sp_eventmonはエラーを単にログファイルに記録します。
  • sp_psによるプロセスの監視

    sp_ps監視ユーティリティは、指定されたsp_copインスタンスに関連する、子プロセスを含むすべてのSharePlexプロセスを監視します。一定間隔でプロセスをスキャンし、異常な状態を1つまたは複数のログファイルに報告します。1つまたは複数のシステムにインストールされた複数のSharePlexを監視することができ、単方向および双方向ピアツーピア設定をサポートします。

    sp_psの実行の準備

    スクリプトを実行する前に以下のタスクを実行します。

    要件の達成

    このスクリプトを使用する前に、「監視スクリプトを使用するための要件ページを参照してください。

    注意: このスクリプトはkshシェルで実行する必要があります。

    スキャン間隔の設定

    スキャン間隔は、sp_psプログラムがチェックの間に待つ時間を指定します。デフォルトは2,000秒です。別のスキャン間隔を指定するには、以下の手順に従ってください。

    1. SharePlexの製品ディレクトリのapp-modulesディレクトリにあるsp_psファイルを開きます。
    2. interval=パラメーターを必要なスキャン間隔に設定します。例えば、以下のように任意の正の整数を使用します。

      interval=1500

    Eメールアドレスの定義

    Eメール通知機能を使用するには、スクリプトを実行する前に、スクリプトでEメールアドレスを定義します。

    1. SharePlexの製品ディレクトリのutilディレクトリにあるスクリプトを開きます。
    2. MailUserName=変数の後に任意の数のアドレス文字列を追加します。Eメールまたはポケットベルの完全なアドレスを使用してください。次の例のように複数のエントリをコンマで区切ります。

      MailUserName=scott@company.com,12345678910@pageservice.com

    注意: sp_psでは、e-mail/pagingオプションがデフォルトで有効になっていますが、変更されていないことを確認してください。スクリプトでは、MAILOPTION=TRUEはEメール通知を有効にし、MAILOPTION=FALSEは無効にします。

    sp_psの実行

    SharePlexの製品ディレクトリのutilディレクトリからスクリプトを実行します。

    構文:

    nohup sp_ps ['sp_cop -u name'] CONFIGURATION [> /dev/null] [ &]

     

    表10: 必要な引数

    引数 説明
    nohup sp_ps ユーザがログアウトした後もバックグラウンドで実行を継続するようにスクリプトに指示します。これにより継続的な監視が確実に実行されます。sp_psコンポーネントがスクリプトを実行します。
    'sp_cop -u name' 複数のsp_copプロセスを複数実行している場合は、このパラメーターを使用します。これを使用して、監視する各プロセスを指定します。この引数は、-uオプションを指定してsp_copを起動したときに使用された名前と厳密に同じでなければなりません。-unameオプションがない場合、sp_psは、デフォルトのSharePlexのポート2100を使用するsp_copを監視することを想定しています。
    CONFIGURATION

    監視しているSharePlexのインスタンスの設定のタイプを指定します。この値は大文字で入力しなければなりません。有効な値:

    SOURCE – 単方向レプリケーションに使用し、ソースシステムのCapture、Read、およびExportプロセスを監視します。

    TARGET – 単方向レプリケーションに使用し、ターゲットシステムのImportおよびPostプロセスを監視します。

    MULTI-SOURCE – ピアツーピアレプリケーションに使用します。各システムのCapture、Read、Export、Import、およびPostプロセスを監視するようにスクリプトに指示します。

    注意: 同一システムのソーステーブルとターゲットテーブル間で複製する場合、ExportまたはImportプロセスはありません。

    > /dev/null 通知出力をローカルシステム上の/dev/nullデバイスにリダイレクトし、監視プロセスをバックグラウンドで続行して、出力を生成できるようにします。出力を画面に表示するには、この引数を省略します。
    & アンパサンドバックグラウンドでスクリプトを実行します。
    Related Documents

    The document was helpful.

    Select Rating

    I easily found the information I needed.

    Select Rating