アクティベートにて複製対象からテーブルを除外する場合は該当テーブルのロックを全て獲得してからロックを解放するロジックとなります。
以下に具体例を挙げて説明します。
1. test1 および test2 スキーマに以下のようなテーブルを作成します。
create table sptest1 (col varchar2(10) );
create table sptest2 (col varchar2(10) );
create table sptest3 (col varchar2(10) );
create table sptest4 (col varchar2(10) );
create table sptest5 (col varchar2(10) );
create table sptest6 (col varchar2(10) );
2. 構成ファイルを設定します。
======================================================
datasource:o.orcl
expand test1.% test1.% rhel6tgt@o.orcl2
expand test2.% test2.% rhel6tgt@o.orcl2
======================================================
2. アクティベートします。
sp_ctrl> activate config ORA_config
3. 構成ファイルをコピーします。
sp_ctrl> copy config ORA_config to ORA_config2
4. 複製対象から test2 スキーマのテーブルを除外します。
======================================================
datasource:o.orcl
expand test1.% test1.% rhel6tgt@o.orcl2
#expand test2.% test2.% rhel6tgt@o.orcl2
======================================================
5. アクティベートします。
sp_ctrl> activate config ORA_config2
このとき、複製対象から削除するため test2 スキーマ内の全てのテーブルに対して
ロックを同時に獲得します。今回の例ではsptest1からsptest6までの全てのテーブルに対して同時にロックを獲得します。
アクティベート時のロックはソース側とターゲット側の一貫性確保のために獲得します。
一般的に複製から除外する場合はソース側とターゲット側の一貫性を保つ必要がないので
以下のようにnolock オプションを付与してアクティベートすることを検討してください。
sp_ctrl> activate config ORA_config2 nolock
© 2025 Quest Software Inc. ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center