Openflow Connector for Oracle:メンテナンス¶
注釈
このコネクタは、 Snowflakeコネクタ規約 に従うものとします。
注釈
|OracleOFC|には、標準のコネクタ利用規約以外の追加利用規約も適用されます。詳しくは、`Openflow Connector for Oracle Addendum<https://www.snowflake.com/en/legal/optional-offerings/offering-specific-terms/openflow-oracle-terms/>`_を参照してください。
このトピックでは、コネクタの再インストールやREDOログの開始位置の設定など、|OracleOFC|のメンテナンスタスクについて説明します。
これらの操作は多くの場合、 スナップショットでの増分複製 と一緒に使用されます。
コネクタを再インストールする¶
このセクションでは、コネクタを再インストールし、同じテーブルのデータを再度スナップショットせずに複製し続ける方法について説明します。新しいコネクタが同じランタイムにインストールされている場合や、新しいランタイムに移動された場合をカバーします。
警告
コネクタが再インストール前に停止したのと同じCDCストリーム位置から複製を続行するには、以前のコネクタが停止してから新しいコネクタが開始されるまでの時間をカバーするのに十分な長さのアーカイブ済みREDOログをソースデータベースが保持している必要があります。Oracleデータベースのアーカイブ済みREDOログの保持期間を十分に長くし、再インストール時間を最小限に抑えます。
通常、24時間の保持期間で十分ですが、再インストールする時間を確保するためには、より長い時間が適切な場合があります。アーカイブ済みREDOログ保持の構成について詳しくは、:doc:`setup-oracledb`を参照してください。
前提条件¶
コネクタパラメーターのコンテキスト値を確認してメモします。同じランタイムでコネクタを再インストールする場合は、既存のコンテキストを再利用できます。新しいインスタンスが別のランタイムにある場合は、すべてのパラメーターを再入力する必要があります。
既存のコネクタで進行中のすべての FlowFiles の処理を終了し、コネクタを停止します。
Snowsight にサインインします。
ナビゲーションメニューで Ingestion » Openflow を選択します。
Launch Openflow を選択します。
Openflow ペインで Runtimes タブを選択します。
コネクタを含むランタイムを選択します。
コネクタを選択します。
Snapshot Load グループで一番上のプロセッサー Set Tables for Replication を停止します。
Incremental Load グループで一番上のプロセッサー Read Oracle CDC Stream を停止します。
Merge Task Schedule CRON パラメーターの値を変更した場合、
* * * * * ?に返します。そうでないと、次回のスケジュールされた実行までキューが空になりません。コネクタのすべての FlowFiles が処理され、すべてのキューが空になるまで待機します。すべての FlowFiles が処理されると、コネクタのプロセッサーグループの Queued 値がゼロになります。元のコネクタのキューにアイテムが残っている場合は、新しいコネクタの開始時にデータギャップが発生する可能性があります。
コネクタ内のすべてのプロセッサーとコントローラーサービスを停止します。
注意
既存のコネクタはランタイムにとどまることができ、停止したままである限り、新しいインスタンスに干渉しません。
コネクタの新しいインスタンスを作成します。元のコネクタと同じランタイムを使用している場合は、既存のパラメーターコンテキストを保持し、設定を再利用できます。
別のランタイムにインストールする場合、または以前のパラメーターコンテキストを削除した場合は、 Openflow Connector for Oracle のインストールと構成 で説明されているとおり、テーブル名とパターンなどの構成設定を新しいパラメーターコンテキストに入力します。
Oracle Ingestion Parametersコンテキストに移動し、次のパラメーターを設定します。Ingestion Typeパラメーターをincrementalに設定します。懸念事項の詳細については、 既存のコネクタのスナップショットなしで増分複製を有効にする をご参照ください。Starting Redo Log PositionパラメーターをEarliestに設定します。詳細と考えられる問題については、 XStreamアウトバウンドサーバーの変更 をご参照ください。
新しいコネクタを起動します。
使用上の注意¶
新しいコネクタは、元のコネクタによって作成された既存の宛先テーブルを使用しますが、新しいジャーナルテーブルを作成します。
XStreamアウトバウンドサーバーの変更¶
コネクタは、処理した最新のSCN位置でXStreamサーバーを定期的に更新します。コネクタが再インストールされ、同じXStreamアウトバウンドサーバーに接続されている場合は、中断したSCN位置から読み取りを再開します。このSCN番号は次の方法で確認できます。
SELECT PROCESSED_LOW_SCN
FROM DBA_XSTREAM_OUTBOUND_PROGRESS
WHERE SERVER_NAME = 'XOUT1';
以前の位置からデータを再度読み取る場合は、最初にXStreamサーバーの開始SCNを変更する必要があります。
BEGIN
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'XOUT1',
start_scn => <start_scn>
);
END;
/
``<start_scn>``の値は、利用可能なREDOログの範囲内の有効なSCNである必要があります。開始位置をリセットできる最小のSCNは、次で確認できます。
SELECT REQUIRED_CHECKPOINT_SCN
FROM DBA_CAPTURE
WHERE CLIENT_NAME = 'XOUT1';
これは、キャプチャプロセスがREDO情報を必要とする最小のSCNです。
XStream位置からのロードの指定¶
|OracleOFC|コネクタでは、OracleのREDOログが読み取られる開始位置を選択できます。デフォルトでは、コネクタは最新の利用可能な位置から読み取ります。または、ソースインスタンスで利用可能な最も古い位置を選択することもできます。コネクタを再インストールする場合は、最も古い位置から開始することを選択するのが一般的です。これにより、新しいインスタンスは既存のテーブルをキャッチして、それぞれを再度スナップショットすることなく、複製を継続することができます。
注釈
実行中のコネクタを最新の位置から最も古い位置に切り替えると、利用可能なREDOログ全体の再読み取り、再処理、および宛先テーブルへの再適用が発生します。
警告
REDOログの再読み取り中は、影響を受ける宛先テーブルの列とデータが、すべてのイベントが再処理およびマージされるまで、ソースと同期されなくなる可能性があります。
Ingestion Parameters コンテキストでは次のパラメーターを利用できます。
パラメーター |
説明 |
|---|---|
開始中のXStream位置 |
|
状態のテーブルを再読み取り |
|
コネクタがREDOログの再読み取りを終了したかどうかを判断するには、以下の手順を実行します。
Openflowキャンバスに移動します。
Incremental Load プロセスグループを開きます。
Read Oracle CDC Stream という名前の一番上のプロセッサーを右クリックし、 View state を選択します。
状態の項目を比較します。
lcr.position.rewind: REDOログの再読み取りが開始される前に、プロセッサーが読み取った最新の位置。
lcr.position.last: プロセッサーによって読み取られた現在の最新位置。この値が上記のrewind値よりも低い限り、プロセッサーはREDOログを再読み取りし続けます。
使用上の注意¶
実行中のコネクタが最も古い位置からの読み取りに切り替えられ、実行を開始した後は、プロセスを再構成またはキャンセルできず、現在の読み取り位置が開始前の位置に到達するまで続行されます。
実行中のコネクタの最も早い位置に切り替えると、再処理されるテーブルは既存のジャーナルを終了し、新しいジャーナルテーブルを作成します。
REDOログに、ソースデータベースでドロップされて再作成された以前のテーブルのイベントが含まれている場合、ストリームの再読み取りにより、現在の宛先ですべてのイベントが再処理されます。コネクタは、同じ名前を共有している場合、以前のソーステーブルと現在のソーステーブルを区別できません。