# Oracle

このセクションでは、データ タスクで Oracle ソースを設定する方法について説明します。データ タスクを開始する前に、[前提条件](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/oracle-prerequisites-server.htm) を満たしていることを確認し、[必要な権限](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDBSource_Security.htm) を設定して、[制限と考慮事項](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDB_source_limitations.htm) をよく理解しておいてください。

情報メモこのコネクタは、Qlik Talend Cloud スターター サブスクリプションでサポートされていません。

次のいずれかのデータベースからデータをランディングする場合、Oracle への接続を構成する必要があります。

* Oracle オンプレミス

* Amazon RDS for Oracle

* Oracle Cloud

## 接続プロパティの設定

このセクションでは、使用可能な接続プロパティについて説明します。特に指定がない限り、すべてのプロパティが必要です。

コネクタを開くには、次の手順を実行します。

1. [接続] で、[接続を作成] をクリックします。

2. Oracle ソース コネクタを選択し、次の設定を指定します。

### データ ソース

* データ ゲートウェイ

  データの移動に使用する Data Movement gateway を選択します。

  Data Movement gateway の詳細については、「[Qlik データ ゲートウェイ - データ移動](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)」を参照してください。

* クラウド プロバイダー: Oracle データベースがクラウドにある場合は、次のプロバイダーを選択します。

  * なし (既定)

  * Amazon RDS

  * Oracle Cloud

* 接続文字列: ソース データベースの Oracle 接続文字列です。接続文字列は、次の例のように任意の Oracle 形式で入力できます。

  `//host:port/service name`

  ここで、

  * `host`: これは、使用している Oracle データベースが搭載されたコンピュータの IP アドレスの名前です。例、 `johnboy_W7` または `255.255.255.0`.
  * `port`: (オプション) これは、使用している Oracle データベースが搭載されたコンピュータの TNS Listener ポート番号です。ポート番号を入力しない場合、既定の Oracle TNS Listener ポートが使用されます。
  * `service name`: (オプション) これは、使用している Oracle データベースが搭載されたコンピュータのサービス名です。サービス名を入力しない場合、既定のサービス名が使用されます。

  Oracle Net キーワード値のペアを入力することもできます。例:

  `"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242) (PORT=5521))` `(CONNECT_DATA=(SERVICE_NAME=bjava21)))"`

  情報メモ

  Multitenant[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm) 環境で作業する場合、接続文字列が特定の PDB を指定しています。

### アカウントのプロパティ

ユーザー名とパスワード: Oracle データベースへのアクセスを承認されたユーザーのユーザー名とパスワード。

### データベースのプロパティ

* 公開する番号: 次のいずれかを選択します。

  * 精度スケールの組み合わせ

  * FLOAT

  * VARCHAR

  情報メモ

  * 精度が 39 以上の場合、VARCHAR を選択します
  * 既定では、NUMBER データ型は制度 38、スケール 10 に変換されます
  * Oracle データベースの「Expose NUMBER」定義は NUMBER データ型にのみ使用されます (明示的な精度とスケール定義なし)

* ネストされたテーブルをサポートします: は、ネストされたテーブルまたは定義された型の列を含む Oracle テーブルを land する必要がある場合は、このオプションを選択します。この機能および前提条件の詳細については、「[ネストされた 移動 テーブル](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/nested_tables.htm)」を参照してください。

* 非表示の列をサポートする: 非表示の列を land する場合は、このオプションを選択します。

### CDC のプロパティ

* 再試行間隔: カウンターを使用するか、またはクエリを再送信するまでシステムが待機する秒数を入力します。

* アーカイブされた再実行ログの宛先 ID: アーカイブされた再実行ログの宛先。値は、`V$archived_log` テーブルの `DEST_ID` 番号と同じである必要があります。

  複数のログ送信先 (`DEST_ID`) を処理している場合、Qlik レプリケーション サーバーによってアクセスできるアーカイブされたログを示すアーカイブされた再実行ログの場所 ID を指定する必要があります。アーカイブされた再実行ログの場所 ID が指定されていない場合、Qlik レプリケーション サーバーが [代替のアーカイブされた再実行ログ送信先 ID] 項目で指定された ID を使用します。代替 ID が指定されていない場合、Qlik レプリケーション サーバーが最小の既存の `DEST_ID` を使用します。

* 代替のアーカイブされた再実行ログの宛先 ID: プライマリ送信先から読み込むことができなかった場合の、アーカイブ先。

