# Oracle再実行/アーカイブログモードの前提条件

## 始める前に

CDC機能はJavaを使用します。したがって、Oracleデータベースのインストール時にJavaが有効なことをご確認ください。

Oracle用のこのモードのCDC機能は、Oracleデータベースのバージョン11でのみ利用可能です。Oracleデータベースのバージョン12以降では利用できません。

でCDCを[Redo/Archive log] (再実行/アーカイブログ)Talend Studioモードで使用するには、監視対象のデータベースの管理者が事前に次を実行する必要があります。

## 手順

1. Oracleデータベースのアーカイブログモードを有効にする。
2. OracleデータベースにCDCを設定する。
3. ソースユーザーに対してすべての権限を作成し付与する。
4. パブリッシャーに対してすべての権限を作成し付与する。

## Oracleでのアーカイブログモードの有効化

### Procedure

1. 管理者としてOracleデータベースに接続してください。
2. 次のクエリーを入力します:
   ```
   connect / as sysdba;
   shutdown;
   startup exclusive mount;
   alter database archivelog;
   alter database open;
   ```

## OracleでのCDCの設定

### Procedure

1. ソースユーザーとパブリッシャーそれぞれのテーブルスペースを作成します。

   下の例では、$ORACLE\_PATHはOracleがインストールされている場所によって異なります:
   ```
   create tablespace SOURCE datafile '$ORACLE_PATH/oradata/Oracle/SOURCE.dbf' size 50M;
   ```
2. ソースユーザーを作成し、変更を行うために必要な権限をすべて与えます。

   以下の例では、このソースユーザーはsourceです:
   ```
   create user source
   identified by source
   default tablespace SOURCE 
   quota unlimited on SOURCE;
   ```
   ```
   grant connect, create table to source;
   grant unlimited tablespace to source;grant select_catalog_role to source;
   grant execute_catalog_role to source;
   grant create sequence to source;
   grant create session to source;
   grant dba to source;
   grant execute on SYS.DBMS_CDC_PUBLISH to source;
   ```
   ```
   create tablespace PUBLISHER datafile '$ORACLE_PATH/oradata/Oracle/PUBLISHER.dbf' size 50M;
   ```
3. パブリッシャーを作成し、変更をキャプチャーして公開するために必要な権限をすべて与えます。

   以下の例では、このパブリッシャーはpublisherです:
   ```
   create user publisher
   identified by publisher
   default tablespace PUBLISHER
   quota unlimited on PUBLISHER;
   ```
   ```
   grant connect, create table to publisher;
   grant unlimited tablespace to publisher;
   grant select_catalog_role to publisher;
   grant execute_catalog_role to publisher;
   grant create sequence to publisher;
   grant create session to publisher;
   grant dba to publisher;
   grant execute on SYS.DBMS_CDC_PUBLISH to publisher;
   execute DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(GRANTEE=>'publisher');
   ```

   情報メモNote: これまでに使用されたさまざまな手順の詳細は、以下をご覧ください:
   * パブリッシャーは、 select\_catalog\_roleプロシージャーを使用してすべてのOracleディクショナリーとやり取りできます。
   * パブリッシャーは、 execute\_catalog\_roleプロシージャーを使用してディクショナリープロシージャーを実行できます。
   * パブリッシャーは、SYS.DBMS\_CDC\_PUBLISHプロシージャーを使用して1つ(または複数)のソーステーブルで変更データをキャプチャーし公開するCDCシステムを設定できます。
   * プロシージャー: DBMS\_STREAMS\_AUTH.GRANT\_ADMIN\_PRIVILEGE(GRANTEE=&gt;'publisher')は、データの複製(ストリーム)を実行するために必要な管理権限をユーザーに付与します。ユーザーは、GRANT\_ADMIN\_PRIVILEGEプロシージャーによってデータのキャプチャーと伝播オペレーションを実行できます。