Chat now with support
Chat with Support

SharePlex 8.6.6 - リファレンス・ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex コマンド SharePlex パラメータ SharePlex ユーティリティ 付録 B:SharePlex 環境変数

設定スクリプト

SharePlex ユーティリティ > 設定スクリプト

説明

SharePlex には、Oracle ソースオブジェクトを指定するための設定ファイルの作成を自動化する以下のスクリプトが用意されています。

  • config.sql:データベース内のすべてのテーブルおよびオプションですべてのシーケンスを設定します。
  • build_config.sql:スキーマ内の複数のテーブルまたはすべてのテーブルを設定します。

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

Oracle

config.sql の使用

config.sql スクリプトを使用すると、データベースの全スキーマにあるすべてのテーブル、およびオプションですべてのシーケンスをリスト化した設定を作成できます。このスクリプトを使用すると、データベース全体を同一のセカンダリデータベースに複製する高可用性複製方法またはその他のシナリオを確立する時間を節約できます。

config.sql 使用の条件
  • ソースとターゲットのテーブル名が同一でなければなりません。

  • このスクリプトでは、SYS、SYSTEM、および SharePlex スキーマ内のオブジェクトは設定されません。これらのスキーマは、システムおよびインスタンス仕様のため、複製できません。
  • スクリプトは、分割レプリケーションをサポートしていません。copy config コマンドを使用してスクリプトによって作成された設定ファイルをコピーし、edit config コマンドを使用して分割レプリケーションを使用するテーブルのエントリを追加できます。新しい設定ファイルをアクティベートします(元の設定ファイルではありません)。
  • edit config コマンドを使用し、設定構築後必要に応じて変更を行うことができます。

config.sql を実行するには

  1. ディレクトリを SharePlex 変数データディレクトリの config サブディレクトリに変更します。config.sql スクリプトを実行すると、現在の作業ディレクトリに設定が配置されます。SharePlex 設定は config サブディレクトリ内に存在する必要があります。

    cd /vardir/config

  2. SQL*Plus にシステムとしてログオンします。
  3. SharePlex 製品ディレクトリの util サブディレクトリから完全パスを使用して config.sql を実行します。

    @ /proddir/util/config.sql

以下のテーブルを参考にしてプロンプトに応答します。

プロンプト 入力する項目
Target machine ターゲットマシンの名前(たとえば SystemB)。
Source database SID ソース(プライマリ)Oracle インスタンスの ORACLE_SID(たとえば oraA)。o. キーワードは含めないでください。ORACLE_SID には、英大文字と小文字の区別があります。
Target database SID ターゲット(デスティネーション)Oracle インスタンスの ORACLE_SID(たとえば oraB)。o. キーワードは含めないでください。ORACLE_SID には、英大文字と小文字の区別があります。
Replicate sequences シーケンスを複製する場合は y を入力し、シーケンスを複製しない場合は n を入力します。
Shareplex oracle username ソースデータベース内の SharePlex ユーザーの名前。このエントリにより SharePlex スキーマが複製されなくなり、複製の問題が発生する可能性があります。有効な名前が提供されない場合、スクリプトは機能しません。

注: SharePlex によって、config.fileの名前が設定に割り当てられます。スクリプトを再度実行して追加の設定ファイルを作成した場合、最初のファイルが上書きされます。元のファイルを保存するには、別の名前で 2 番目のファイルを作成します。

次の手順

  • テーブルまたは所有者名で大文字と小文字が区別される場合は、sp_ctrledit config コマンドを使って設定ファイルを開き、テキストエディタを使って大文字と小文字が区別されるテーブルおよび所有者名を二重引用符で囲みます(例:"scott"."emp")。このスクリプトは、大文字小文字の区別を採用するために Oracle が必要とする引用符を追加しません。

    sp_ctrl> edit config filename

  • 設定が正しい場所にあることを保証するために、list config コマンドを発行します。設定の名前が表示されない場合は、設定が誤ったディレクトリに作成されています。ファイルを見つけて変数データディレクトリの config サブディレクトリに移動します。

    sp_ctrl> list config

build_config.sql の使用

build_config.sql スクリプトはスキーマの複数の(またはすべての)テーブルを含む設定を構築することを可能にします。これは、設定の各構成要素をプロンプトする、インタラクティブなスクリプトです。各オブジェクトおよびルーティングの情報を個別に入力する代わりに、ワイルドカードを使用して特定のテーブルを一度に選択したり、スキーマの全テーブルを選択したりすることができます。

build_config.sql を使用する条件
  • ソースとターゲットのテーブル名が同一でなければなりません。
  • スクリプトではシーケンスはサポートされません。スクリプトで作成された設定をアクティベートする前に、sp_ctrledit config コマンドを使用してシーケンスのエントリを追加できます。
  • スクリプトは、分割レプリケーションをサポートしていません。copy config コマンドを使用してスクリプトによって作成された設定をコピーし、edit config コマンドを使用して分割レプリケーションを使用するテーブルのエントリを追加できます。(元の設定ではなく)新しい設定をアクティベートします。
  • このスクリプトでは、SYS、SYSTEM、および SharePlex スキーマ内のオブジェクトは設定されません。これらのスキーマは、システムおよびインスタンス仕様のため、複製できません。
  • 異なるスキーマに対して build_config.sql を実行し、テキストエディタを使用してこれらの設定を 1 つの設定に結合できます。ファイルの最初の非コメント行である Datasource:o.SID 行以外はすべて削除してください。ファイルは config サブディレクトリから移動しないてください。
  • edit config コマンドを使用し、設定構築後必要に応じて変更を行うことができます。

build_config.sql を実行するには

  1. ディレクトリを SharePlex 変数データディレクトリの config サブディレクトリに変更します。build_config.sql スクリプトを実行すると、現在の作業ディレクトリに設定が配置されます。SharePlex 設定は config サブディレクトリ内に存在する必要があります。

    cd /vardir/config

  2. SQL*Plus にシステムとしてログオンします。
  3. SharePlex 製品ディレクトリの util サブディレクトリから完全パスを使用して build_config.sql を実行します。

    @ /proddir/util/build_config.sql

以下のテーブルを参考にしてプロンプトに応答します。

プロンプト 入力する項目
Target machine ターゲットマシンの名前(たとえば SystemB)。
Source database SID ソース(プライマリ)Oracle インスタンスの ORACLE_SID(たとえば oraA)。o. キーワードは含めないでください。ORACLE_SID には、英大文字と小文字の区別があります。
Target database SID ターゲット(デスティネーション)Oracle インスタンスの ORACLE_SID(たとえば oraB)。o. キーワードは含めないでください。ORACLE_SID には、英大文字と小文字の区別があります。
Owner of the source database tables ソーステーブルの所有者。
Owner of the target database tables ターゲットテーブルの所有者。
Table name to include (blank for all)

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

  • Enter を押してデフォルトを受け入れます。これにより、ソースの所有者に属するすべてのテーブルが選択されます。
  • ワイルドカード(%)文字と文字列を入力して特定のテーブルを選択します(たとえば %e_salary%)。
  • 個々のテーブル名を入力します。
Name of the output file to create 設定の名前。このスクリプトはファイルに .lst 拡張子を指定します(たとえば Scott_config.lst)。

次の手順

  • テーブルまたは所有者名で大文字と小文字が区別される場合は、sp_ctrledit config コマンドを使って設定を開き、テキストエディタを使って大文字と小文字が区別されるテーブルおよび所有者名を二重引用符で囲みます(たとえば "scott"."emp")。このスクリプトは、大文字小文字の区別を採用するために Oracle が必要とする引用符を追加しません。

    sp_ctrl> edit config filename

  • 設定が正しい場所にあることを保証するために、list config コマンドを発行します。設定の名前が表示されない場合は、設定が誤ったディレクトリに作成されています。ファイルを見つけて変数データディレクトリの config サブディレクトリに移動します。

    sp_ctrl> list config

cleanup.sql

説明

cleanup.sql スクリプトを使用して、SHAREPLEX_PARTITION テーブル(再び必要になる可能性があるパーティションスキーマを含む)を除く、すべての SharePlex 内部テーブルを切り捨てます。

注: cleanup.sql スクリプトは、SharePlex Oracle のユーザー、パスワード、またはデモンストレーションオブジェクトを SharePlex テーブルから削除しません。

cleanup.sql スクリプトは、SharePlex の変数データディレクトリの複製データを保持します。その他のユーティリティは関連する次のオプションを提供します。

  • SharePlex テーブルを切り捨てずに変数データディレクトリの内容を消去するには、「clean_vardir.sh」を参照してください。
  • 変数データディレクトリの内容を消去し、SharePlex テーブルを切り捨てるには、を参照してください。このユーティリティは、SharePlex を初期状態に完全にリストアします。

cleanup.sql を初めて実行する前に、Quest テクニカルサポートにお問い合わせください。SharePlex ドキュメントの手順で clean_vardir.sh を実行する必要がない限り、このユーティリティを運用環境で使用することはほとんどありません。このスクリプトは設定をディアクティベートするため、誤って使用すると複製の問題が発生し、データを再同期する必要になる可能性があります。通常、別の方法があります。

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

Unix および Windows 上の Oracle

cleanup.sql の実行

  1. SharePlex データベースユーザーとして Oracle にログオンします。SharePlex テーブルはそのユーザーに属します。Unix および Linux では、複数の変数データディレクトリで複数の sp_cop のインスタンスを実行している場合は、それぞれの SharePlex Oracle ユーザーが存在します。このスクリプトを必ず実行するようにしてください。

  2. (Unix および Linux)SharePlex 変数データディレクトリを指し示すために SP_SYS_VARDIR 環境変数を設定します。

    ksh シェルの場合:

    export SP_SYS_VARDIR=/full_path_of_variable-data_directory

    csh シェルの場合:

    setenv SP_SYS_VARDIR /full_path_of_variable-data_directory

  3. SharePlex 管理者として cleanup.sql を実行します。スクリプトは SharePlex 製品ディレクトリの util サブディレクトリにあります。次の構文を使用します。ここで Oracle_version は、SharePlex でサポートされている Oracle バージョンの 1 つです。

    SQL> @proddir/util/cleanup.sql

clean_vardir.sh

説明

clean_vardir.sh スクリプトを使用して、変数データディレクトリの内容を消去して初期状態にリストアします。

  • clean_vardir.sh スクリプトは、SharePlex 内部テーブルの内容を保持します。
    • 変数データディレクトリの内容を消去せずに、SharePlex テーブルを切り捨てるには、「cleanup.sql」を参照してください。
    • 変数データディレクトリを整理し、SharePlex テーブルを切り捨てるには、を参照してください。このユーティリティは、SharePlex を初期状態に完全にリストアします。

    clean_vardir.sh を初めて実行する前に、Quest テクニカルサポートにお問い合わせください。SharePlex ドキュメントの手順で clean_vardir.sh を実行する必要がない限り、このユーティリティを運用環境で使用することはほとんどありません。このスクリプトは設定をディアクティベートするため、誤って使用すると複製の問題が発生し、データを再同期する必要になる可能性があります。通常、別の方法があります。

    clean_vardir.sh スクリプトは、次のファイルを削除します。

    • rim サブディレクトリの中のキューファイル。
    • rim サブディレクトリの中のログファイル。イベントログは、clean_vardir.sh プロシージャを反映する 1 つのエントリを保持します。
    • data サブディレクトリの中の statusdb ファイルの内容。
    • dump および state サブディレクトリの内容。

    clean_vardir.sh スクリプトは設定ファイル、conflict-resolution ファイル、ヒントファイル、paramdboramsglist ファイルなどの、ユーザーが作成したファイルを保持します。

    clean_vardir.sh スクリプトは、設定をディアクティベートします。clean_vardir.sh を実行した後で複製を開始するには、設定をアクティベートする必要があります。

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

    Unix および Linux 上の Oracle

    clean_vardir.sh の実行

    Unix および Linux システム上でのみ、このスクリプトを実行します。

    1. sp_cop をシャットダウンします。
    2. SharePlex 変数データディレクトリを指し示すために SP_SYS_VARDIR 環境変数を設定します。SP_SYS_VARDIR が設定されていない場合、clean_vardir.shproddir/data/defaults.yaml ファイルにリストされているディレクトリに影響します。ここで、proddirSharePlex 製品ディレクトリの bin サブディレクトリです。

      ksh シェルの場合:

      export SP_SYS_VARDIR=/full_path_of_variable-data_directory

      csh シェルの場合:

      setenv SP_SYS_VARDIR /full_path_of_variable-data_directory

    3. SharePlex 管理者として clean_vardir.sh を実行します。スクリプトは SharePlex 製品ディレクトリの bin サブディレクトリにあります。次の構文を使用します。ここで Oracle_version は、SharePlex でサポートされている Oracle バージョンの 1 つです。

      proddir/bin/clean_vardir.sh Oracle_version

    スクリプトが完了すると、コマンドプロンプトに戻ります。

    注:スクリプトが save_SharePlex_version ディレクトリを削除できないというエラーメッセージを生成した場合は、そのディレクトリを手動で削除できます。

  • create_ignore.sql

    SharePlex ユーティリティ > create_ignore.sql

    説明

    DML トランザクションがターゲットシステムに複製されないようにするには、create_ignore.sql ユーティリティスクリプトを使用します。このスクリプトは、SHAREPLEX_IGNORE_TRANS という名前のプロシージャをソースデータベースに作成します。トランザクションの開始時に実行すると、プロシージャが実行時点からトランザクションがコミットまたはロールバックされるまでの間に実行された DML 操作を、Capture プロセスに無視させます。したがって、影響された操作は複製されません。

    DML 操作のみがこの SHAREPLEX_IGNORE_TRANS プロシージャによって影響されます。TRUNCATE を含む DDL 操作は SharePlex によってスキップされません。DDL 操作は暗黙的に Oracle によってコミットされているので、プロシージャを無効にします。

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

    Unix および Windows 上の Oracle

    create_ignore.sql の実行

    SharePlex 製品ディレクトリの util サブディレクトリにある create_ignore.sql を実行します。プロシージャが SharePlex スキーマ内に作成されるように、SharePlex Oracle ユーザーとして実行します。

    このスクリプトは次の PL/SQL を実行します。

     

    CREATE OR REPLACE PROCEDURE SHAREPLEX_IGNORE_TRANS AS

    TNUM NUMBER;

    BEGIN

    INSERT INTO SHAREPLEX_TRANS (TRANS_NUM, QUE_SEQ_NO_1, QUE_SEQ_NO_2,

    COMBO, OP_TYPE) VALUES (-999,0,0,'DUMMY',0);

    DELETE FROM SHAREPLEX_TRANS WHERE TRANS_NUM=-999 AND COMBO='DUMMY'

    AND OP_TYPE=0;

    END;

    /

    GRANT EXECUTE ON SHAREPLEX_IGNORE_TRANS TO PUBLIC;

    /

    SHAREPLEX_IGNORE_TRANS の実行

    SHAREPLEX_IGNORE_TRANS は、複製するべきでない操作を含むトランザクションの「開始時点」でコールします。もし、トランザクションの途中でコールすると、プロシージャが開始された前の複製された操作は SharePlex は COMMIT なしではメッセージをリリースしないため post キューで永久に COMMIT を待つことになります。しかし、Capture はプロシージャがコールされた前のすべての操作を無視するため、これらに対する COMMIT は着信されません。したがって Read プロセスはこれらのレコードのキャッシュ情報を永久に保持します。

    1. SharePlex ユーザーとして SQL*Plus にログオンします。
    2. スキップするトランザクションの開始時点で SHAREPLEX_IGNORE_TRANS プロシージャを実行します。

      execute SharePlex_schema.SHAREPLEX_IGNORE_TRANS;

    3. 1 つのトランザクションで、複製しない変更を追加します。これらの変更は、Capture によって無視されます。
    4. COMMIT または ROLLBACK の後、続くトランザクションの複製は正常に再開されます。
    Related Documents

    The document was helpful.

    Select Rating

    I easily found the information I needed.

    Select Rating