XStreamモードを使用したCDCの設定
このセクションでは、でのXStream OutおよびXStream InTalend Studioの設定について詳細に説明します。
Talend StudioでXStream Outを設定
Procedure
-
[Repository] (リポジトリー)ツリービューで、OracleデータベースへのOCI接続タイプを使用してデータベース接続を設定し、データの変更をキャプチャーするソーステーブルのスキーマを取得します。この例では、ソーステーブルはPERSONです。データベース接続の設定方法およびテーブルスキーマの取得方法の詳細は、データベースメタデータを一元管理をご覧ください。
- 新しく作成したOracleデータベース接続の下で[CDC Foundation] (CDC設定)を右クリックして、コンテキストメニューから[Create CDC] (CDCを作成)を選択します。[Create Change Data Capture] (CDCを作成)ダイアログボックスが開きます。
-
[XStream mode] (XStreamモード)を選択して[Show sample initialization script] (サンプル初期化スクリプトを表示)をクリックします。[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスが開きます。
これはOracle 12cサーバー上でXStreamを設定するためのサンプルスクリプトにすぎません。使用する設定に応じてユーザー名、パスワード、およびテーブルスペース情報をアップデートし、Oracleでステートメントおよびプロシージャーを実行する必要があります。詳細は、XStreamモードの前提条件をご覧ください。OKをクリックして、[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスを閉じます。[Finish] (終了)をクリックしてOracleのCDCを作成し、[Create Change Data Capture] (CDCを作成)ダイアログボックスを閉じます。
-
ソーステーブルを右クリックし、コンテキストメニューから[add CDC] (CDCの追加)を選択します。
- ソーステーブルを右クリックし、コンテキストメニューから[Generate XStreamsOut Script] (XStreamsOutスクリプトの生成)を選択します。[XStreamsOut generation script] (XStreamsOut生成スクリプト)ダイアログボックスが開きます。
- [XStreams server name] (XStreamサーバー名)フィールドにアウトバウンドサーバー名を入力します。名前は一意にする必要があります。
-
対応するInclude in scriptカラムのチェックボックスをオンにして、ソーステーブルを識別します。
- [Generate Script] (スクリプトの生成)をクリックします。[XStreamsOut Script] (XStreamsOutスクリプト)ダイアログボックスが表示されます。
-
[Execute] (実行)をクリックしてOracleのXStreamアウトバウンドサーバーを作成します。
このスクリプトの実行が失敗した場合は、OracleデータベースにXStream管理者として接続し、Oracleでスクリプトを実行できます。
-
XStream管理者としてOracleデータベースに接続し、次のステートメントを実行してアウトバウンドサーバーのステータスを確認します。
select apply_name, status from dba_apply;
アウトバウンドサーバーを削除する必要がある場合、次のステートメントを実行します。exec DBMS_XSTREAM_ADM.DROP_OUTBOUND('xout'); exec DBMS_XSTREAM_ADM.REMOVE_XSTREAM_CONFIGURATION(container => 'ALL');
Talend StudioでXStream Inを設定
Procedure
-
[Repository] (リポジトリー)ツリービューで、OCI接続タイプを使用したOracleデータベースへのデータベース接続を設定し、データの変更の複製先となるターゲットテーブルのスキーマを取得します。この例では、ターゲットテーブルはPERSON_BAKです。データベース接続の設定方法およびテーブルスキーマの取得方法の詳細は、データベースメタデータを一元管理をご覧ください。
- 新しく作成したOracleデータベース接続の下で[CDC Foundation] (CDC設定)を右クリックして、コンテキストメニューから[Create CDC] (CDCを作成)を選択します。[Create Change Data Capture] (CDCを作成)ダイアログボックスが開きます。
-
[Options] (オプション)エリアで[XStream mode] (XStreamモード)を選択して[Show sample initialization script] (サンプル初期化スクリプトを表示)をクリックします。[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスが開きます。
これはOracle 12cサーバー上でXStreamを設定するためのサンプルスクリプトにすぎません。使用する設定に応じてユーザー名、パスワード、およびテーブルスペース情報をアップデートし、Oracleでステートメントおよびプロシージャーを実行する必要があります。詳細は、XStreamモードの前提条件をご覧ください。OKをクリックして、[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスを閉じます。[Finish] (終了)をクリックしてCDCを作成し、[Create Change Data Capture] (CDCを作成)ダイアログボックスを閉じます。
-
ターゲットテーブルを右クリックし、コンテキストメニューから[add CDC] (CDCの追加)を選択します。
- ターゲットテーブルを右クリックし、コンテキストメニューから[Generate XStreamsIn Script] (XStreamsInスクリプトの生成)を選択します。[XStreamsIn generation script] (XStreamsIn生成スクリプト)ダイアログボックスが開きます。
- [XStreams server name] (XStreamサーバー名)フィールドにインバウンドサーバー名を入力します。
- [Queue name] (キュー名)フィールドにインバウンドサーバーのキューの名前を入力します。
- [Generate Script] (スクリプトの生成)をクリックします。XStream Inスクリプトが生成され表示されます。
-
[Execute] (実行)をクリックしてOracleのXStreamインバウンドサーバーを作成します。
このスクリプトの実行が失敗した場合は、OracleデータベースにXStream管理者として接続し、Oracleでスクリプトを実行できます。
-
XStream管理者としてOracleデータベースに接続し、次のステートメントを実行してインバウンドサーバーのステータスを確認します。
select apply_name, status from dba_apply;
インバウンドサーバーが無効な場合、次のステートメントを実行してインバウンドサーバーを開始します。exec DBMS_APPLY_ADM.START_APPLY('xin');
インバウンドサーバーを削除する必要がある場合、次のステートメントを実行します。exec DBMS_XSTREAM_ADM.DROP_INBOUND('xin'); exec DBMS_XSTREAM_ADM.REMOVE_QUEUE('xin_queue'); exec DBMS_APPLY_ADM.DELETE_ALL_ERRORS(apply_name => 'xin');