表からの競合検出および解消の削除
Oracle Database 23c以降では、表から自動競合検出および解決(ACDR)を完全に削除すると、ACDR関連の列がUNUSEDとマークされるため、表への影響が少なくなります。
DBMS_GOLDENGATE_ADMパッケージのREMOVE_AUTO_CDRプロシージャを使用して、表をUNUSEDとしてタグ付けし、ブロックを最小限に抑えます。後のステージで、列を削除するか、列を保持するかを選択できます。
例については、「列グループの削除」を参照してください。
- Oracle GoldenGate管理者としてインバウンド・サーバー・データベースに接続します。
REMOVE_AUTO_CDRプロシージャを実行して表を指定します。- 表をレプリケートする各Oracle Databaseに対して前述のすべてのステップを繰り返します。
例8-15 表の競合検出および解決の削除
この例では、HR.EMPLOYEES表の競合検出および解決を削除します。
BEGIN
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR(
SCHEMA_NAME => 'HR',
TABLE_NAME => 'EMPLOYEES');
END;
/ADD_AUTO_CDR.REMOVE_HIDDEN_COLUMNSプロシージャを使用して非表示列を表示および削除することで、列を削除できます。
表内の非表示列の表示に使用できる例を次に示します。
次の問合せでは、
DBA_UNUSED_COL_TABSパッケージを使用して、EMPLOYEES表に未使用列があるかどうかを判断します。
SELECT OWNER, TABLE_NAME, COUNT
FROM DBA_UNUSED_COL_TABS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'EMPLOYEES'
ORDER BY OWNER, TABLE_NAME;出力は次のように表示されます。
OWNER TABLE_NAME COUNT
-------- ------------ ----------
HR EMPLOYEES 1
次の問合せでは、
EMPLOYEES表の列グループに対してACDRが削除されたときにシステムによってタグ付けされた非表示列をリストします。SELECT OWNER, TABLE_NAME, COLUMN_ID, COLUMN_NAME, DATA_TYPE, HIDDEN_COLUMN
FROM DBA_TAB_COLS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'EMPLOYEES'
AND HIDDEN_COLUMN = 'YES' AND USER_GENERATED= 'NO'
ORDER BY OWNER, TABLE_NAME, COLUMN_ID;出力は次のように表示されます。
OWNER TABLE_NAME COLUMN_ID COLUMN_NAME DATA_TYPE HIDDEN_COLUMN
------------ ------------ ---------- ------------- ------------ ---------------
HR EMPLOYEES SYS_C00014_22092220:30:52$ TIMESTAMP(6) YES