> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracle (Native)

Oracle (Native) コネクタを使用すると、CData Sync アプリケーションから、サポートされている任意のソースからOracle (Native) 同期先へデータを移行できます。このページでは、Oracle データベースとOracle Autonomous Database の両方をSync の同期先として設定する方法を説明します。

## 前提条件

このセクションでは、CData Sync でOracle 同期先コネクタを追加する前に完了しておく必要がある前提条件について説明します。サポートされているOracle のバージョンと、安全で信頼性の高いデータレプリケーションをサポートするための専用ユーザーアカウントの推奨作成方法について概説します。

### バージョンサポート

Sync は、Oracle 11g 以降への接続をサポートしています。

### ネイティブドライバーのインストール

Sync は、Java Database Connectivity（JDBC）ドライバーを使用してOracle Server に接続します。まだダウンロードしていない場合は、[OracleJDBC and UCP Downloads ページ](https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html)からドライバーをダウンロードしてください。

JDBC ドライバーを`libs` ディレクトリ（オペレーティングシステムによって異なります）にコピーし、サーバーを再起動します。

* **Windows：** `C:\ProgramData\CData\sync\libs`
* **UNIX またはMac OS X：** `~/cdata/sync/libs`

### Sync ユーザーの作成

十分な権限を持つ既存のデータベースユーザーを使用して、Oracle データベースに接続できます。ただし、ベストプラクティスとして、CData では、CData Sync 専用に使用する、最小限の権限を持つ新しいSync ユーザーとスキーマを作成することを推奨します。

Oracle SQL Developer で次のコマンドを送信して、新しいOracle ログインと、**sync\_user** という名前の関連データベースユーザーを作成します。

```sql theme={null}
CREATE USER sync_user IDENTIFIED BY <Password>
DEFAULT TABLESPACE <Tablespace>
TEMPORARY TABLESPACE <TempTablespace>
QUOTA UNLIMITED ON <Tablespace>;
```

デフォルトでは、新しい**sync\_user** アカウントには権限がありません。データベースに接続するには、次に示すようにCREATE SESSION 権限を付与する必要があります。

```sql theme={null}
GRANT CREATE SESSION TO sync_user;
```

**sync\_user** がOracle 同期先接続でデータの書き込み、変更、削除を行えるようにするには、CREATE TABLE 権限も付与する必要があります。

```sql theme={null}
GRANT CREATE TABLE TO sync_user;
```

Oracle データベースユーザーの作成に使用するコマンド構文を含む詳細なリファレンスについては、[Create Users](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-USER.html) を参照してください。

## Oracle コネクタを追加

Sync でOracle のデータを使用できるようにするには、まず以下の手順でコネクタを追加する必要があります：

<ol>
  <li>Sync のダッシュボードから**接続**ページを開きます。</li>
  <li>**接続を追加**をクリックして**コネクタを選択**ページを開きます。</li>
  <li>**同期先**タブをクリックして
  **Oracle (Native)** 行に移動します。</li>

  <li>
    行末にある**接続を設定**アイコンをクリックして、**新しい接続**ページを開きます。この操作により、
    **接続を追加**ダイアログボックスが開きます。

    **Note：** **接続を設定**アイコンが表示されない場合は、**コネクタをダウンロード**アイコンをクリックして Oracle (Native) コネクタをインストールしてください。
  </li>

  <li>**接続を追加**ダイアログボックスに接続名を入力します。</li>
  <li>**追加**をクリックして、コネクタの**設定**タブを開きます。</li>
</ol>

新しいコネクタのインストールについての詳細は、
[接続](https://docs.sync.cdata.com/26.4/ja/connections/connections.md)を参照してください。

## Oracle への認証

コネクタを追加したら、必要なプロパティを設定します。

CData Sync は、複数の方法でOracle への認証をサポートしています。以下から認証方法を選択して、認証の詳細が記載されている該当のセクションに進んでください。

* [**Security Identifier**](#security-identifier-sid)（デフォルト）
* [**Service Name**](#service-name)
* [**Data Source**](#data-source)

### Security Identifier (SID)

SID を使用してOracle リソースに接続するには、次の設定を指定します。

* **User：** Oracle データベースへの認証に使用するユーザー名を入力します。
* **Password：** Oracle データベースへの認証に使用するパスワードを入力します。
* **Server：** Oracle データベースをホストするサーバーのホスト名またはIP アドレスを入力します。デフォルトのサーバーは**localhost** です。
* **Port：** Oracle サーバーのポート番号を入力します。デフォルトのポートは**1521** です。
* **SID：** Oracle データベースのSID を入力します。デフォルトのSID は**ORCL** です。

### Service Name

サービス名を使用してOracle リソースに接続するには、次の設定を指定します。

* **User：** Oracle データベースへの認証に使用するユーザー名を入力します。
* **Password：** Oracle データベースへの認証に使用するパスワードを入力します。
* **Server：** Oracle データベースをホストするサーバーのホスト名またはIP アドレスを入力します。デフォルトのサーバーは**localhost** です。
* **Port：** Oracle サーバーのポート番号を入力します。デフォルトのポートは**1521** です。
* **Service：** Oracle データベースのサービス名を入力します。デフォルトのSID は**ORCL** です。

  サービス名を取得するには、Oracle SQL\*PLUS コマンドラインから次のクエリを送信します。

  `SELECT * FROM global_name;`

  **Note：** このクエリの結果はグローバルデータベース名を返します。これは、Oracle リスナーで定義されているサービス名と必ずしも一致するとは限りません。不明な点がある場合は、DBA に結果を確認するか、tnsnames.ora ファイルを確認して正しいサービス名を確認してください。

### Data Source

データソースを使用してOracle リソースに接続するには、次の設定を指定します。

* **User：** Oracle データベースへの認証に使用するユーザー名を入力します。
* **Password：** Oracle データベースへの認証に使用するパスワードを入力します。
* **Data Source：** Oracle データベースのデータソースを入力します。

## 接続を完了する

接続を完了するには：

1. **高度な設定** タブで詳細な接続設定を定義します。（ただし、ほとんどの場合、これらの設定は必要ありません。）
2. **作成およびテスト**をクリックして接続を作成します。

## Oracle Autonomous Database を同期先として設定

Oracle Autonomous Database は、OCI ドライバー経由でCData Sync のソースとして以前からサポートされています。Sync 21.0.8179.0 以降では、以下のセクションで説明するように、このデータベースを同期先としても設定できるようになりました。

### ステップ1：必要なDLL とライブラリの取得とインストール

最初のステップは、必要なDLL とライブラリを取得してインストールすることです。この手順は、Microsoft Windows（.NET）エディションを使用するか、Sync のJava エディションを使用するかによって異なります。

DLL とライブラリを取得してインストールするには：

1. お使いのバージョンのOracle Database 用のzip 形式のJDBC ドライバー（ojdbc8.jar）と付属のJAR ファイル（ojdbc8-full.tar.gz）をダウンロードします。
2. ダウンロードしたojdbc8-full.tar.gz ファイルを展開します。
3. 展開したファイルから次のファイルを、Sync のインストールディレクトリの`libs` サブディレクトリにコピーします。
   * ojdbc8.jar
   * oraclepki.jar
   * osdt\_core.jar
   * osdt\_cert.jar
4. Sync を再起動します。

これで、必要なDLL とライブラリのインストールは完了です。次はステップ2に進みます。

### ステップ2：Oracle Autonomous Database をCData Sync の同期先として追加

これで、Oracle Autonomous Database をSync の同期先として追加できます。このステップでは、クライアント証明書認証を使用したMutual TLS（mTLS）で接続します。そのため、mTLS 用のウォレットをダウンロードして設定する必要があります。代わりにTLS 接続（クライアント証明書認証なし）を使用する場合は、ウォレットを設定する必要はありません。ただし、TLS 接続を使用するには、データベース設定のアクセス制御リスト（ACL）で接続元を制限する必要があります。

ステップ2では、次のタスクを実行する必要があります。

* 接続情報を設定する。
* 同期先接続を追加する。

#### 接続情報の設定

Oracle Autonomous Database 同期先の作成に必要な接続情報を取得するには：

1. Oracle Cloud で、接続先のデータベースのAutonomous Database 管理ウィンドウに移動します。

2. **Autonomous Database Information > Network> Access Control List** を選択して、Sync をホストするマシンのIP アドレスをACL に追加します。

3. Autonomous Database Details ウィンドウの**DB Connection** タブをクリックします。

4. **Wallet type** フィールドで**Wallet instance** を選択して、ウォレットファイルをダウンロードします。次に、**Download wallet** をクリックします。

   秘密鍵を暗号化するためのパスワードの入力を求められます。Download Wallet モーダルで適切なパスワードを設定します。次に、**Download** をクリックして、ウォレットを含むZIP ファイルをダウンロードします。

   **Note：** ここで設定したパスワードはSync では使用されません。

   **Download** をクリックすると、Database Connection モーダルが表示されます。

5. 接続先のTransparent Network Substrate（TNS）名の文字列（ダイアログボックスの**Connection Strings** セクション内）のコピーを保存します。この文字列は後の手順で必要になります。

   この時点で、接続情報の準備は完了です。

#### Oracle 同期先コネクタを追加

Sync がOracle Autonomous データベースのデータを使用できるようにするには、まず次のようにコネクタを追加する必要があります。

1. Sync ダッシュボードの**接続**ページを開きます。
2. **接続を追加**をクリックして**コネクタを選択**ページを開きます。
3. **同期先**タブをクリックし、**Oracle (Native)** 行を見つけます。
4. その行の末尾にある**接続を設定**アイコンをクリックして、**新しい接続**ページを開きます。**接続を設定**アイコンが表示されない場合は、**Download Connector** アイコンをクリックしてOracle (Native) コネクタをインストールします。新しいコネクタのインストールの詳細については、[接続](https://docs.sync.cdata.com/26.4/ja/connections/connections.md)を参照してください。

#### Oracle への認証

1. **Connections Settings** ページで次のプロパティの値を設定します。
   * **Name：** 任意の接続名を入力します。
   * **Provider Class：** **Oracle.ManagedDataAccess.Client** という値を入力します。
   * **Settings Format：** **Property List** という値を入力します。
   * **Connection Type：** ドロップダウンリストから**Data Source** を選択します。
   * **User：** Oracle Autonomous データベースへの認証に使用するユーザー名を入力します。
   * **Password：** Oracle Autonomous データベースへの認証に使用するパスワードを入力します。
   * **Data Source：** 「接続情報の設定」セクションの手順4でコピーした接続文字列を入力します。重要なのは、データソースに接続文字列を設定することです。この時点で、先ほどダウンロードしたウォレットのZIP ファイルを`C:\ProgramData\CData\sync\data\` ディレクトリ（フォルダー）に解凍する必要があります。次に、そのパスを接続文字列で指定します。
2. **作成およびテスト**をクリックして、接続が成功したことを確認します。

   接続に**成功しない**場合は、Sync がウォレットファイルを読み取れないことが原因の可能性があります。MY\_WALLET\_DIRECTORY= パラメーターで指定するディレクトリ（フォルダー）に、Sync が実行されているプロセスのユーザーアカウントからアクセスできることを確認してください。

   **Note：** ダウンロードしたウォレットのZIP ファイルには、さまざまなファイルが含まれています。ただし、Sync に接続するために必要なのはcwallet.sso ファイルのみです。ウォレット内のその他の主要ファイルでは、ダウンロード時に設定したパスワードで秘密鍵が暗号化されています。一方、cwallet.sso ファイルは秘密鍵が暗号化されない状態で保存されているため、パスワードを入力せずにクライアント証明書に接続できます。したがって、この例では、`C:\ProgramData\CData\sync\data\Wallet_XXX\cwallet.sso` ディレクトリ（フォルダー）を指定するだけで接続できます。

## データ型マッピング

CData Sync は、SQL Server データベースにデータをロードするときに、次のデータ型変換を使用します。

| **CData 型** | **Oracle 型** | **備考** |
| :-: | :-: | :- |
| bigint | NUMBER(19) | |
| binary | BLOB | |
| boolean | BOOLEAN or NUMBER(1) | BOOLEAN は、MajorVersion >= Oracle 23C の場合にサポートされます |
| date | DATE | |
| decimal | NUMBER | |
| double | NUMBER | |
| float | NUMBER | |
| integer | NUMBER(10) | |
| smallint | NUMBER(5) | |
| time | TIMESTAMP | |
| timestamp | TIMESTAMP | |
| timestamp\_tz | TIMESTAMP WITH TIME ZONE | |
| tinyint | NUMBER(3) | |
| uuid | VARCHAR2(36) | |
| varchar | VARCHAR2(\<ColumnSize>) or CLOB | ColumnSize \<= 4000 の場合はVARCHAR2 が使用されます。ColumnSize > 4000 の場合はCLOB が使用されます。 |
| varbinary | BLOB | |

**Note：** Sync で利用できるほとんどの同期先では、カスタムカラムマッピングを使用できます。カラムマッピングの削除や調整、Sync のタスクへのさまざまな変換の適用については、[カラムのマッピング](https://docs.sync.cdata.com/26.4/ja/transformations/etl.md#カラムのマッピング)を参照してください。

## 高度なジョブオプション

次の表に、Oracle 同期先接続で最も頻繁に使用される高度なジョブオプションを示します。使用可能なジョブオプションの完全な一覧については、[高度なジョブオプション](https://docs.sync.cdata.com/26.4/ja/jobs/advanced-job-options.md)を参照してください。

| **オプション名** | **デフォルト値** | **説明** |
| - | :-: | - |
| **StoresUppercaseIdentifiers** | **False** | キャッシュ内の識別子をすべて大文字で格納するかどうかを指定します。このオプションを**True** に設定すると、識別子はすべて大文字で格納されます。 |
| **Truncate Table Mode** | **Delete** | **テーブルデータを削除**レプリケーションオプションが有効な場合に、既存の行を削除するために使用するコマンドを指定します。Oracle ではTRUNCATE TABLE がDDL ステートメントとして扱われるため、**Truncate** を指定した場合の操作はトランザクション内でロールバックできません。 |

**Note：** Sync のUI には表示されない**StoresUppercaseIdentifiers** オプションは、ジョブの**高度な設定**タブにある**レプリケートオプション**カテゴリの**追加オプション**フィールドで設定します。

## 一般的な課題と解決方法

Oracle 同期先に接続すると、エラーが発生することがあります。一般的なエラーと問題は、次のカテゴリに分類されます。

* インデックスの処理
* その他のエラーと問題

### インデックスの処理

デフォルトでは、Sync はレプリケーションのパフォーマンスを向上させるために、Insert 操作を実行する前にOracle のインデックスを自動的に無効にし、操作の完了後に再び有効にします。ただし、特定のユースケースでは、この動作を無効にする必要がある場合があります。

Sync がOracle 同期先のインデックスを自動的に無効にしないようにするには、ジョブの**高度な設定**タブにある**レプリケートオプション**カテゴリの**追加オプション**フィールドに次の設定を追加します。

```
DisableOracleIndexesOnStart=false
```

### その他のエラーと問題

発生する可能性があるその他の問題やエラーに関するヘルプやトラブルシューティングリソースについては、[CData Knowledge Base](https://jp.cdata.com/kb/) を参照するか、[CData Community](https://community.cdata.com/community) に参加するか、[CData Technical Support](https://jp.cdata.com/support/submit.aspx) にお問い合わせの上、サポートチケットを開いてください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.