* アーカイブされた再実行ログのみを使用: このオプションを選択すると、Qlik レプリケーション サーバーはアーカイブされた再実行ログのみにアクセスします。アーカイブされた再実行ログが ASM にのみ保管されている場合、コネクタ設定で指定されたユーザーに、[必要な ASM 権限](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDBSource_Security.htm#ar_oracleds_385117211_beijchii) に説明された ASM 権限を付与する必要があります。

* 次を経由して再実行ログにアクセスする:Log Reader (既定) または LogMiner のどちらを使って再実行ログにアクセスするかを選択します。クラウド プロバイダ が Oracle Cloud である場合、再実行ログは常に Log Reader を使ってアクセスされます。選択されていない場合、再実行ログは LogMiner を使ってアクセスされます。Log Reader ではなく LogMiner を使用するためのガイドラインについては、「[再実行ログ ファイル - アクセス方法のガイドライン](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/Redo_Log_Files_Access_Method_Guidelines.htm)」を参照してください。

### ASM のプロパティ

* 使用している Oracle 再実行ログが、Automated Storage Management (ASM) を使って保管されている場合、指定の項目に必要なアクセス情報を入力してください。

  情報メモ

  * これらのオプションは、[Log Reader 経由で再実行ログにアクセスする] が選択されている場合にのみ使用できます。

  * ASM で再実行ログにアクセスするには、[必要な ASM 権限](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDBSource_Security.htm#ar_oracleds_385117211_beijchii) で説明された追加の特権を付与する必要があります

* * ASM 接続文字列: Oracle データベースが ASM を使用している場合、ASM インスタンスへの接続文字列。

  * ASM ユーザー名: ASM ユーザーのユーザー名。

  * ASM パスワード: ASM ユーザーのパスワード。

  * 同時 ASM Read スレッドの数: ASM から再実行ログを読み込む際に使用するスレッドの数。この数が増加すると、変更が多い場合のパフォーマンスが向上する必要があります。

### CDC のシークレット ストア暗号化エントリ

シークレット ストア暗号化エントリ: ソース テーブル列のいくつかが暗号化されると、Oracle Wallet 暗号化の名前と値を指定する必要があります。詳細については、下記の「ウォレット エントリの検索」を参照してください。

### 内部プロパティ

内部プロパティは、特殊なユース ケース向けであるため、ダイアログで公開されません。Qlik サポートによって指示があった場合にのみ使用する必要があります。

項目右側にある the 新規作成 icon と the キャンセル icon ボタンを使用して、必要に応じてプロパティを追加したり削除したりします。

### 名前

ソース接続の表示名です。

## ウォレット エントリの検索

### TDE 列の暗号化に使用されるウォレット エントリの検索

TDE テーブルスペース暗号化または TDE 列の暗号化に使用される正しい暗号化キーを指定するには、まずはその暗号化キーを含む Oracle Wallet で関連するエントリ (キーが複数ある場合のエントリ) を見つける必要があります。関連エントリが見つかったら、エントリとその値 (複数可) を [名前] と [値] 項目のアクティビティにコピーしてください。

情報メモ

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm)複数の値を入力するには、最初に各エントリを Notepad などのテキスト エディタにコピーします (値をカンマで区切る)。次に、テキスト エディタから値とカンマを含む文字列を、 **[値]** 項目にペーストします。エントリに対してはこれをする必要がありません。エントリを [エントリ] 項目にペーストできます。各エントリをカンマで区切るようにしてください。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm)Oracle Wallet エントリを見つけるには:

1. ENCRYPTION\_WALLET\_LOCATION パラメータが sqlnet.ora ファイルで定義されている場合、このパラメータによって定義されたディレクトリからのウォレットを使用します。

2. WALLET\_LOCATION パラメータが sqlnet.ora ファイルで定義されている場合、このパラメータによって定義されたディレクトリからのウォレットを使用します。

3. そうでない場合は、既定のデータベース場所でウォレットを使用します。

   情報メモ

   ウォレットの名前は ewallet.p12 である必要があります

4. Oracle mkstore ユーティリティで「list」オプションを使用して、ORACLE.SECURITY.DB/TS.ENCRYPTION.&lt;SUFFIX&gt; エントリ名を次のように決定します:

   `mkstore –wrl <full wallet name> -list`

5. [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm)Redo ログにどのエントリが使用されるかわかっている場合、エントリ名を選択してから、Oracle mkstore ユーティリティで「viewEntry」オプションを使用して、次のようにエントリの値を決定します:

   ` mkstore –wrl <full wallet name> -viewEntry <entry name>
                            `

   情報メモ

   Redo ログを暗号化するのに使用するエントリがわからない場合、複数の DB または TS エントリを選択してから、上記で説明されたように値を決定します (その後、エントリ名と値をコピーして [名前] と [値] 項目にペーストします)。指定したエントリが正しくない場合、タスクでエラーが発生し、エラー メッセージに正しいエントリ名が含まれます。

   情報メモ

   タスクが実行中に DBA がエントリを変更する場合、タスクでエラーが発生し、エラー メッセージに正しいエントリ名が含まれます。新しいエントリ (名前と値) をすでに指定されたエントリに追加し、タスクを再開します。

### TDE 列の暗号化に使用されるウォレット エントリの検索

このセクションでは、特定のテーブルで TDE 列暗号化に使用される正しい暗号化キーを見つける方法が説明されています。

Oracle Wallet エントリを見つけるには:

1. Oracle データベースで、次のクエリを実行して、所定の所有者およびテーブル名に従って `object_id` (例: テーブル ID) を返します:

   `Select object_id from all_objects where owner='<table owner>' and object_name='<table name>' and object_type='TABLE';`

2. 次のクエリで取得された `object_id` を使用して、関連するマスター キーを返します:

   `select mkeyid from sys.enc$ where obj#=OBJECT_ID;`

3. Oracle Wallet から、次のようにキー値を選択します:

   `mkstore –wrl <full_wallet_name> -viewEntry <entry_name>`

4. マスター キー エントリとその値を [名前] と [値] 項目にそれぞれコピーします。