OGG能否復制遷移包含CLOB字段的table


Oracle的官方文檔“Can GoldenGate Replicate An Oracle Table That Contains Only CLOB Column(s)? (文檔 ID 971833.1)

給出了解釋:OGG並不支持CLOB的復制遷移。詳見如下:

APPLIES TO:

Oracle GoldenGate - Version 4.0.0 and laterInformation in this document applies to any platform.

 

Question

Can GoldenGate replicate an Oracle table that contains only CLOB columns?

 

Answer

To ensure Data Integrity when performing Update and Delete operations, GoldenGate requires each Source and Target Table to have a Unique Identifier. This Unique Identifier can be:            * a Primary Key            * a Unique Index            * one or more columns that contain unique values and are specified with a GoldenGate KEYCOLS clause.

 

To make those columns available to GoldenGate, they must be logged to the Redo Log byOracle's Supplemental Logging feature.  Oracle does not support Supplemental Logging for CLOB columns; therefore Updates and Deletes on those columns cannot be replicated by GoldenGate.

 

據上,簡單翻譯之:

Oracle為確保執行更新和刪除操作時的數據完整性,GoldenGate要求源和目標表具有唯一的標識符。這個唯一標識符可以是:主鍵、唯一索引、包含唯一值的一個或多個列,並使用GoldenGate KEYCOLS子句指定。要使這些列對GoldenGate可用,必須通過Oracle的補充日志功能將它們記錄到Redo日志中。Oracle不支持為CLOB列添加日志記錄;故,GoldenGate也就無法復制這些列上的更新和刪除。

 

那么,使用OGG在做遷移時,如何進行操作吶?

答案:這里給出一種方案,結合oracle export方式;

 

步驟如下:

 

1. 使用OGG同步沒有clobblob類型數據的表

使用oracle系統視圖all_tab_columnsPL/SQL在導出表的時候提供的Object selection功能快速導出不包含clobblob的表數據,命令如下:

SELECT DISTINCT ('TABLE "'
|| a.OWNER
|| '"."'
|| a.TABLE_NAME
|| '"')
FROM sys.all_tab_columns a
WHERE a.OWNER = 'CA_GROUP'
AND a.TABLE_NAME NOT IN
(SELECT t.TABLE_NAME
FROM sys.all_tab_columns t
WHERE t.OWNER = 'CA_GROUP'
AND t.DATA_TYPE IN ('CLOB', 'BLOB')
);

以上命令,會找出不包含CLOB或BLOB的表,使用OGG先行同步數據;

 

2. 變更日,進行停庫,使用expdp命令進行補數,將包含CLOBBLOB的表進行單獨遷移,為了加快導出速度,可加parallel並行度

SELECT DISTINCT ('TABLE "'

  || a.OWNER

  || '"."'

  || a.TABLE_NAME

  || '"')

FROM sys.all_tab_columns a

WHERE a.OWNER     = 'CA_GROUP'

AND a.TABLE_NAME IN

  (SELECT t.TABLE_NAME

  FROM sys.all_tab_columns t

  WHERE t.OWNER = 'CA_GROUP'

  AND t.DATA_TYPE IN ('CLOB', 'BLOB')

  );


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM