サポートと今すぐチャット
サポートとのチャット

SharePlex 11.4 - インストールおよびセットアップガイド

このガイドについて このガイドで使用される表記規則 OracleソースへのSharePlexのインストールと設定
Oracle向けSharePlexプレインストールチェックリスト SharePlexインストーラのダウンロード Install SharePlex on Linux and UNIX(LinuxとUNIXへのSharePlexのインストール レプリケーションのためのOracle環境のセットアップ Oracleから異なるターゲットタイプへのレプリケーションを設定する Oracle向けクラウドホスト型データベースのインストールとセットアップ リモートキャプチャ向けインストールとセットアップ HAクラスタ向けインストールとセットアップ Oracle向け一般SharePlexデモ Oracle向け高度なSharePlexデモ データベース・セットアップ・ユーティリティ Oracleのインストールに関する問題の解決
ソースおよびサービスとしてのPostgreSQLデータベースへのSharePlexのインストールとセットアップ
PostgreSQL向けSharePlexのインストール前のチェックリスト PostgreSQL向けSharePlexインストーラのダウンロード ソースとしてのPostgreSQL向けLinuxへのSharePlexのインストール PostgreSQLからサポートされているターゲットタイプへのレプリケーションの設定 PostgreSQL向けクラウドホスト型データベースのインストールとセットアップ PostgreSQL向けリモートキャプチャのインストールとセットアップ PostgreSQL高可用性クラスタへのSharePlexのインストール 論理レプリケーションを使用した高可用性のPostgreSQL Azure Flexible ServerでのSharePlexの設定 PostgreSQL向けの汎用SharePlexデモ PostgreSQL用の高度なSharePlexデモ PostgreSQLのデータベースセットアップ PGDB as a Service向けデータベースセットアップ pg_hint_plan拡張機能のインストール PostgreSQLのインストールに関する問題の解決
DockerコンテナへのSharePlexのインストール SharePlexユーザのセキュリティグループへの割り当て インストールの問題の解決 SharePlexのアンインストール 高度なインストーラオプション rootとしてのSharePlexのインストール SharePlexでインストーラされるアイテム

レプリケーションの設定、アクティベーション、検証

Oracleソースシステムでのレプリケーションの設定、アクティベーション、検証

注意: 先に進む前に、SharePlexのデモオブジェクトがインストールされていることを確認します。「デモのための事前の作業ページを参照してください。

このデモでは、レプリケーション設定を作成してアクティベーションし、ソーステーブルにデータを読み込んで、データがターゲットテーブルに正常にレプリケートされたことを確認します。また、同期がとれていないテーブルの修復も行います。

設定ファイルの作成

注意: このデモでは、デモオブジェクトがdemoというスキーマにあることを前提としています。異なる場合は、実際のスキーマで置き換えてください。

ソースシステムで以下の手順を実行します。

  1. sp_ctrlを実行します。

  2. 以下のコマンドを発行し、od_departmentod_salaryod_timesheetod_employeeの各テーブルをターゲットシステム上の同名のテーブルに複製するod_configという名前の設定ファイルを作成します。

    sp_ctrl(source)>create config od_config

  3. テキストエディタで、以下のテンプレートに基づいて設定ファイルを作成します。コンポーネントソース指定、ターゲット指定、ルーティングマップの文字と文字の間にはスペースを入れず、各コンポーネントの間には少なくとも1つのスペースを入れます。

    # od_config configuration file

    datasource:o.source_SID

    demo.od_department

    demo.od_department

    target_system@o.target_SID

    demo.od_salary demo.od_salary

    target_system@o.target_SID

    demo.od_timesheet demo.od_timesheet target_system@o.target_SID
    demo.od_employee demo.od_employee target_system@o.target_SID

    ここで:

    • # はコメントを示します。
    • source_SIDはソースデータベースのORACLE_SIDです。
    • target_systemはターゲットシステムの名前またはIPアドレスです。
    • target_SIDはターゲットデータベースのORACLE_SIDです。
  4. ファイルを保存し、エディタを終了します。SharePlexは自動的にconfigサブディレクトリにファイルを保存します。
  5. sp_ctrlで、設定ファイルが正常にアクティベーションされることを確認します。

    sp_ctrl(source)>verify config sample_config

設定のアクティベーション

ソースシステムで以下の手順を実行します。設定をアクティベーションすると、SharePlexは、指定されたソースデータに行われたトランザクションの変更をキャプチャする準備が整います。

設定をアクティベーションするには、以下の手順を実行します。

  1. 設定をアクティベーションします。

    sp_ctrl(source)>activate config od_config

    注意: 設定名では大文字と小文字が区別されます。

  2. 設定が正常にアクティベーションされたことを確認します。「File Nameファイル名」の下に「configod_config」という名前が表示され、「State状態」の下に「Active」と表示されます。

    sp_ctrl(source)>list config

注意: 以前に同じデータベースを使用して基本的なSharePlexデモを実行している場合、そのデモで使用した設定ファイルはこのアクティベーションによって無効になります。

ソーステーブルへのトランザクションの生成

ソースで、デモスキーマのオーナーとしてログインし、od_add_empsプロシージャを実行して、od_employeeテーブルとod_salaryテーブルにデータを入力します。

このプロシージャには、部門ごとに挿入する従業員数を指定するINパラメーターが1つあります。

  • デフォルトの部門数は5です。
  • INパラメーターを100にして、od_employeeテーブルに500人、od_salaryテーブルに500人の新規従業員を作成します。

SQL>execod_add_emps(100);

ソースとターゲットテーブルのcompare

このセクションでは、ソーステーブルとターゲットテーブルを比較し、データが同期されていることを確認します。

  1. ソースシステムで、sp_ctrlを実行します。

  2. ソースで、od_employeeテーブルとod_salaryテーブルをターゲットとcompareします。

    sp_ctrl(source)> compare demo.od_employee

    sp_ctrl(source)> compare demo.od_salary

    注意: このコマンドは、設定ファイルから正しいターゲットテーブルを決定します。

  3. ソースで、compare結果を表示します。

    sp_ctrl(source)> compare status

    両方のcompareプロセスが完了するまで、このコマンドを発行し続けます。コマンドの出力に、同期していない行が表示されてはなりません。

同期していない状態のrepair

このセクションでは、同期がとれていない状態をrepairし、データの同期を復元します。

同期がとれていない状態をrepairするには、以下の手順を実行します。

  1. ターゲット上でSQL*Plusを実行し、od_employeeからいくつかの行を削除します。これにより、そのテーブルはソーステーブルと同期していない状態になります。

  2. ソース上で、od_employeeテーブルをcompareします。

    sp_ctrl(source)> compare demo.od_employee

  3. ソースで、compare結果を表示します。

    sp_ctrl(source)>compare status

    コマンドの出力に、同期していない行が表示され、その数はターゲットのod_employeeから削除した行の数と同じになります。

  4. ソース上で、od_employeeテーブルをrepairします。

    sp_ctrl(source)>repair demo.od_employee

  5. ソース上で、repairの結果を確認します。

    sp_ctrl(source)>repair status

    コマンドの出力に、同期していない行は表示されません。なぜなら、削除された行がrepairコマンドによって挿入されているからです。

水平分割レプリケーションのデモ

注意: 先に進む前に、SharePlexのデモオブジェクトがインストールされていることを確認します。「デモのための事前の作業ページを参照してください。

このデモでは、

  1. パーティションスキームと、そのパーティションスキーム用の1つ以上の行パーティションを定義します。

    • 行パーティションは、ターゲットテーブルにレプリケートするソーステーブルの行のサブセットとして定義されます。

    • パーティションスキームは、行パーティションの論理コンテナです

  2. パーティションをレプリケーションに含めるには、SharePlex設定ファイルにパーティションスキームの名前を指定します。
  3. 設定をアクティベーションします。
  4. ソーステーブルにデータを読み込み、指定された行のターゲットへのレプリケーションを検証します。

テーブルの準備

注意: このデモでは、デモオブジェクトがdemoというスキーマにあることを前提としています。異なる場合は、実際のスキーマで置き換えてください。

以下の手順でテーブルを準備します。

  1. 前のデモを実行した場合は、以下を実行します。

    1. ソースおよびターゲット上でsp_ctrlを実行し、以下のコマンドを実行してsp_copを停止します。

      sp_ctrl (source) shutdown

      sp_ctrl (target) shutdown

    2. ソースターゲットで、『SharePlexリファレンスガイド』の「ora_cleansp」の手順に従って、ora_cleanspを実行します。これにより、前のデモからのキューを削除し、前の設定を非アクティブにします。
  2. ソースターゲットで、od_employeeテーブルとod_salaryテーブルをTRUNCATEします。

    SQL> truncate table demo.od_employee;

    SQL> truncate table demo.od_salary;

行パーティションの設定

行パーティションを設定するには、以下の手順を実行します。

  1. ソースシステムで、sp_ctrlを実行します。
  2. ソース側で、od_employeeテーブルからレプリケートする行を指定する行パーティションを作成します。この例では、従業員の部門が「1」である行のみです。

    注意: パーティションは行のみを指定します。ソーステーブルとターゲットテーブルの名前は、設定ファイルで指定します。

    sp_ctrl> add partition to scheme1 set condition = 'EMP_DEPT_NO=1' and route = target_sys@o.ora_SID

    ここで:

    • scheme1はパーティションスキームの名前です。
    • condition='EMP_DEPT_NO=1'は列の条件です。
    • route=target_sys@o.ora_SIDは、ターゲットシステムの名前とターゲットデータベースのORACLE_SIDからなるルーティングです。

設定ファイルでのパーティションスキームの指定

ソースシステムで以下の手順を実行します。

  1. sp_ctrlod_config設定ファイルを開いて編集します。

    sp_ctrl(source)>edit config od_config

  2. テキストエディタで設定ファイルを編集し、作成したパーティションスキームを使用するようにod_employeeテーブルのエントリを変更します。

    # od_config configuration file

    datasource:o.source_SID

    demo.od_department

    demo.od_department

    target_system@o.target_SID

    demo.od_salary demo.od_salary

    target_system@o.target_SID

    demo.od_timesheet demo.od_timesheet target_system@o.target_SID
    demo.od_employee demo.od_employee !scheme1

    ここで:

    • source_SIDはソースデータベースのORACLE_SIDです。
    • target_systemはターゲットシステムの名前またはIPアドレスです。
    • target_SIDはターゲットデータベースのORACLE_SIDです。
    • !scheme1は、パーティションスキームをリストする構文です。
  3. ファイルを保存し、エディタを終了します。SharePlexは自動的にconfigサブディレクトリにファイルを保存します。

設定のアクティベーション

設定をアクティベーションするには、以下の手順を実行します。

ソースシステムで以下の手順を実行します。設定をアクティベーションすると、SharePlexは、指定されたソースデータに行われたトランザクションの変更をキャプチャする準備が整います。

  1. 設定をアクティベーションします。

    sp_ctrl(source)>activate config od_config

    注意: 設定名では大文字と小文字が区別されます。

  2. 設定が正常にアクティベーションされたことを確認します。「File Nameファイル名」の下に「configod_config」という名前が表示され、「State状態」の下に「Active」と表示されます。

    sp_ctrl(source)>list config

データの複製

以下の手順でデータを複製します。

  1. ソースで、デモスキーマのオーナーとしてログインし、od_add_empsプロシージャを実行して、od_employeeテーブルとod_salaryテーブルにデータを入力します。このプロシージャには、部門ごとに挿入する従業員数を指定するINパラメーターが1つあります。

    • デフォルトの部門数は5です。
    • INパラメーターを100にして、od_employeeテーブルに500人、od_salaryテーブルに500人の新規従業員を作成します。

    SQL>exec od_add_emps(100);

  2. ソース側で、ソースのod_employeeテーブルからすべての行を選択します。

    SQL> select * from od_employee;

    EMP_DEPT_NO列の値は、行全体で「1」から「5」の範囲でなければなりません。

  3. ターゲット側で、ターゲットのod_employeeテーブルからすべての行を選択します。

    SQL> select * from od_employee;

    EMP_DEPT_NO列の値は、すべての行で「1」である必要があります。この列の値が「1」以外の行は複製されていません。

垂直分割レプリケーションのデモ

注意: 先に進む前に、SharePlexのデモオブジェクトがインストールされていることを確認します。「デモのための事前の作業ページを参照してください。

このデモでは、以下を行います

  • 設定ファイルで列パーティションを指定します。列パーティションは、指定された列に加えられたデータ変更のみをレプリケートします。

  • 設定をアクティベーションします。
  • ソーステーブルにデータを読み込んで、指定した列のターゲットへのレプリケーションを検証します。

テーブルの準備

注意: このデモでは、デモオブジェクトがdemoというスキーマにあることを前提としています。異なる場合は、実際のスキーマで置き換えてください。

以下の手順でテーブルを準備します。

  1. 前のデモを実行した場合は、以下を実行します。

    1. ソースおよびターゲット上でsp_ctrlを実行し、以下のコマンドを実行してsp_copを停止します。

      sp_ctrl (source) shutdown

      sp_ctrl (target) shutdown

    2. ソースターゲットで、『SharePlexリファレンスガイド』の「ora_cleansp」の手順に従って、ora_cleanspを実行します。これにより、前のデモからのキューを削除し、前の設定を非アクティブにします。
  2. ソースターゲットで、od_employeeテーブルとod_salaryテーブルをTRUNCATEします。

    SQL> truncate table demo.od_employee;

    SQL> truncate table demo.od_salary;

列パーティションの設定

ソースシステムで以下の手順を実行します。

  1. sp_ctrlで、od_config設定を非アクティベーションします。

    sp_ctrl(source)>deactivate config od_config

  2. 設定が正常に非アクティベーションされたことを確認します。「File Nameファイル名」の下に「od_config」という名前が表示され、「State状態」列の下に非アクティブであると表示されます。

    sp_ctrl(source)>list config

  3. sp_ctrlod_config設定ファイルを開いて編集します。

    sp_ctrl(source)>edit config od_config

  4. テキストエディタで設定ファイルを編集し、列パーティションを使うようにod_employeeテーブルのエントリを変更します。

    # od_config設定ファイル

    datasource:o.source_SID

    demo.od_department

    demo.od_department

    target_system@o.target_SID

    demo.od_salary !(SAL_VALUE)

    demo.od_salary

    target_system@o.target_SID

    demo.od_timesheet

    demo.od_timesheet

    target_system@o.target_SID

    demo.od_employee (EMP_NO, EMP_FIRST_NAME, EMP_LAST_NAME

    demo.od_employee

    target_system@o.target_SID

    ここで:

    • source_SIDはソースデータベースのORACLE_SIDです。
    • target_systemはターゲットシステムの名前またはIPアドレスです。
    • target_SIDはターゲットデータベースのORACLE_SIDです。
    • !(SAL_VALUE)は除外された列パーティションの構文です。リストされた1列以外はすべて複製されます。
    • (EMP_NO, EMP_FIRST_NAME, EMP_LAST_NAME)は列パーティションの構文です。リストされた列のみが複製されます。

    注意:

    • この設定ファイルのテンプレートは、ソース、ターゲット、およびルーティングの要素を明確に示すために、テーブル形式で設定されています。実際の設定ファイルでは、ソース列パーティションを含むターゲットルーティングマップの順に、すべて1行で記述します。
    • NOTNULLとして定義されている列はすべて、列パーティションに含まれなければなりません。なぜなら、SharePlexは列パーティションに含まれていない列にNULLをコピーするからです。
  5. ファイルを保存し、エディタを終了します。SharePlexは自動的にconfigサブディレクトリにファイルを保存します。

設定のアクティベーション

設定をアクティベーションするには、以下の手順を実行します。

ソースシステムで以下の手順を実行します。設定をアクティベーションすると、SharePlexは、指定されたソースデータに行われたトランザクションの変更をキャプチャする準備が整います。

  1. 設定をアクティベーションします。

    sp_ctrl(source)>activate config od_config

    注意: 設定名では大文字と小文字が区別されます。

  2. 設定が正常にアクティベーションされたことを確認します。「File Nameファイル名」の下に「configod_config」という名前が表示され、「State状態」の下に「Active」と表示されます。

    sp_ctrl(source)>list config

データの複製

以下の手順でデータを複製します。

  1. ソースで、デモスキーマのオーナーとしてログインし、od_add_empsプロシージャを実行して、od_employeeテーブルとod_salaryテーブルにデータを入力します。このプロシージャには、部門ごとに挿入する従業員数を指定するINパラメーターが1つあります。

    • デフォルトの部門数は5です。
    • INパラメーターを100にして、od_employeeテーブルに500人、od_salaryテーブルに500人の新規従業員を作成します。

    SQL>exec od_add_emps(100);

  2. ソース側で、ソースのod_employeeテーブルからすべての行を選択します。

    SQL> select * from od_employee;

    テーブルのすべての列に値が入力されています。

  3. ターゲット側で、ターゲットのod_employeeテーブルからすべての行を選択します。

    SQL> select * from od_employee;

    EMP_NO列、EMP_FIRST_NAME列、EMP_LAST_NAME列には値のみが存在すべきです。他の列はNULL値を含むべきです。

  4. ターゲットで、ターゲットのod_salaryテーブルからすべての行を選択します。

    SQL> select * from od_salary;

    SALE_EMP_NO列とSAL_CHANGED列のみに値が存在します。SAL_VALUE列にはNULLのみが含まれています。

トランスフォーメーションのデモ

注意: 先に進む前に、SharePlexのデモオブジェクトがインストールされていることを確認します。「デモのための事前の作業ページを参照してください。

このデモでは、提供されたトランスフォーメーションプロシージャを使用して、SharePlexで2つの別のソーステーブルからデータを複製し、1つのターゲットテーブルに適用します。

オブジェクトの準備

注意: このデモでは、デモオブジェクトがdemoというスキーマにあることを前提としています。異なる場合は、実際のスキーマで置き換えてください。

以下の手順でオブジェクトを準備します。

  1. 前のデモを実行した場合は、以下を実行します。

    1. ソースおよびターゲット上でsp_ctrlを実行し、以下のコマンドを実行してsp_copを停止します。

      sp_ctrl (source) shutdown

      sp_ctrl (target) shutdown

    2. ソースターゲットで、『SharePlexリファレンスガイド』に記載されている手順に従って、ora_cleanspユーティリティを実行します。これにより、前のデモからのキューを削除し、前の設定を非アクティブにします。
  2. ソースターゲットで、od_employeeテーブルとod_salaryテーブルをTRUNCATEします。

    SQL> truncate table demo.od_employee;

    SQL> truncate table demo.od_salary;

  3. ターゲットで、デモオブジェクトを所有するユーザに、SharePlexの初回インストール時にSharePlexスキーマにインストールされたsp_crパッケージを実行するシステム特権を付与します。

    SQL> grant execute on sp_cr to user_name

  4. ターゲットで、SharePlexデモオブジェクトを所有するユーザとしてSQL*Plusにログインし、SharePlex製品ディレクトリのutilサブディレクトリからtransform.sqlスクリプトを実行します。これにより、od_transform_employee_insertod_transform_employee_updateという名前のトランスフォーメーションルーチンがインストールされます。以下を入力するようプロンプトが表示されます。

    • スキーマとテーブルスペース
    • SharePlexデータベースユーザの名前

SharePlexの設定

以下の手順でSharePlexを設定します。

  1. ターゲットtransformation.SIDファイルここで、SIDはターゲットデータベースのORACLE_SIDをテキストエディタで使用します。このファイルの保存場所は、SharePlex変数データディレクトリのdataサブディレクトリです。

    注意: Postはこのファイルをチェックし、操作をデータベースにポストする代わりに呼び出さなければならないトランスフォーメーションプロシージャがあるかどうかを判断します。

  2. 以下のエントリをtransformation.SIDファイルに作成します。

    各列を少なくとも数個のスペースかタブ文字で区切ります。

    demo.od_employee

    I

    demo.od_transform_employee_insert

    demo.od_employee

    U

    demo.od_transform_employee_update

    demo.od_salary

    I

    demo.od_transform_employee_insert

    demo.od_salary

    U

    demo.od_transform_employee_update

    注意: 各エントリの構成要素は以下の通りです。これらはこの順序で表示される必要があります。

    • トランスフォーメーションプロシージャが割り当てられるターゲットテーブル。
    • 指定されたトランスフォーメーションプロシージャが呼び出される操作タイプ。
    • 使用する割当済みトランスフォーメーションプロシージャの名前。複数のエントリを使用することで、同じテーブルの操作タイプごとに異なる手順を割り当てることができます。
  3. ターゲットで、以下のパラメーターを有効にします。

    sp_ctrl(target)> set param SP_OPO_XFORM_EXCLUDE_ROWID 1

  4. ソースで、od_salaryテーブルとod_employeeテーブルを複製するod.transformという名前の設定ファイルを作成します。

    sp_ctrl(source)> create config od_transform

  5. テキストエディタで、以下のテンプレートに基づいて設定ファイルを作成します。

    datasource:o.source_SID

     

     

    demo.od_salary

    demo.od_salary

    target_system@o.target_SID

    demo.od_employee

    demo.od_employee

    target_system@o.target_SID

  6. ファイルを保存し、エディタを終了します。SharePlexは自動的にconfigサブディレクトリにファイルを保存します。

レプリケーションのアクティベーションと開始

以下の手順を実行して、レプリケーションをアクティベーションして開始します。

  1. ソースで、設定をアクティベーションします。

    sp_ctrl(source)> activate config od_transform
  2. 設定が正常にアクティベーションされたことを確認します。「File Nameファイル名」の下に「od_transform」という名前が表示され、「State状態」の下に「Active」と表示されます。

    sp_ctrl(source)>list config

  3. ソースで、デモスキーマのオーナーとしてログインし、od_add_empsプロシージャを実行して、od_employeeテーブルとod_salaryテーブルにデータを入力します。INパラメーター10を使用して、od_sales_emp_dataテーブルに50人の新規従業員を作成します。

    SQL> exec od_add_emps(10);

変換されたデータの表示

変換されたデータを表示するには、以下の手順を実行します。

  1. ターゲット上でSQL*Plusを実行します。
  2. SQL*Plusでod_sales_emp_dataから全ての行を選択します。

  3. 変換されたデータを表示します。以下の結果が表示されます。

    • EMPLOYEE_NAME列には従業員の姓と名が含まれています。これをソースのod_employeeテーブルとcompareします。このテーブルでは、姓と名が別の列になっています。
    • DEPARTMENT列には部門名が含まれています。これをod_employeeテーブルとcompareしてください。このテーブルでは、EMP_DEPT_NO列に数字が含まれています。トランスフォーメーションプロシージャでは、od_departmentテーブルを参照して、複製された部門番号を部門名に変換しました。
    • SALARY列にはod_salaryテーブルの給与が含まれています。
  4. [任意]UPDATEに対してトランスフォーメーションがどのように機能するかを確認するために、od_employeeテーブルを手動で更新することができます。od_transform_employee_updateプロシージャが変換を行います。このデモをさらに進めるために、DELETE用のトランスフォーメーションプロシージャを作成することができます。
関連ドキュメント

The document was helpful.

評価を選択

I easily found the information I needed.

評価を選択