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

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のデモオブジェクトがインストールされていることを確認します。「デモのための事前の作業ページを参照してください。

このデモでは、レプリケーションのコンフリクトを解決するために一般的なコンフリクト解決手順を使用するようSharePlexを設定します。汎用コンフリクト解決では、1つのPL/SQLプロシージャを使用して複数のテーブルのコンフリクトを解決できます。

以下のようなコンフリクト解決戦略のデモが行われます。

  • タイムスタンプの優先順位 - このデモはUPDATEに基づいています。コンフリクトがある場合は、最後に更新された行が優先されます。
  • 信頼できる情報源の優先順位 - 以下の手順では、1つのシステムを「信頼された」ソースとして定義し、コンフリクトが発生した場合に優先します。このデモはINSERTに基づいています。信頼できる情報源で発生したすべてのINSERTは、他のシステムからのINSERTを上書きします。このデモでは、信頼できるソースをpeer1、もう一方のシステムをpeer2とします。

重要! ピアツーピアレプリケーションは、すべてのビジネスアプリケーションに対応しているわけではありません。環境に適している場合、カスタムのコンフリクト解決手順を作成するなど慎重な分析と実行が必要です。一般的に、それらはこのデモの手順よりも複雑です。このデモは、本番環境でのピアツーピア展開を行う根拠として使用しないでください。ピアツーピアレプリケーションの詳細については、『SharePlex管理ガイド』を参照してください。

オブジェクトの準備

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

両方のシステム両方のデータベースで以下の手順を実行します。

  1. sp_ctrlを実行します。
  2. SharePlexをシャットダウンします。

    sp_ctrl(peer1)> shutdown

  3. SharePlexリファレンスガイド』の指示に従って、ora_cleanspユーティリティを実行します。これにより、前のデモからのキューを削除し、前の設定を非アクティブにします。
  4. od_employeeテーブルをTRUNCATEします。
  5. デモオブジェクトを所有するユーザに、SharePlexの初回インストール時にSharePlexスキーマにインストールされたsp_crパッケージを実行するシステム特権を付与します。

    SQL>grant execute on sp_cr to user_name

  6. SharePlexデモオブジェクトの所有者としてSQL*Plusにログインします。
  7. SharePlex製品ディレクトリのutilサブディレクトリからp2p.sqlスクリプトを実行します。これにより、od_employee_genデモのコンフリクト解決ルーチンがインストールされます。

    以下のプロンプトが表示されます。

    • プロシージャのスキーマとテーブルスペース
    • SharePlexデータベースユーザの名前。
    • 正確なデータの信頼できるソースとなるシステムの名前。本番展開と同様に、コンフリクト解決では信頼できる情報源の操作が優先されます。このデモでは、このシステムをpeer1と呼び、もう1つのシステムをpeer2と呼びます。

SharePlexの設定

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

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

    注意: Postは、レプリケーションの競合が発生したときにこのファイルをチェックし、呼び出すべき解決プロシージャがあるかどうかを判断します。

  2. 各システムで、conflict_resolution.SIDファイルに以下のエントリを作成します。各列を少なくとも数個のスペースかタブ文字で区切ります。

    demo.od_employee IUD demo.od_employee_gen

    注意: 最初のコンポーネントはテーブルで、2番目はそのテーブルで競合が発生した場合に解決ルーチンが呼び出される操作タイプを指定し、3番目は使用される解決ルーチンの名前です。

  3. 各システムで、sp_copを開始します。
  4. 各システムで、sp_ctrlを開始します。
  5. peer1信頼できるソースに、peer2上のod_employeeテーブルにod_employeeテーブルを複製するod_peer1という名前の設定ファイルを作成します。

    sp_ctrl(peer1)> create config od_peer1

    demo.od_employee demo.od_employee peer2@o.SID
  6. peer22番目のソースに、peer1上のod_employeeテーブルにod_employeeテーブルを複製するod_peer2という名前の設定ファイルを作成します。

    sp_ctrl(peer2)> create config od_peer2

    demo.od_employee demo.od_employee peer1@o.SID

注意: すべての列が同一である場合に、postが同期が取れていない挿入を検出できるようにするために、SP_OPO_SUPPRESSED_OOS0に設定します。sp_ctrl:set paramSP_OPO_SUPPRESSED_OOS0からこのコマンドを発行し、list param modifiedコマンドを使用してこのパラメーターが設定されていることを確認します。

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

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

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

    sp_ctrl(peer1)> activate od_peer1
  2. peer2od_peer2の設定をアクティベーションします。

    sp_ctrl(peer2)> activate od_peer2
  3. 各システムで、設定が正常にアクティベーションされたことを確認します。「File Nameファイル名」の下に「od_peer1」または「od_peer2システムにより異なるという名前が表示され、「State状態」の下に「Active」と表示されます。

    sp_ctrl(source)>list config

信頼できるソースの優先度のデモ

このデモでは、peer1で発生したINSERTで、peer2から複製された競合するINSERTが上書きされます。

  1. 両方のシステムで、Postプロセスを停止します。
  2. 両方のシステムで、demoデモオブジェクトのオーナーとしてSQL*Plusにログインします。
  3. peer2od_employeeに行を挿入しますが、COMMITは発行しません。

    SQL (peer2) > INSERT INTO OD_EMPLOYEE VALUES (1,'John','Doe',to_date('04/01/1949','MM/DD/RRRR'),1,to_date('01/01/2017','MM/DD/RRRR'));

  4. peer1で同じ行同じ値を挿入しますが、COMMITは発行しません。

    SQL (peer1) > INSERT INTO OD_EMPLOYEE VALUES (1,'John','Doe',to_date('04/01/1949','MM/DD/RRRR'),1,to_date('01/01/2017','MM/DD/RRRR'));

  5. 両方のシステムで、Postプロセスを再開します。
  6. peer2でCOMMITを発行します。
  7. peer1でCOMMITを発行します。この操作によってコンフリクトが発生しますが、Postはconflict_resolution.SIDファイルの指示に基づいて自動的に解決します。
  8. 両方のシステムで、demo.exc_tableを表示し、競合が解決されたことを確認します。「コンフリクト解決の結果を見る」を参照してください。

タイムスタンプの優先度のデモ

このデモでは、コンフリクトがある場合、最後に更新された行が優先されます。

注意: タイムスタンプの優先度を機能させるためには、EMP_TIMESTAMPフィールドおよび他の列をNULLでない値に変更しなければなりません。UPDATE文のtimestamp列が更新されていないか、NULL値に変更されている場合、ストアドプロシージャは競合を解決できません。同期外れの問題が発生します。

  1. 両方のシステムで、Postプロセスを停止します。
  2. 両方のシステムで、demoデモオブジェクトのオーナーとしてSQL*Plusにログインします。
  3. peer1で、od_employeeテーブルのEMP_FIRST_NAMEEMP_TIMESTAMP列を以下のようにUPDATEします。

    SQL (peer1) > UPDATE OD_EMPLOYEE SET EMP_FIRST_NAME = 'James', EMP_TIMESTAMP = to_date('01/01/2017','MM/DD/RRRR') WHERE EMP_NO = 1;

  4. peer2で、異なる更新値を使用して同じ列をUPDATEします。ただし、キー値は同じにします。

    SQL (peer2) > UPDATE OD_EMPLOYEE SET EMP_FIRST_NAME = 'Harry', EMP_TIMESTAMP = to_date('02/02/2017','MM/DD/RRRR') WHERE EMP_NO = 1;

  5. 両方のシステムで、同時にCOMMITを発行します。

  6. 両方のシステムで、Postキューを表示して、更新操作がキューに入っていることを確認します。それぞれのキューにメッセージが表示されます。

    sp_ctrl(peer1)>qstatus

    sp_ctrl(peer2)>qstatus

  7. 両方のシステムで、Postプロセスを開始します。
  8. 両方のシステムで、更新した行を選択し、より新しいEMP_TIMESTAMP値が含まれていることを確認します。

