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環境変数

PDBとの間のレプリケーション

キャプチャとデリバリの設定

SharePlexは、1つのPDBから以下へデータをレプリケートすることができます。

  • 同じCDB内の別のPDB
  • 別のCDBにあるPDB
  • 通常のPDBでないターゲット

SharePlexは、通常のソースデータベースからターゲットOracle CDB内のPDBにデータをレプリケートすることができます。

1つの設定ファイルで、同じCDBまたは別のCDBにある任意の数のターゲットPDBにレプリケートできます。

PDBからキャプチャするには:

  • 設定ファイルで、PDBのTNSエイリアスをデータソースとして指定します。例えば、TNSのエイリアスがpdb1の場合、データソースの指定は次のようになります。

    Datasource: o.pdb1

  • 同じCDBにある希望する数のプラガブルデータベースPDBからレプリケートすることができます。PDBごとに個別の設定ファイルを作成します。PDBはそれぞれが異なるデータソースのため、すべての設定を同時にアクティブにすることができます。
  • システム上の複数のPDBからレプリケートする場合は、名前付きexportキューを使用して、各PDBからのデータストリームを分離します。これにより、他の設定に影響を与えることなく、1つの設定に対して設定に影響を与えるSharePlexコマンドpurge configやabort configなどを発行することができます。詳細については、「名前付きexportキューの設定

PDBにレプリケートするには:

pdb2がターゲットである次の例のように、ルーティングマップにターゲットPDBのTNSエイリアスを指定します。

sys02@o.pdb2

PDBの設定の例

例1: この例では2つの設定ファイルを示します。1つはpdb1から、もう1つはpdb2からレプリケートし、いずれもpdb3にデータをレプリケートします。

Datasource: o.pdb1
hr.emp    hr2.emp2    sys02@o.pdb3
Datasource: o.pdb2 	 
sales.cust    sales2.cust2    sys02@o.pdb3

例2: この例では1つの設定ファイルを示します。pdb1からpdb2およびpdb3にレプリケートし、両方のターゲットが別のシステム上にあります。

名前付きキューの設定

この章では、名前付きキューの高度なSharePlex設定オプションの使用方法を説明します。これらのオプションによって、特定の処理とルーティングの要件を満たすためにデータを分割および並列化するための高いレベルの柔軟性が実現されます。先に進む前に、データをレプリケートするためのSharePlexの設定に関わる概念とプロセスを確実に理解してください。

内容

名前付きexportキューの設定

名前付きexportキューは、独自のExportプロセスに接続される、オプションのユーザ定義exportキューです。SharePlexはデフォルトのexportキューとプロセスのペアに加え、それぞれの名前付きexportキューと関連するExportプロセスを作成します。SharePlexは、名前付きexportキューとプロセスのペアを作成するときに、そのデータストリームを含めるために、ターゲット上に専用のImportプロセス、postキュー、Postプロセスも作成します。

設定ファイルを作成するときに、1つ以上の名前付きexportキューを作成するようにSharePlexに指示します。名前付きexportキューで処理するように設定されていないデータは、デフォルトのexportキューで処理されます。

サポート対象のソースとターゲット

  • PostgreSQLからPostgreSQL、Oracle、SQL Server、Kafkaへ

  • Oracleから全ターゲットへ

名前付きexportキューのメリット

名前付きexportキューを使用して、以下のレプリケーションを分離します。

  • の設定: デフォルトでは、SharePlexはすべてのアクティブな設定から、ターゲットシステムごとに1つのexportキューとプロセスのペアを通じてデータを送信しますが、名前付きexportキューを使用することで、これらのレプリケーションストリームをそれぞれ独自のexportキューとExportプロセスに分離することができます。このようにして、ある設定に対して発行されたpurge configコマンドやabort configコマンドが、他の設定に影響を与えないようにできます。
  • 選択されたデータベースオブジェクト: 名前付きexportキューを使用して、LOBを含むテーブルなど、特定のオブジェクトを分離できます。名前付きexportキューはそれぞれ、ターゲット上に独自のImportプロセス、postキュー、Postプロセスを持つため、ソースからターゲットまでの全行程でデータを分離することができます。名前付きpostキューの利点については、「名前付きpostキューの設定ページを参照してください。

その他のメリット:

  • あるデータストリームのExportプロセスまたはImportプロセスを停止している間に、他のデータストリームのプロセスを継続することができます。
  • SharePlexパラメータは、exportキューとプロセスのペアごとに異なる設定にできます。これにより、それぞれを通じてレプリケートされるオブジェクトに基づいて、Exportプロセスのパフォーマンスを調整できます。

名前付きexportキューを使用する際の考慮事項

  • 各キュー名は必ず一意にしてください。
  • 名前付きexportキューとデフォルトのexportキューを組み合わせることができます。標準的なルーティングマップ名前付きキュー指定のないtargetsys@database_specを持つ設定内のテーブルは、デフォルトのexportキューを通してレプリケートされます。

  • 互いに参照整合性を持つすべてのテーブルは、同じexportキュー内に存在する必要があります。
  • SharePlexには許可されるキューの最大数があります。詳細については、設定ファイル内のルーティング指定を参照してください。

名前付きexportキューの設定: Oracleから全ターゲットへ

名前付きexportキューを含むルーティングマップを定義するには、以下の構文を使用します。

source_host:export_queuename*target_host[@database]

ルーティングマップに名前付きexportキューを含む設定
Datasource: o.SID
src_owner.table tgt_owner.table

source_host:export_queue*target_host[@database_specification]

ルーティングコンポーネント 説明
source_host ソースシステムの名前。
export_queue

exportキューの名前。キュー名はすべてのプラットフォームで大文字と小文字が区別されます。複数の単語は使用できません。アンダースコアでつなげることはできます。以下に例を示します。

sys1:export_q1*sys2@o.myora

target_host ターゲットシステムの名前。
データベース指定

データソースの場合、以下のいずれか:

o.oracle_SID

r.database_name

 

対象がデータベースの場合は、以下のいずれか:

o.oracle_SID

o.tns_alias

o.PDBname

r.database_name

c.oracle_SID

注意:

次の設定ファイルは、同じターゲットシステム上の2つの異なるデータベースにレプリケートされる2つの異なるデータソースを示しています。各データソースは、名前付きexportキューを通してルーティングされます。

Datasource:o.oraA    
scott.emp scott.emp sysA:QueueA*sysB@o.oraC
scott.sales scott.sales sysA:QueueA*sysB@o.oraC

 

Datasource:o.oraB    
scott.prod scott.prod sysA:QueueB*sysB@o.oraD
scott.cust scott.cust sysA:QueueB*sysB@o.oraD

 

以下は、名前付きexportキューを使用して、LOBを含むテーブルを他のテーブルから分離する方法を示しています。

Datasource:o.oraA    
scott.cust scott.cust sysA:QueueA*sysB@o.oraC
scott.sales scott.sales sysA:QueueA*sysB@o.oraC
scott.prod scott.prod sysA:QueueA*sysB@o.oraC
scott.emp_LOB scott.emp_LOB sysA:QueueB*sysB@o.oraC

 

あるいは、LOBテーブル用に名前付きexportキューを定義し、残りのテーブルはデフォルトのexportキューで処理するようにすることもできます。

Datasource:o.oraA    
scott.cust scott.cust sysB@o.oraC
scott.sales scott.sales sysB@o.oraC
scott.prod scott.prod sysB@o.oraC
scott.emp_LOB scott.emp_LOB sysA:lobQ*sysB@o.oraC

PostgreSQL用の名前付きexportキューの設定

名前付きexportキューを含むルーティングマップを定義するには、以下の構文を使用します。

source_host:export_queuename*target_host[@database]

サポート対象

PostgreSQL、Oracle、SQL Server、Kafka

ルーティングマップに名前付きexportキューを含む設定
Datasource:r.dbname
src_schema.table tgt_schema.table

source_host:export_queue*target_host[@database_specification]

ルーティングコンポーネント 説明
source_host ソースシステムの名前。
export_queue

exportキューの名前。キュー名はすべてのプラットフォームで大文字と小文字が区別されます。複数の単語は使用できません。アンダースコアでつなげることはできます。以下に例を示します。

sys1:export_q1*sys2@r.dbname

target_host ターゲットシステムの名前。
データベース指定

r.database_name

注意: ルーティングマップの構文では、コンポーネント間にスペースを入れないでください。

次の設定ファイルは、同じターゲットシステム上の2つの異なるデータベースにレプリケートされる2つの異なるデータソースを示しています。各データソースは、名前付きexportキューを通してルーティングされます。

Datasource:r.dbnameA    
scott.emp scott.emp sysA:QueueA*sysB@r.dbnameC
scott.sales scott.sales sysA:QueueA*sysB@r.dbnameC

 

Datasource:r.dbnameB    
scott.prod scott.prod sysA:QueueB*sysB@r.dbnameD
scott.cust scott.cust sysA:QueueB*sysB@r.dbnameD

 

以下は、名前付きexportキューを使用して、LOBを含むテーブルを他のテーブルから分離する方法を示しています。

Datasource:r.dbnameA    
scott.cust scott.cust sysA:QueueA*sysB@r.dbnameC
scott.sales scott.sales sysA:QueueA*sysB@r.dbnameC
scott.prod scott.prod sysA:QueueA*sysB@r.dbnameC
scott.emp_LOB scott.emp_LOB sysA:QueueB*sysB@r.dbnameC

 

あるいは、LOBテーブル用に名前付きexportキューを定義し、残りのテーブルはデフォルトのexportキューで処理するようにすることもできます。

Datasource:r.dbnameA    
scott.cust scott.cust sysB@r.dbnameC
scott.sales scott.sales sysB@r.dbnameC
scott.prod scott.prod sysB@r.dbnameC
scott.emp_LOB scott.emp_LOB sysA:lobQ*sysB@r.dbnameC

名前付きexportキューを特定する方法

名前付きexportキューは、sp_ctrlを使用して表示できます。

  • システム上のすべてのキューを表示するには、qstatusコマンドを使用します。
  • すべてのExportプロセスとそのキューを表示するには、showコマンドを使用します。

これらのコマンドの詳細については『SharePlexリファレンスガイド』を参照してください。

名前付きpostキューの設定

名前付きpostキューは、設定ファイル内のルーティングマップのオプションコンポーネントです。名前付きpostキューは、ユーザが定義したpostキューであり、独自のPostプロセスを持ち、デフォルトのpostキューとPostプロセスと並行して動作します。1つ以上の名前付きpostキューとプロセスのペアを定義して、一連の並列Postレプリケーションストリームを確立することができます。

サポート対象のソースとターゲット

  • PostgreSQLからPostgreSQL、Oracle、SQL Server、Kafkaへ

  • Oracleから全ターゲットへ

名前付きpostキューのメリット

名前付きpostキューを使用して、異なるテーブルからのデータを2つ以上の個別のPostストリームに分離することができます。名前付きpostキューを使用することで、処理のボトルネックの原因となる以下のようなオブジェクトを分離し、ポストパフォーマンスを向上させることができます。

  • 大規模テーブル
  • LOB列を持つオブジェクト。LOBを含むオブジェクトには名前付きpostキューが推奨されます。
  • 大規模なトランザクションを伴うオブジェクト。
  • 操作を分離したいオブジェクト。

残りのオブジェクトは、追加の名前付きpostキューを通して処理するか、デフォルトのpostキューを使用します。標準的なルーティングマップhost@target を持つ設定ファイル内のオブジェクトは、デフォルトのpostキューを通じてレプリケートされます。

水平分割を使って、非常に大きなテーブルの行を別の名前付きpostキューに分割することで、並列性を高めることができます。

SharePlexパラメータは、キューとプロセスのペアごとに異なる設定にできます。これにより、それぞれを通じてレプリケートされるオブジェクトに基づいて、Postプロセスのパフォーマンスを調整できます。

名前付きpostキューを使用する際の考慮事項

  • analyze configコマンドは、テーブルが持つ依存関係や個のトランザクションのアクティビティに基づいて、テーブルをどのように名前付きキューに編成するかを決定するのに役立ちます。一定期間にわたってこのコマンドを実行して典型的なデータベースアクティビティをキャプチャし、コマンド出力を確認します。
  • 各postキューに一意の名前を割り当てます。
  • オブジェクトがリレーショナルな依存関係によってリンクされている場合、それらのオブジェクトはすべて、同じ名前のpostキューを通して処理します。相互に依存するオブジェクトが同じpostキューを通してレプリケートされない場合、親と子の操作が順番通りに適用されず、データベースエラーを引き起こす可能性があります。相互に依存するオブジェクトを同じキューで処理する代わりに、ターゲット上で参照制約を無効にすることができます。この設定を許容できるのは、ソースシステムで制約が満たされてからターゲットにレプリケートされるからです。
  • 複数のPostを使用する場合、常にターゲットオブジェクトが対応するソースオブジェクトと同じ順序で変更されるとは限らず、その結果、任意の時点でターゲットデータベースがソースデータベースと不整合になる可能性があります。
  • アクティブな設定内のオブジェクトに名前付きpostキューを実装するとそれによってルーティングが変更されますSharePlexはそれらのオブジェクトをロックして内部の指示を更新します。
  • SharePlexには許可されるキューの最大数があります。詳細については、設定ファイル内のルーティング指定を参照してください。

名前付きpostキューの設定: Oracleから全ターゲットへ

名前付きexportキューを使用している場合、SharePlexはデフォルトで各キューに名前付きpostキューとプロセスのペアを作成します。名前付きexportキューを使用していない場合は、以下の構文を使用して、ルーティングマップに:queueコンポーネントを追加することで、設定ファイルに名前付きpostキューを定義します。

host:queue@target

ルーティングマップに名前付きpostキューを含む設定
Datasource: o.SID
src_owner.table tgt_owner.table

host:queue[@database_specification]

ルーティングコンポーネント 説明
host ターゲットシステムの名前。
キュー

postキューの一意の名前。キュー名はすべてのプラットフォームで大文字と小文字が区別されます。複数の単語は使用できません。アンダースコアでつなげることはできます。以下に例を示します。

sys2:post_q1@o.myora

database_specification

データソースの場合、以下のいずれか:

o.oracle_SID

対象がデータベースの場合は、以下のいずれか:

  • o.oracle_SID

    o.tns_alias

    o.PDBname

    r.database_name

    c.oracle_SID

注意:

以下の設定では、テーブルscott.empからデータをルーティングするQueue1という名前のpostキューと、テーブルscott.custからデータをルーティングするQueue2という名前のpostキューを作成します。

Datasource:o.oraA    
scott.emp scott.emp sysB:Queue1@o.oraC
scott.cust scott.cust

sysB:Queue2@o.oraC

 

以下は、中間システムを使用したパススルー構成でデータをルーティングする場合に、名前付きpostキューを指定する方法を示しています。詳細については、データを共有または配布するためのレプリケーションの設定を参照してください。

Datasource:o.oraA    
scott.emp scott.emp sysB*sysC:Queue1@o.oraC

PostgreSQL用の名前付きpostキューの設定

名前付きexportキューを使用している場合、SharePlexはデフォルトで各キューに名前付きpostキューとプロセスのペアを作成します。名前付きexportキューを使用していない場合は、以下の構文を使用して、ルーティングマップに:queueコンポーネントを追加することで、設定ファイルに名前付きpostキューを定義します。

host:queue@target

サポート対象

PostgreSQL、Oracle、SQL Server、Kafka

ルーティングマップに名前付きpostキューを含む設定
Datasource:r.dbname
src_schema.table tgt_schema.table

host:queue[@database_specification]

ルーティングコンポーネント 説明
host ターゲットシステムの名前。
キュー

postキューの一意の名前。キュー名はすべてのプラットフォームで大文字と小文字が区別されます。複数の単語は使用できません。アンダースコアでつなげることはできます。以下に例を示します。

sys2:post_q1@r.dbname

database_specification

r.database_name

注意: ルーティングマップの構文では、コンポーネント間にスペースを入れないでください。

以下の設定では、テーブルscott.empからデータをルーティングするQueue1という名前のpostキューと、テーブルscott.custからデータをルーティングするQueue2という名前のpostキューを作成します。

Datasource:r.dbname    
scott.emp scott.emp sysB:Queue1@r.dbname
scott.cust scott.cust

sysB:Queue2@r.dbname

 

以下は、中間システムを使用したパススルー構成でデータをルーティングする場合に、名前付きpostキューを指定する方法を示しています。

Datasource:r.dbname    
scott.emp scott.emp sysB*sysC:Queue1@r.dbname

名前付きpostキューを特定する方法

名前付きpostキューは、データソースデータのレプリケーション元と以下のいずれかによって識別されます。

  • 関連付けられた名前付きexportキューの名前Importが名前付きexportキューにリンクされている場合
  • ユーザが割り当てたpostキューの名前Importがデフォルトのexportキューにリンクされている場合

名前付きpostキューは、sp_ctrlを使用して表示できます。

  • システム上のすべてのキューを表示するには、qstatusコマンドを使用します。
  • すべてのPostプロセスとそのキューを表示するには、showコマンドを使用します。

これらのコマンドの詳細については『SharePlexリファレンスガイド』を参照してください。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating