CData Sync App は、Oracle データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。
Oracle OCI コネクタはCData Sync アプリケーションから使用可能で、Oracle OCI からデータを取得して、サポートされている任意の同期先に移動できます。
Sync App はOracle Database 11.2 以降に接続できます。Sync App は同梱されているOracle OCI ライブラリを必要とします。
正しい環境変数はプラットフォームに依存します。
Application Data-Source ウィザードを使用してOracle コネクタをダウンロードする場合は、ネイティブライブラリはOracle ドライバーと一緒にダウンロードされます。これらのライブラリはアプリケーションフォルダのwww/bin ディレクトリに配置されます。Oracle OCI ディレクトリを含めるには、Oracle OCI ディレクトリを含めるように環境変数を編集するか、この環境変数の既存のパスにOracle OCI ディレクトリをコピーする必要があります。その後、アプリケーションを再起動してOracle ネイティブライブラリをロードします。
必須プロパティについては、設定タブを参照してください。
通常必須ではない接続プロパティについては、高度な設定タブを参照してください。
次に例を示します。
DataSource='(DESCRIPTION=(ADDRESS=(protocol_address_information))(CONNECT_DATA= (SERVICE_NAME=service_name)))'
接続文字列は以下のようになります。
LDAPUri=ldap://myldap.com:389/SERVICE_EXMPL,cn=OracleContext,dc=example,dc=com; User=ORACLEUSER; Password=OracleUserPassword;この接続タイプは、Oracle とLDAP の両方のユーザー名とパスワードが必要であることに注意してください。 システム管理者が匿名でのLDAP ログインを許可している場合は、LDAP のユーザー名とパスワードは必要ありません。
Oracle は、ソースデータベースからの変更を追跡するために以下の2つの方法を提供しています。
Oracle Flashback は、CData Sync に効率的な追跡メカニズムを提供する軽量ソリューションです。テーブルで設定を行うと、Sync はソーステーブルに対してFlashback クエリを実行し、前回の実行以降にテーブルにどのような変更が加えられたかを判断することができます。
Oracle Logminer はREDO ログの変更を追跡し、それによりSync はそのログを読んで特定のテーブルへの変更を判断することができます。Orcale Flahsback との主な違いは、Sync がソーステーブルを操作しないことです。その代わりにSync はログを直接読み込むため、ソースデータベースへの影響が少なくなります。
--Check if ArchiveLog is enabled already
SELECT LOG_MODE FROM V$DATABASE
--If LOG_MODE does not equal ARCHIVELOG
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
--Database level
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
--Table level
ALTER TABLE <schema_name>.<table_name> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
CData Sync で、Oracle データソースでジョブを作成して変更データキャプチャオプションを選択します。
CREATE TABLESPACE <tablespace_name> DATAFILE SIZE 100M AUTOEXTEND ON MAXSIZE 200M;
CREATE FLASHBACK ARCHIVE <archive_name> TABLESPACE <tablespace_name> RETENTION 7 DAY;
RETENTION は、アーカイブ情報がデータベースに保持される期間を指定します。コンフリクトやエラーを解決する時間をSync に与えるために、大きめの枠を設定することを推奨します。最後に正常に実行されたジョブが保持期間外であった場合(例:RETENTION が7日に設定されているが、最後に同期が成功したのが8日前であった場合)、Sync は自動的にテーブル全体を複製し、変更漏れがないことを確認します。 ALTER TABLE <table_name> FLASHBACK ARCHIVE <archive_name>;
Note: Flashback を使用するには、各テーブルに少なくとも1つの主キーが必要です。CData Sync で、Oracle データソースでジョブを作成してUse Oracle Flashback オプションを選択します。
このセクションでは、Oracle OCI Sync App の高度な機能を厳選して説明します。
SSL の設定 を使用して、Sync App が証明書のネゴシエーションをどのように扱うかを調整します。さまざまな証明書形式を選択できます。詳しくは、「接続文字列オプション」にあるSSLServerCert プロパティを参照してください。
Windows プロキシを含むファイアウォールとプロキシ に合致するようSync App を設定します。トンネル接続を設定することもできます。
デフォルトでは、Sync App はサーバーとのTLS のネゴシエーションを試みます。サーバー証明書は、デフォルトのシステム信頼済み証明書ストアで検証されます。SSLServerCert 接続プロパティを使用して、証明書の検証方法をオーバーライドできます。
別の証明書を指定するには、SSLServerCert 接続プロパティを参照してください。
次のプロパティを設定します。
プロパティ | 説明 |
ConnectionType | Connection properties to use for authentication. Accepted entries are Server, OracleTNS, LDAP. |
Server | Oracle データベースをホスティングしているサーバーのホスト名またはIP アドレス。 |
Port | Oracle データベースをホスティングしているサーバーに接続する際のポート。 |
ServiceName | Oracle データベースのサービス名。 |
User | 認証するOracle OCI ユーザーアカウントのユーザーID を指定します。 |
Password | 認証するユーザーアカウントのパスワードを指定します。 |
DataSource | Oracle ネット・サービス名、接続記述子(TNS 接続文字列)、または接続名を使用して、接続するOracle データベースを指定します。 |
LDAPUri | LDAP サーバーに接続するためのLDAP uri。 |
LDAPUser | LDAP サーバーのユーザーアカウント。 |
LDAPPassword | LDAP ユーザーのパスワード。 |
LDAPVersion | サーバーに接続し、通信する際に使われるLDAP バージョン。 |
Wallet | クライアントのOracle Wallet の場所。 |
プロパティ | 説明 |
LogModules | ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。 |
プロパティ | 説明 |
Location | テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。 |
BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
Tables | レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。 |
Views | レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。 |
IncludeSynonyms | Query metadata for synonyms as though they are the original tables. |
ShowMetadataDescriptions | Controls whether table and column descriptions are returned via the platform metadata APIs and sys_tables / sys_views / sys_tablecolumns. |
UseDBAMetadataViews | Query meta data from DBA_.. system views instead of ALL_.. system views. |
プロパティ | 説明 |
AllowPreparedStatement | クエリステートメントを実行前に準備します。 |
MaxLobSize | パラメータ化されていないSELECT クエリでクエリ可能なバイト数、もしくはUTF-8 キャラクタ数。 |
MaxRows | 集計やGROUP BY を使用しないクエリで返される最大行数を指定します。 |
NativeFolder | provider が動作するネイティブdll を含むディレクトリへのパス。このプロパティは、Windows およびmacOS プラットフォームでのみ有効です。 |
Other | 特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。 |
QueryPassthrough | このオプションは、クエリをOracle OCI サーバーにas-is で渡します。 |
ReconnectTimeout | 最大アイドル時間超過エラーでサーバーに再接続を試みるまでのスリープ時間(秒)。 |
ReconnectTries | 最大アイドル時間超過エラーがサーバーから返された際に、サーバーへの接続を再試行する回数。 |
このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。
プロパティ | 説明 |
ConnectionType | Connection properties to use for authentication. Accepted entries are Server, OracleTNS, LDAP. |
Server | Oracle データベースをホスティングしているサーバーのホスト名またはIP アドレス。 |
Port | Oracle データベースをホスティングしているサーバーに接続する際のポート。 |
ServiceName | Oracle データベースのサービス名。 |
User | 認証するOracle OCI ユーザーアカウントのユーザーID を指定します。 |
Password | 認証するユーザーアカウントのパスワードを指定します。 |
DataSource | Oracle ネット・サービス名、接続記述子(TNS 接続文字列)、または接続名を使用して、接続するOracle データベースを指定します。 |
LDAPUri | LDAP サーバーに接続するためのLDAP uri。 |
LDAPUser | LDAP サーバーのユーザーアカウント。 |
LDAPPassword | LDAP ユーザーのパスワード。 |
LDAPVersion | サーバーに接続し、通信する際に使われるLDAP バージョン。 |
Wallet | クライアントのOracle Wallet の場所。 |
Connection properties to use for authentication. Accepted entries are Server, OracleTNS, LDAP.
Together with Password and User, this field is used to choose connection properties that are used to authenticate against the server. Server is the default option. Use the following options:
Oracle データベースをホスティングしているサーバーのホスト名またはIP アドレス。
Oracle データベースをホスティングしているサーバーのホスト名またはIP アドレス。
Oracle データベースをホスティングしているサーバーに接続する際のポート。
Oracle データベースをホスティングしているサーバーに接続する際のポート。
Oracle データベースのサービス名。
XE などのOracle データベースのサービス名。
この値はOracle SQL コマンドラインからglobal_name をクエリすることで取得できます。
Oracle ネット・サービス名、接続記述子(TNS 接続文字列)、または接続名を使用して、接続するOracle データベースを指定します。
Oracle ネット・サービス名、接続記述子(TNS 接続文字列)、または接続名を使用して、接続するOracle データベースを指定します。この値は、ORACLE_HOME/network/admin/tnsnames.ora のtnsnames.ora ファイルで確認できます。
例:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=my.company.net)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLPDB1.localdomain)))
LDAP サーバーに接続するためのLDAP uri。
LDAP サーバーに接続し、TNS レコード形式でLDAP サーバーに保存されているOracle のサービス名を検索するためのLDAP uri。
LDAP サーバーのユーザーアカウント。
LDAP サーバーがバインドするために認可を必要とする場合に使用します。その他の場合は空欄にしておきます。
LDAP ユーザーのパスワード。
LDAP サーバーがバインドするために認可を必要とする場合に使用します。その他の場合は空欄にしておきます。
サーバーに接続し、通信する際に使われるLDAP バージョン。
2 または3 に設定します。Sync App は、RFC 1777、2251、およびその他のLDAP RFC で指定された標準LDAP クライアントに接続します。
クライアントのOracle Wallet の場所。
このプロパティは、セキュアなTCPS 接続を確立するために必要です。
DataSource 接続プロパティでTNS 接続文字列を使用する場合、Sync App はTNS 文字列にWALLET_LOCATION が含まれているかを最初に確認します。文字列にWALLET_LOCATION 値が含まれていない場合、Sync App は代わりにこの接続プロパティ(Wallet)で指定されたwallet を使用します。
このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。
プロパティ | 説明 |
LogModules | ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。 |
ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。
このプロパティは、含めるログモジュールを指定することでログファイルの内容をカスタマイズすることができます。 ログモジュールは、クエリ実行、メタデータ、SSL 通信などの異なる領域にログ情報を分類します。 各モジュールは4文字のコードで表され、文字の名前の場合は末尾にスペースが必要なものもあります。
例えば、EXEC はクエリ実行をログに記録し、INFO は一般的なプロバイダーメッセージをログに記録します。 複数のモジュールを含めるには、次のように名前をセミコロンで区切ります:INFO;EXEC;SSL。
Verbosity 接続プロパティは、このプロパティで指定されたモジュールベースのフィルタリングよりも優先されます。 Verbosity レベルを満たし、指定されたモジュールに属するログエントリのみが記録されます。 利用可能なすべてのモジュールをログファイルに含めるには、このプロパティを空白のままにします。
利用可能なモジュールの完全なリストとログの設定に関する詳細な手引きについては、ログ の「高度なログの記録」セクションを参照してください。
このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。
プロパティ | 説明 |
Location | テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。 |
BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
Tables | レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。 |
Views | レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。 |
IncludeSynonyms | Query metadata for synonyms as though they are the original tables. |
ShowMetadataDescriptions | Controls whether table and column descriptions are returned via the platform metadata APIs and sys_tables / sys_views / sys_tablecolumns. |
UseDBAMetadataViews | Query meta data from DBA_.. system views instead of ALL_.. system views. |
テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。
Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。
指定しない場合、デフォルトの場所は%APPDATA%\\CData\\OracleOci Data Provider\\Schema となり、%APPDATA%はユーザーのコンフィギュレーションディレクトリに設定されます:
プラットフォーム | %APPDATA% |
Windows | APPDATA 環境変数の値 |
Linux | ~/.config |
レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
利用可能なデータベーススキーマをすべてリストすると余分な時間がかかり、パフォーマンスが低下します。 接続文字列にスキーマのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。
データベースによっては、利用可能なすべてのテーブルをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にテーブルのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
利用可能なテーブルがたくさんあり、すでに作業したいテーブルが決まっている場合、このプロパティを使用して対象のテーブルのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。
Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、表示する各テーブルを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するテーブルが混同されることを防ぎます。
レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。
データベースによっては、利用可能なすべてのビューをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にビューのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
利用可能なビューがたくさんあり、すでに作業したいビューが決まっている場合、このプロパティを使用して対象のビューのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。
Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、確認する各ビューを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するビューが混同されることを防ぎます。
Query metadata for synonyms as though they are the original tables.
By default, the Sync App maps synonyms to their parent tables. It queries columns and their primary/foreign key metadata as if they were the regular tables.
If this property is set to false, then the Sync App does not list table and view synonyms.
Setting this property to false improves metadata performance. Consider doing so if you do not need to request metadata of synonyms automatically.
Controls whether table and column descriptions are returned via the platform metadata APIs and sys_tables / sys_views / sys_tablecolumns.
By default table and column descriptions are not shown, since the Oracle OCI requires an extra join in meta-query beyond what is usually required to read system views describing the object comments.
Enabling this option will show table and column descriptions. This can slow down metadata operations on large datasets.
Query meta data from DBA_.. system views instead of ALL_.. system views.
By default, the Sync App queries meta data for the objects accessible to the current user. If the UseDBAMetadataViews property is set to true, then the Sync App will query meta data for all respective objects in the database.
This option will not work if current user has insufficient privileges to access DBA_.. system views.
このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。
プロパティ | 説明 |
AllowPreparedStatement | クエリステートメントを実行前に準備します。 |
MaxLobSize | パラメータ化されていないSELECT クエリでクエリ可能なバイト数、もしくはUTF-8 キャラクタ数。 |
MaxRows | 集計やGROUP BY を使用しないクエリで返される最大行数を指定します。 |
NativeFolder | provider が動作するネイティブdll を含むディレクトリへのパス。このプロパティは、Windows およびmacOS プラットフォームでのみ有効です。 |
Other | 特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。 |
QueryPassthrough | このオプションは、クエリをOracle OCI サーバーにas-is で渡します。 |
ReconnectTimeout | 最大アイドル時間超過エラーでサーバーに再接続を試みるまでのスリープ時間(秒)。 |
ReconnectTries | 最大アイドル時間超過エラーがサーバーから返された際に、サーバーへの接続を再試行する回数。 |
クエリステートメントを実行前に準備します。
AllowPreparedStatement プロパティがfalse に設定されている場合は、ステートメントは実行されるたびにパースされます。たくさんの異なるクエリを一回だけ実行する場合は、このプロパティをfalse に設定すると便利です。
同じクエリを繰り返し実行する場合は、このプロパティをデフォルトのtrue のままにしておくとパフォーマンスが向上します。クエリを準備することで、同じクエリを何度も繰り返しコンパイルすることを避けられます。ただし、プリペアドステートメントの場合、ステートメントが準備される間Sync App の接続をアクティブかつオープンに保つ必要があります。
パラメータ化されていないSELECT クエリでクエリ可能なバイト数、もしくはUTF-8 キャラクタ数。
MaxLobSize プロパティが0または負の値に設定されている場合、デフォルト値の2000バイトが代わりに使用されます。
集計やGROUP BY を使用しないクエリで返される最大行数を指定します。
このプロパティは、集計やGROUP BY 句を含まないクエリに対してSync App が返す行数の上限を設定します。 この制限により、クエリがデフォルトで過度に大きな結果セットを返さないようにします。
クエリにLIMIT 句が含まれている場合、クエリで指定された値がMaxRows 設定よりも優先されます。 MaxRows が"-1" に設定されている場合、LIMIT 句が明示的にクエリに含まれていない限り、行の制限は行われません。
このプロパティは、非常に大きなデータセットを返す可能性のあるクエリを実行する際に、パフォーマンスを最適化し過剰なリソース消費を防ぐのに役立ちます。
provider が動作するネイティブdll を含むディレクトリへのパス。このプロパティは、Windows およびmacOS プラットフォームでのみ有効です。
Sync App が動作するネイティブdll を含むディレクトリへのパス。デフォルトでは、Sync App はダイナミックライブラリをロードするための標準システムポリシーに依存しています。完全パスまたは実行ファイルからの相対パスを指定します。
特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。
このプロパティは、シニアユーザーが特定のシナリオに対して隠しプロパティを設定できるようにします。 これらの設定は通常のユースケースには必要ありませんが、特定の要件に対応したり、追加の機能を提供したりすることができます。 複数のプロパティをセミコロン区切りのリストで定義できます。
Note: 特定のシナリオや問題に対処するためにサポートチームから助言があった場合にのみ、これらのプロパティを設定することを強く推奨します。
複数のプロパティをセミコロン区切りリストで指定します。
DefaultColumnSize | データソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。 |
ConvertDateTimeToGMT | 日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。 |
RecordToFile=filename | 基底のソケットデータ転送を指定のファイルに記録します。 |
このオプションは、クエリをOracle OCI サーバーにas-is で渡します。
これが設定されていると、クエリはOracle OCI に直接渡されます。
最大アイドル時間超過エラーがサーバーから返された際に、サーバーへの接続を再試行する回数。
この値を設定すると、Sync App はサーバーから'ORA-02396: exceeded maximum idle time' エラーを取得した場合に自動で再接続します。ReconnectTries のデフォルト値は0に設定されており、この場合リクエストは再試行されません。