コンフリクト解決の結果を見る

exc_tableという名前のテーブルが、デモオブジェクトのインストール時に指定したスキーマにインストールされました。SQL*Plusを使って、それぞれのコンフリクトに関する情報を見ることができます。以下はテーブルの説明です。

説明
EXC_NO コンフリクトの例外番号。
EXC_TYPE SQL 文の種類。INSERT、UPDATE、DELETE のいずれか。
EXC_TARGET_TABLE コンフリクトが発生したテーブル。
EXC_FIXED

コンフリクト解決ルーチンの結果。YESは、ルーチンが成功したことを意味します。NOは、ルーチンが失敗し、行を手動で正しい値に変更する必要があることを意味します。

EXC_INFO コンフリクトの原因。
EXC_TIMESTAMP このマシンでコンフリクトが発生した時間。

Oracle DDLレプリケーションのデモ

このデモでは、SharePlexのインストール時に有効化されるデフォルトのDDLレプリケーションサポートを示します。必要に応じて、パラメーターを使用して他のDDLレプリケーションを有効にすることができます。

注意: このデモはOracleソースとターゲットのみをサポートしています。

DDLレプリケーションが有効になっていることを確認する

ソースで、SP_OCT_REPLICATE_DDLパラメーターがデフォルトの3に設定されていることを確認します。このパラメーターは基本的なDDLレプリケーションを制御します。

sp_ctrl(source)>list param modified capture

SP_OCT_REPLICATE_DDLパラメーターは出力にリストされません。リストされている場合は、次のコマンドを発行します。

sp_ctrl(source)>reset param SP_OCT_REPLICATE_DDL

DDLレプリケーションのテスト

DDLレプリケーションをテストするには、以下の手順を実行します。

  1. ソース上でsplex.demo_srcをTRUNCATEして空にします。

    SQL> truncate table splex.demo_src;

    SharePlexはTRUNCATEコマンドをターゲットに複製します。

  2. ソース上でsplex.demo_srcに列を追加します。

    SQL> alter table splex.demo_src add (department varchar2(30) not null default 'unknown');

  3. ターゲット上でsplex.demo_destテーブルを記述します。

    SQL> describe splex.demo_src;

    テーブルには、新しいdepartment列を含む4つの列が含まれています。

  4. ソース上で、department列を削除します。

    SQL> alter table splex.demo_src drop column department;

  5. ターゲット上でsplex.demo_destテーブルを記述します。

    SQL> describe splex.demo_src;

    これでテーブルには元の3列だけが含まれるようになります。

データベース・セットアップ・ユーティリティ

データベース・セットアップ・ユーティリティは、SharePlex接続を許可し、レプリケーションをサポートする必要なデータベースコンポーネントを確立するために、ソースまたはターゲットデータベースを自動的に設定します。

内容

HANAのセットアップ(hana_setup)

HANAのデータベースセットアップ

概要

ターゲットHANAシステムでHANAのデータベース・セットアップ・ユーティリティhana_setupを実行し、SharePlexで使用するユーザアカウント、スキーマ、テーブルを確立します。

サポート対象データベース

サポート対象プラットフォーム上のHANA

使用ガイドライン

  • SharePlexのレプリケーション設定のすべてのターゲットHANAインスタンスでセットアップユーティリティを実行します。
  • サーバクラスタ内の、SharePlexの変数ディレクトリを含む共有ディスクへのマウントポイントがあるノードでセットアップユーティリティを実行します。
  • 統合レプリケーションの場合は、各変数データディレクトリでセットアップユーティリティを実行します。
  • HANAへの接続方法としてサポートされているのは接続文字列のみです。DSNを介した接続はサポートされていません。

  • このセットアッププロセスで示される必要な権限が割り当てられていることを確認してください。

必要な権限

セットアップユーティリティは、データベース上で動作し、SharePlexデータベースアカウントを作成するうえで必要な権限をSharePlexに付与するために、HANA管理者として実行する必要があります。

HANAのデータベースセットアップの実行

  1. ターゲットシステムで実行中のすべてのSharePlexプロセスとsp_copを停止します。
  2. SharePlexの製品ディレクトリのbinサブディレクトリからhana_setupプログラムを実行します。

重要!SharePlexインスタンスをデフォルトの2100以外のポートにインストールした場合は、-pオプションを使用してポート番号を指定します。例えば、以下のコマンドではポート番号は9400です。

$ /users/splex/bin> hana_setup -p9400

表5: セットアップのプロンプトと対応

プロンプト 対応

Enter the HANA connection string [] :

HANAデータベースシステムに接続する接続文字列を入力します。HANAに接続するためにSharePlexが接続文字列に必要なコンポーネントは以下の通りです。

  • SERVERNODE: ターゲットHANAサーバ名、コロン、HANAポート番号。
  • DRIVER: HANA ODBCドライバへのパス。
  • CHAR_AS_UTF8: これをCHAR_AS_UTF8=1として渡されなければなりません。

例:

SERVERNODE=server1.dept.abc.corp:30015;DRIVER=/usr/sap/hdbclient/libodbcHDB.so;CHAR_AS_UTF8=1

ユーザ、パスワード、およびデフォルトのデータベースは、セットアップユーティリティによって尋ねられるため指定する必要はありません。

Enter the HANA Administrator name :

HANA管理者の名前を入力します。このユーザはSharePlexアカウントで作業を行います。

Enter the password for the Administrator account :

管理者のパスワードを入力します。

Enter the name of the database :

SharePlexで使用するテーブルやその他のオブジェクトを格納するデータベースの名前を入力します。新規または既存のデータベース名を入力できます。

Database name database does not exist. Would you like to create it? [y] :

このプロンプトが表示される場合、指定されたデータベースは存在しません。Enterキーを押し、セットアップユーティリティで作成します。

Would you like to create a new SharePlex user [y]:

Enterキーを押してデフォルトを受け入れ、指定したデータベースに新しいSharePlexデータベース・ユーザ・アカウントを作成するか、「n」と入力して既存のSharePlexアカウントを使用します。

Enter the name of the new SharePlex user:

Enter the name of the existing SharePlex user:

新規ユーザを作成するか、既存のユーザを使用するかによって、これらのプロンプトのいずれかが表示されます。SharePlexユーザの名前を入力します。

 

Enter the password of the SharePlex user :

SharePlexユーザアカウントのパスワードを入力します。

Re-enter the password for the SharePlex user :

このプロンプトは、新規ユーザを作成した場合にのみ表示されます。SharePlexのパスワードを再度入力します。

正常にセットアップされると、次のようなメッセージで終了します:

Completed SharePlex for HANA database configuration

SharePlex User name: splex

Database name: ndb5

Target specification in SharePlex configuration: r.ndb5

SharePlexへの権限の付与

HANAターゲットへのSharePlexのレプリケーションを開始する前に、以下の権限をそのターゲットのSharePlexデータベースユーザSP_USERSharePlexデータベースユーザの名前に付与します。

  • GRANT USER ADMIN TO sp_user;
  • GRANT TABLE ADMIN TO sp_user;
  • GRANT CATALOG READ TO sp_user;
  • GRANT DATA ADMIN TO sp_user WITH ADMIN OPTION;
  • GRANT ROLE ADMIN TO sp_user WITH ADMIN OPTION;

さらに、レプリケートするオブジェクトを含む各スキーマの所有者としてログインし、そのスキーマで以下のように付与します。

  • GRANT CREATE ANY ON SCHEMA schema_name TO sp_user;
  • GRANT DEBUG ON SCHEMA schema_name TO sp_user;
  • GRANT DELETE, DROP, EXECUTE, INDEX, INSERT, SELECT, UPDATE ON SCHEMA schema_name TO sp_user;
関連ドキュメント

The document was helpful.

評価を選択

I easily found the information I needed.

評価を選択