SharePlexがデータをレプリケートするように設定するために、設定ファイルを作成します。
これはASCIIテキストファイルであり、以下を指定します。
設定ファイルを作成する権限があるのは、SharePlex管理者またはオペレータだけです。
設定ファイルが完成したら、activate configコマンドで設定をアクティベーションして、レプリケーションを開始します。詳細については、本番システムでのレプリケーションの開始を参照してください。
sp_ctrlを使用して手作業で設定ファイルを作成することができます。また、データ構造によってサポートされている場合は、スクリプトを使用して設定ファイルの作成を自動化することもできます。
データのレプリケート元のシステム(通常ソースシステム)上に設定ファイルを作成しますが、アクティブ/アクティブレプリケーションなど一部の戦略では、複数のシステム上に設定ファイルが必要です。
sp_ctrlで設定ファイルを作成するには
sp_ctrlで、create configコマンドを発行します。
sp_ctrl> create config config_name
このコマンドにより、オペレーティングシステム用に設定されているデフォルトのテキストエディタでファイルが開かれます。
注意: sp_ctrlが使用するデフォルトのエディタは変更することができます。詳細については、sp_ctrlのデフォルトエディタの設定を参照してください。
設定ファイルを完成させます。詳細については、設定ファイルの構造を参照してください。
重要! すべての設定は、SharePlex変数データディレクトリのconfigサブディレクトリ内に存在する必要があります。このディレクトリ外にある設定ファイルはアクティベーションできません。sp_ctrlインターフェイスからcreate configコマンドを使用して設定を作成すると、SharePlexはデフォルトでこのディレクトリに設定を保存します。テキストエディタで直接設定を作成する場合は、必ずconfigサブディレクトリに保存してください。
スクリプトを使用して設定ファイルを構築するには
注意: Oracleに対してのみ有効です
ソースとターゲットのオブジェクト名が同一であれば、SharePlexが提供する以下のスクリプトを使用して、設定ファイルの構築を自動化することができます。これらのスクリプトは、Oracleデータベースのソースとターゲットのみをサポートします。
オプション | 説明 | 詳細を見るには |
---|---|---|
config.sql | データベース内にあるすべてのテーブルとシーケンスを含む設定ファイルを作成します。ソースとターゲットのオブジェクト名が同一である必要があります。 | 『SharePlexリファレンスガイド』の「構成スクリプト」を参照。 |
build_config.sql | スキーマ内のすべてのテーブルを含む設定ファイルを作成します。ソースとターゲットのオブジェクト名が同一である必要があります。 | 『SharePlexリファレンスガイド』の「構成スクリプト」を参照。 |
基本的な設定ファイルは以下のようになります。
# comment: basic SharePlex configuration file | ||
datasource_specification | ||
#source specification |
target specification |
routing map |
source_owner.object1 |
target_owner.object1 |
routing_map |
source_owner.object2 |
target_owner.object2 |
routing_map |
source_owner.object3 |
target_owner.object3 |
routing_map |
設定ファイルの基本的なコンポーネントは以下の通りです。
コンポーネント | 説明 | 構文の例 |
---|---|---|
# コメント | ファイルの説明や、閲覧者に内容に関するその他の情報を提供する行ですが、SharePlexでは使用しません。各コメント行の前にポンド記号(#)を付けます。コメントは、設定ファイル内の任意の場所に入力できます。 | # これはコメントです。 |
データソース指定 |
ソースデータベースを指定する構文。このコンポーネントは常に、設定ファイルのコメント行を除く最初の行である必要があります。以下の構文要素があり、すべて同じ行にスペースを入れずに記述されます。
|
Datasource:o.SID |
ソース指定 |
サポートされるソースオブジェクトの完全修飾名で、owner.objectの形式で記述します。ownerは、データベースによるオブジェクトの論理的な格納方法によって、スキーマまたはデータベースになります。以下を参照してください。 「オブジェクト名の修飾方法ページ ワイルドカードを使って複数のオブジェクトを指定することができます。所有者名にはワイルドカードを使用できません。詳細については、ワイルドカードを使用した複数のオブジェクトの指定を参照してください。 |
src_owner.table src_owner.sequence |
ターゲット指定 |
レプリケートされたデータが適用されるターゲット。SharePlexがサポートするターゲットは次の通りです。
|
tgt_owner.table tgt_owner.sequence !file[:tgt_owner.table] !jms[:tgt_owner.table] !kafka[:tgt_owner.table] !cdc:tgt_owner.table |
ルーティングマップ |
ターゲット指定で指定されたターゲットオブジェクトを含むシステムにデータを送信する1つ以上のルート 。ルートは以下の要素で構成されます。
ターゲットがJMS、Kafka、ファイルの場合、データベース指定はありません。 ルーティングマップでは、文字と文字の間にスペースを入れることはできません。 |
host@o.SID host@o.PDBalias host@o.tns_alias host@r.database_name host host@c.SID 複合ルーティングマップ: host@o.SID+host@r.database[...] |
SharePlexがキャプチャするオブジェクトとポストするオブジェクトを正しく判断できるように、設定ファイルでは、データベースでオブジェクト名を論理的に保存するのと同じ方法でオブジェクト名を修飾する必要があります。一般的に、SharePlexの構文では以下のように示します。
owner.object
ここで:
設定ファイルでソース側のオブジェクトまたはターゲット側のオブジェクトを定義する場合は、ownerコンポーネントを指定するためのガイドラインに従ってください。
データベース | 完全修飾オブジェクト名 |
---|---|
Aurora | database_name.object_name |
MySQL | database_name.object_name |
Oracle | schema_name.object_name |
PostgreSQL | schema_name.object_name |
SQL Server | schema_name.object_name |
SAP HANA | schema_name.object_name |
このトピックでは、テーブル名を指定する場合や、列のマッピングで列名を明示的に指定する必要がある場合などに、設定ファイルで大文字と小文字を区別する名前を指定する方法を説明します。
オブジェクトの所有者またはオブジェクトの名前の大文字と小文字がデータベース内で区別される場合、SharePlex設定ファイルでその名前を引用符で囲む必要があります。
重要: これは、Oracleのようにデータベース自体が大文字と小文字を区別する名前を引用符で囲むことを要求する場合でも、SQL Serverのようにデータベースが大文字と小文字を区別する名前を引用符なしで記述することを受け入れている場合でも適用されます。
オブジェクト名で大文字と小文字を区別するには:
名前を大文字/小文字の区別を含めて正確に指定し、二重引用符で囲みます。
所有者名とオブジェクト名の両方で大文字と小文字を区別するオブジェクトの指定方法は以下の通りです。
"Owner"."Object"
コンポーネントの1つだけで大文字と小文字を区別するオブジェクトの指定方法は以下の通りです。
owner."Object"または"Owner".object
大文字と小文字を区別しない名前の場合は、大文字と小文字をどのように指定しても問題ありません。
両方の指定方法の例:
Datasource o.oraA |
|
|
sales."Emp" |
"Sales"."Emp" |
sysB@o.oraB |
以下の指定方法は、両方のコンポーネントが1組の引用符内にあるため正しくありません。
"Sales.Employees"
列のマッピングによってソース列名を異なるターゲット列名にマッピングする必要がある場合を除いて、通常、列名は設定ファイルでは指定しません(「ソース列とターゲット列のマッピングページを参照してください)。ただし、ソース列とターゲット列のペアの名前で大文字と小文字が異なる場合は、大文字と小文字を区別するために列のマッピングに含めなければならない場合があります。列のマッピングが必要かどうかは、ターゲットの種類(OracleまたはOpen Target)によって異なります。
OracleからOracleへのレプリケーションで列名の大文字と小文字を区別するには
Oracle間のレプリケーションの場合、OracleのPostプロセスは列名の大文字と小文字の変換を自動的に行いません。ソース列とターゲット列で大文字と小文字が異なる場合は、列のマッピングを使用してソース名の大文字小文字をターゲット名の大文字小文字にマッピングする必要があります。Postに大文字と小文字を区別させるには、名前を正しい大文字/小文字で記述し、二重引用符で囲みます。
以下は、列のマッピングで大文字と小文字を区別する列名をマッピングする例です。
Datasource o.oraA |
|
|
sales.emp(ID,"first","last") |
sales.emp(ID,"First","Last") |
sysB@o.oraB |
Open Targetで列名の大文字と小文字を区別するには:
Open TargetのPostプロセスでは、列名の大文字と小文字の変換が自動的に行われます。大文字小文字が異なるソース列からターゲット列にレプリケートする場合でも、列のマッピングは必要ありません。
データベース指定は、設定ファイルの以下のコンポーネントで必要です。
データベース |
データベースの種類の |
データベース識別子 |
---|---|---|
Oracleソース |
o. |
Oracleデータベースの設定に応じて、以下のいずれかを使用します。これは、SharePlexがデータベースに接続するために使用する文字列です。
|
Open Targetターゲット | r. |
Open Target(Oracle以外)のターゲットデータベースの名前を指定するために使用します(r.mydbなど)。 重要! 実際のデータベース名を使用してください。ODBCデータソース名(DNS)やデータベースインスタンス名を使用しないでください。データベース名が大文字と小文字を区別する場合は、大文字と小文字を正しく指定します。 |
Oracle変更履歴ターゲット | c. |
Oracle変更履歴デー タ ベースのOracle SID、TNSエイリアス、 またはグローバル RAC TNSエイリアスを指定するためにルーティングマップで使用します(c.ORA12CHなど)。この設定では、SharePlexはすべてのソーストランザクションをターゲットテーブルへのINSERTとして適用し、実行されたすべての操作の履歴を保持します。 |
*注意: ドットは必須です。
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center