Chat now with support
Chat with Support

SharePlex 8.6.6 - インストール・ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex の概要 SharePlex プリインストールチェックリスト Oracle クラスタでの SharePlex のセットアップ Amazon Cloud での SharePlex のセットアップ SharePlex のダウンロード UNIX のインストールとセットアップ Windows のインストールとセットアップ セキュリティグループへの SharePlex ユーザーの割り当て SharePlex 基本デモンストレーション 上級用 SharePlex デモンストレーション インストール上の問題の解決 SharePlex のアンインストール SharePlex ユーティリティ 付録 A:高度なインストーラオプション 付録 B:root としての SharePlex のインストール 付録 C:SharePlex でインストールされるアイテム

パート 3:複製のテスト

SharePlex 基本デモンストレーション > パート 3:複製のテスト

このセクションでは、これまでに作成してアクティベートした設定を使用して、SharePlex 複製の速度と正確性を示します。テストを実行する前に、各システムで SQL*Plus を実行し、データベースに接続して、両方のデモンストレーションテーブルからすべての行を選択します。

sysA で:
SQL> select * from splex.demo_src;
sysB で:
SQL> select * from splex.demo_dest;

これらのテーブルは、空でインストールされました。データが含まれている場合は、TRUNCATE を実行して新しい状態でデモンストレーションを開始できるようにします。

テスト 1:複製の開始を検証する

このテストで、複製が進行していることを検証します。

  1. 次のように入力して、ソーステーブル(splex.demo_src)にレコードを挿入してコミットします。

    SQL> insert into splex.demo_src values (‘JIM’, ‘8001 Irvine Center Drive’, ‘949-754- 8000’);
    SQL> commit;

    SharePlex は変更分を複製して、「ターゲット」テーブルへ post します。

  2. 次のクエリを入力して、「ターゲット」システムの splex.demo_dest テーブル内に現在新しいレコードがあることを確認します。

    SQL> select * from splex.demo_dest;

    挿入した行がソーステーブルと同様にターゲット内にも現在存在することが表示されます。

テスト 2:速度と大量の複製を検証する

このテストで、SharePlex が大量のデータを迅速で正確に複製することを確認します。

  1. ソースシステム上の splex.demo_src テーブルに 500 行を挿入する SQL スクリプトを作成し、COMMIT を続けて入れるようにします。スクリプトを作成するときのテーブルについては、93 ページの説明を参照してください。
  2. perf_mon.sh スクリプトを実行します。このスクリプトで、Post プロセスの速度を監視します。このスクリプトが実行されると、処理された操作数を判断するために Post プロセスがポーリングされます。指定された間隔で指定された回数だけこのポーリングが繰り返され、SharePlex がその間 post した秒当たりの INSERT、UPDATE、DELETE、COMMIT の数が計算されます。結果は画面に表示されます。以下は、UNIX、Linux、および Windows システムでの手順です。

    UNIX および Linux システム

    次の構文を使用して、SharePlex 製品ディレクトリの util サブディレクトリから perf_mon を実行します。ポーリングの頻度と間隔は、制御できます。

    構文:

    perf_mon.sh #_polls poll_interval

    #_polls は Post プロセスをポーリングする回数です。

    poll_interval は、ポーリング間の間隔です。

    perf_mon.sh 10 60

    この例では、60 秒間隔で Post プロセスが 10 回ポーリングされます。

    Windows システムの場合

    SharePlex 製品ディレクトリの bin サブディレクトリから、コマンドプロンプトで sp_perf_mon を実行します。次の構文を使用します。Windows システムでは、ポーリングは毎秒行われ、Ctrl + C コマンドで抹消するまで続きます。

    sp_perf_mon -rport_number

    port_number は、SharePlex のポート番号です。

    sp_perf_mon -r2100

    :このスクリプトは、同じポートを使用する複数の post キューでは機能しません。

  3. テスト 1 で行ったように、すべての行が「ターゲット」システムへ送信されたことを確認します。ターゲットシステムで SQL*Plus を実行してクエリを生成する時までに、データはすでに post されています。

テスト 3:ターゲットが利用できないときのキューイングを検証する

このテストで、ターゲットシステムが利用できないときにソースシステム上で複製するデータを SharePlex がキューに留める方法を示します。

  1. ターゲット」システムで SharePlex をシャットダウンし、このシステムが利用不能であることをシミュレートします。

    sp_ctrl(sysB)> shutdown
  2. ソース」システムで、テスト 2 で作成したスクリプトを使用して、レコードを splex.demo_src へ INSERT および COMMIT します。
  3. ターゲットシステムは、SharePlex をシャットダウンすることで「利用不能」にされたので、そのシステム上でデータを受け取るための Import サービスが利用不能になり、レコードはソースシステム上の export キュー内に留められます。システム上のすべての SharePlex キューのステータスを表示する qstatus コマンドを発行して、このことを確認できます。

    sp_ctrl(sysA)> qstatus

    次の図 1 のような画面が、ソースシステムで qstatus を発行したときに表示されます。ソースシステム上に post キューがないことに注意してください。これは、このシステムがソースシステムとしてのみ使用されているからです。通常、この設定の post キューは別のシステム、つまりターゲットシステムにあります。ただし、設定が別のシステムでアクティブになっている場合は、このシステムもターゲットシステムとなることもあります。

    図 2: ソースシステムで発行された qstatus コマンドの例。

    :SharePlex がターゲットシステムで実行されていないので、そのシステムの post キューは表示できません。通常の状況では、SharePlex が両方のシステムで実行されている場合、ターゲット上で sp_ctrl を実行する代わりに post キューを表示するには、「ソース」システムで [on host] オプション付きの qstatus コマンドを使用できます。(host をターゲットシステムの名前で置き換えます。)

    sp_ctrl (sysA) > qstatus on host

テスト 4:複製の継続を検証する

このテストで、ターゲットシステムが再び使用可能になったときに停止ポイントから SharePlex が処理を再開する方法を示します。

  1. ターゲット」システム上で sp_cop および sp_ctrl(まだ実行されていない場合)を起動します。
  2. すべての SharePlex プロセスが「ターゲット」システムで開始されたことを確認するために、status コマンドを発行します。

    sp_ctrl(sysB)> status

    status コマンドにより、実行中のプロセスと発生したエラーを示して、SharePlex Status Database が要約されます。次の画面は典型的な status ウィンドウです。

    図 3: ターゲットシステムで発行された status コマンドの例

    status コマンドは、sp_ctrl 内で複製のステータスを表示できるいくつかのコマンドの 1 つです。エラーの説明も含めた詳細なステータス情報を表示するには、lstatus コマンドを使用できます。

    sp_ctrl(sysB)> lstatus
  3. SharePlex プロセスが開始されると、複製が再開されます。「ターゲット」システムで SQL*Plus を実行し、ソースシステム上でスクリプトによって挿入されたレコードが現在はターゲットデータベースに存在することを確認します。

    SQL> select * from splex.demo_dest;

テスト 5:プライマリインスタンスに対する割り込みの後の SharePlex の回復を確認する

このテストで、プライマリインスタンスに対する割り込みの後に SharePlex がどのように回復するかを示します。

  1. 割り込みをシミュレートするために、「ソース」システムで Capture プロセスを停止します。

    sp_ctrl(sysA)> stop capture
  2. テスト 2 で作成したスクリプトを使用して、レコードを splex.demo_src へ INSERT および COMMIT します。

  3. ソース」システムで Capture プロセスを再開します。

    sp_ctrl(sysA)> start capture
  4. Capture が開始されたことを確認するために、ソースシステムで SharePlex プロセスのステータスをチェックします。

    sp_ctrl(sysA)> status
  5. ターゲット」システムで SQL*Plus を実行し、ソースシステム上でスクリプトによって挿入されたすべてのレコードが現在はターゲットシステムに存在することを確認します。

    SQL> select * from splex.demo_dest;

テスト 6:TRUNCATE TABLE コマンドの複製を確認する

このテストで、ソースおよびターゲットテーブルから 1 つのコマンドでデータを削除できるようにする TRUNCATE TABLE コマンドの複製を示します。

  1. SQL*Plus で、「ソース」システム上の splex.demo_src に TRUNCATE TABLE コマンドを発行します。

    SQL> TRUNCATE TABLE splex.demo_src;
  2. ソースシステム上で直ちに qstatus コマンドを発行し、その後再び発行します。トランザクションがキューを通ってターゲットシステムへ移動していることがわかります。

    sp_ctrl(sysA)> qstatus
  3. ターゲット」システム上で SQL*Plus を実行し、ターゲットテーブルの splex.demo_dest が空であることを確認します。

    SQL> select * from splex.demo_dest;

テスト 7:非同期行の比較と修復

これがこのデモの最終テストです。sp_ctrlcompare コマンドを使ってソーステーブルとターゲットテーブルを比較して、同期を確認する方法を紹介します。次に同期されていない行を、repair コマンドを使って修復します。

  1. ソース」システムで、テスト 2 で作成したスクリプトを使用して、行をいくつか splex.demo_src へ挿入します。
  2. 表示されたキューが 0 になるまで、「ターゲット」システム上の sp_ctrl 内で qstatus コマンドを発行して、すべてのデータが splex.demo_dest へ post されたことを確認します。

    sp_ctrl(sysB)> qstatus
  3. ソースシステムの sp_ctrl 内で、compare コマンドを発行します。sp_ctrl(sysA)> compare splex.demo_src

  4. ソース」システム上で compare status コマンドを使い、比較結果を表示します。非同期の列がないことが示されます。

    sp_ctrl(sysA)> compare status
  5. 「ターゲット」システムで、splex.demo_dest 内の NAME 列の値を変更するために、行のいくつかに対して UPDATE コマンドを発行します。これが、ソースおよびターゲットテーブルが非同期になる原因となります。

  6. ソースシステムで compare コマンドを再度発行します。これは、splex.demo_dest 内の行を、splex.demo_src内の行と比較します。

    sp_ctrl(sysA)> compare splex.demo_src
  7. 同期化されていない行を修復するには、repair コマンドを発行します。

    sp_ctrl(sysA)> repair splex.demo_src
  8. 修復を確認するには、ソースシステムで repair status コマンドを発行します。ステータスに、テーブルが修復されたことが表示されます。

    sp_ctrl(sysA)> repair status
  9. 修復が正確だったことを確認するには、両テーブル内のすべての行を表示する SELECT 文を使用して、ソースおよびターゲットテーブルを手動で比較できます。

    SQL> select * from splex.demo_src; (on the source system)
    SQL> select * from splex.demo_dest; (on the target system)

ヒント:SharePlex には、設定内のすべてのソーステーブルをターゲットテーブルと比較する compare using コマンドも用意されています。

これで、基本 SharePlex デモンストレーションを終了します。

上級用 SharePlex デモンストレーション

上級用 SharePlex デモンストレーション
コンテンツ

 

この章では、選択した SharePlex の機能を示します。この演習を UNIX、Linux、および Windows システムで実行すると、以下の機能を示すことができます。

  • 複製の設定を作成および確認する方法
  • 同期を確認する compare コマンドを使用する方法
  • データの一部を複製するために分割レプリケーションを使用する方法
  • 複製されたデータを操作するためにトランスフォーメーションを使用する方法
  • ピアトゥピアレプリケーションで generic conflict resolution を使用する方法

重要!これらのデモンストレーションは、SharePlex を紹介するためのデモ用途向けに作成されています。実際の稼動環境への展開や複製確立の基盤としての使用は行わないでください。複製を適切に実装するには、『SharePlex 管理者ガイド』を使用してください。これらのデモンストレーションは、このマニュアルに出てくる順序で実行することをお勧めします。

ヒント:デモンストレーションで使用するコマンドについては、『SharePlex リファレンスマニュアル』で説明しています。

デモンストレーションオブジェクトのインストール

上級用 SharePlex デモンストレーション > デモンストレーションオブジェクトのインストール

SharePlex にはいくつかの SQL スクリプトが用意されており、その中には、この章で説明するデモンストレーションに必要なすべてのオブジェクトをインストールする p2p.sqlod.sql もあります。このようなスクリプトは、SharePlex 製品ディレクトリの util サブディレクトリにあります。デモンストレーションに使用するソースおよびターゲットシステムで、これらのスクリプトを実行します。DBA ロールと SELECT ANY TABLE 特権を持つ既存ユーザーとして、SQL*Plus でスクリプトを実行します。

次の項目を指定するように、プロンプトが表示されます。

  • デモンストレーションオブジェクトをインストールするスキーマ。
  • デモンストレーションオブジェクトの表領域。
  • SharePlex の前のバージョンで使用された古いデモンストレーションオブジェクトを削除するかどうか。これには、そのようなオブジェクトのスキーマ名を入力する必要があり、入力するとスクリプトによって削除されます。
デモンストレーションオブジェクトの説明
od_employee    

名前

----------------------------

Null?

---------------

タイプ

-------------

EMP_NO NOT NULL NUMBER
EMP_FIRST_NAME   VARCHAR2
EMP_LAST_NAME   VARCHAR2
EMP_DOB   DATE
EMP_DEPT_NO   NUMBER
EMP_TIMESTAMP   DATE

 

od_timesheet    

名前

----------------------------

Null?

---------------

タイプ

-------------

TS_EMP_NO   NUMBER
TS_IN_TIME   DATE
TS_OUT_TIME   DATE
TS_MOD_TIME   DATE

 

od_department    

名前

---------------------------

Null?

---------------

タイプ

-------------

DEPT_NO NOT NULL NUMBER
DEPT_NAME   VARCHAR2
DEPT_CODE   VARCHAR2

 

od_salary    

名前

---------------------------

Null?

---------------

タイプ

-------------

SALE_EMP_NO   NUMBER
SAL_VALUE   NUMBER
SAL_CHANGED   DATE

 

od_sales_emp_data    

名前

------------------------------

Null?

---------------

タイプ

-------------

EMP_NO_KEY NOT NULL NUMBER
EMPLOYEE_NAME   VARCHAR2 (70)
SALARY   NUMBER
DEPARTMENT   VARCHAR2 (50)

 

oxc_table    

名前

-----------------------------

Null?

--------------

タイプ

-------------

EXC_NO NOT NULL NUMBER
EXC_TYPE   VARCHAR2 (6)
EXC_TARGET_TABLE   VARCHAR2 (66)
EXC_FIXED   VARCHAR2 (3)
EXC_INFO   VARCHAR2 (500)
EXC_TIMESTAMP   DATE

Demo1:最初のデモンストレーション

上級用 SharePlex デモンストレーション > Demo1:最初のデモンストレーション

このデモンストレーションは、compare コマンドを利用して、パフォーマンスに関する簡単なデモを行います。

SharePlex の起動

以下は、UNIX、Linux、および Windows システムで SharePlex を起動するための手順です。ソースおよびターゲットシステムで Shareplex を起動します。

UNIX システムと Linux システム

SharePlex の管理者(SharePlex Admin グループのメンバ)としてシステムにログオンします。

SharePlex 製品ディレクトリ(バイナリを含むディレクトリで、以下の構文では productdir 変数で表記)の bin サブディレクトリから、sp_cop および sp_ctrl を実行します。

$ cd /productdir/bin
 
$ ./sp_cop &
 
$ ./sp_ctrl

Windows システムの場合

  1. SharePlex の管理者(SharePlex Admin グループのメンバ)としてシステムにログオンします。
  2. Windows デスクトップで、SpUtils ショートカットをダブルクリックして SharePlex Utilities ダイアログボックスを開きます。
  3. SharePlex Services タブをクリックして、SharePlex Services ダイアログボックスを表示します。
  4. SharePlex Services ダイアログボックスの Port リストボックスで、SharePlex のポート番号を選択し、Start をクリックします。
  5. Current State テキストボックスにサービスが開始されたことが表示されたら、Close をクリックしてダイアログボックスを閉じます。
  6. Windows デスクトップで、sp_ctrl ショートカットをダブルクリックして、sp_ctrl コマンドプロンプトを開きます。

設定の作成

sp_ctrl 内で、ソースシステムの od_departmentod_salaryod_timesheet、および od_employee テーブルをターゲットシステムの同じテーブルへ複製する、od.config という名前の複製用設定を作成します。

この設定を作成するために、sp_ctrl 内の create config コマンドを使用します。このコマンドで、SharePlex のデフォルトのテキストエディタ、つまり UNIX および Linux の場合は vi、Windows の場合はワードパッド内に新しいファイルが開かれます。

sp_ctrl(sysA)> create config od.config

テキストエディタ内で編集コマンドを使用し、以下のテンプレート 1 に従って設定を作成して、次のように置き換えます。

  • 最初の行の source_SID には、source データベースの ORACLE_SID を使用します。SID には、英大文字と小文字の区別があります。
  • owner は、オブジェクトの所有者に置き換えます。列 1 のオブジェクトはソースオブジェクトであり、列 2 のオブジェクトはターゲットオブジェクトです。
  • target_host は、ターゲットマシンの名前で置き換えます。
  • target_SID は、ターゲットデータベースの ORACLE_SID で置き換えます。SID には、英大文字と小文字の区別があります。

列内のキャラクタ間にスペースを入れないでください。列と列の間は 2 つ以上のスペースまたはタブで区切ります。

 

テンプレート 1:デモンストレーション設定「od.config」

datasource:o.source_SID  

 

owner.od_department owner.od_department target_host@o.target_SID
owner.od_salary owner.od_salary target_host@o.target_SID
owner.od_timesheet owner.od_timesheet target_host@o.target_SID
owner.od_employee owner.od_employee target_host@o.target_SID

 

設定のエントリの作成を終了したら、:wq コマンド(vi)またはFile > Save(ワードパッド)を使用してファイルを保存します。SharePlex により、ファイルが config サブディレクトリに自動的に保存されます。

重要!別のデモンストレーションにも必要なので、この設定をシステムに保管しておきます。

設定のアクティベート

設定をアクティベートするには、sp_ctrlactivate コマンドを使用します。このコマンドは設定をアクティベートする前に、データベース ORACLE_SID およびソースシステムを使ってオブジェクト名を検証します。

  1. SharePlex デモンストレーションオブジェクトがインストールされていることを確認します。「デモンストレーションオブジェクトのインストール」を参照してください。
  2. ターゲットシステムの od_salary テーブルには、ON DELETE CASCADE 制約が含まれています。制約の名前は od_sal_emp_no_fk です。ターゲットテーブルの制約を無効にするか、カスケード削除を処理するように SharePlex を設定できます(Post が ON DELETE CASCADE 依存性を検出し、複製されたカスケード削除の子テーブルへの post を抑止します)。

    制約を処理するように SharePlex を設定するには

    以下のパラメータを設定します。

    • SP_OPO_DEPENDENCY_CHECK パラメータ:2
    • SP_OCT_REDUCED_KEY パラメータ:0
    • SP_OPO_REDUCED_KEY パラメータ:0 または 1

    SQL*Plus を使用して制約を無効にするには

    SQL> alter table od_salary disable constraint od_sal_emp_no_fk;

  3. ターゲットシステムの od_timesheet テーブルにも、トリガが含まれています。トリガの名前は od_timesheet_mod です。ターゲットテーブルのトリガが原因で SharePlex が非同期エラーを返すので、「ターゲット」テーブルでのみ、このトリガを無効にします。

    SQL> alter trigger od_timesheet_mod disable;

  4. sp_ctrl 内で、od.config 設定のために activate config コマンドを発行します。

    sp_ctrl(sysA)> activate config od.config

同期の検証

これで、compare コマンドを示します。このコマンドは、ソースおよびターゲットテーブルを比較して、それらの同期化を確認します。同期化されていない行が見つかった場合は、repair コマンドで再同期できます。

  1. SharePlex デモンストレーションオブジェクトがインストールされていることを確認します。「デモンストレーションオブジェクトのインストール」を参照してください。
  2. デモンストレーションオブジェクトをインストールしたスキーマ内にインストールされた od_add_emps プロシージャを実行することで、ソースシステム上の od_employee および od_salary テーブルにデータを投入します。このプロシージャには、部門(department)へ挿入する従業員(employee)数を指定する IN パラメータが 1 つあります。デフォルトの部門数は 5 です。100 の IN パラメータを使用して 500 の新規従業員を od_employee テーブル内に、500 のエントリを od_salary テーブル内に作成します。

    SQL> exec od_add_emps(100);
  3. ソース」システム上の sp_ctrl 内で、od_employee テーブルに対して 1 回、od_salary テーブルに対して 1 回、compare コマンドを発行します。テーブルの所有者、ターゲットシステムの名前、ターゲットの ORACLE_SID で、以下の構文内の適切な変数を置き換えます。

    sp_ctrl(sysA)> compare source_owner.od_employee
    sp_ctrl(sysA)> compare source_owner.od_salary
  4. ソース」システムの sp_ctrl 内で、compare status コマンドを発行します。これで、比較の進捗状態が表示されます。両方の compare プロセスが終了するまで、このコマンドを発行し続けます。

    sp_ctrl> compare status
  5. ソース」システム上で compare status コマンドを発行して、比較結果を表示します。

    sp_ctrl(sysA)> compare status

    結果には、同期されていない行がないことが表示されます。

  6. ターゲット」システムの od_employee から、行をいくつか削除します。これで、そのテーブルとソーステーブルが同期しないようになります。

  7. ソースシステム上で、od_employee テーブルに対して再度 repair コマンドを発行します。これで、非同期状態が修復されました。

    sp_ctrl(sysA)> repair source_owner.od_employee

  8. ソースシステムで repair status コマンドを発行します。repair コマンドが欠けている行をターゲットの od_employee テーブルに追加したので、非同期行がないことが表示されます。

    sp_ctrl(sysA)> repair status

パフォーマンス統計の表示

このデモンストレーションで、SharePlex 複製のパフォーマンス統計を表示できるようになります。

  1. SharePlex デモンストレーションオブジェクトがインストールされていることを確認します。「デモンストレーションオブジェクトのインストール」を参照してください。
  2. IN の値に 2000 を使用して、ソースシステム上で od_add_emps プロシージャを実行します。od_department テーブルを変更していない場合、これにより 10,000 行が追加されます。
  3. perf_mon.sh スクリプトを実行します。このスクリプトで、Post プロセスの速度を監視します。このスクリプトが実行されると、処理された操作数を判断するために Post プロセスがポーリングされます。指定された間隔で指定された回数だけこのポーリングが繰り返され、SharePlex がその間 post した秒当たりの INSERT、UPDATE、DELETE、COMMIT の数が計算されます。結果は画面に表示されます。以下は、UNIX、Linux、および Windows システムでの手順です。

    UNIX システムと Linux システム

    次の構文を使用して、SharePlex 製品ディレクトリの util サブディレクトリから perf_mon を実行します。ポーリングの頻度と間隔は、制御できます。

    構文:

    perf_mon.sh #_polls poll_interval

    #_polls は Post プロセスをポーリングする回数です。

    poll_interval は、ポーリング間の間隔です。

    例:

    perf_mon.sh 10 5

    この例では、5 秒間隔で Post プロセスが 10 回ポーリングされます。

    Windows システムの場合

    SharePlex 製品ディレクトリの bin サブディレクトリから、コマンドプロンプトで sp_perf_mon を実行します。次の構文を使用します。Windows システムでは、ポーリングは毎秒行われ、Ctrl + C コマンドで抹消するまで続きます。

    sp_ perf_mon -rport_number

    port_number は、SharePlex のポート番号です。

    例:

    sp_perf_mon -r2100

:このスクリプトは、同じポートを使用する複数の post キューでは機能しません。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating