關於 OGG "Loading data from file to Replicat"同步含有lob字段表的部分記錄的關鍵參數
首先說明一點:
Loading data with an Oracle GoldenGate direct load 這個方法,對含有如下數據類型的table,是無法使用的:
LOBs, LONGs, user-defined types (UDT), or any other large data type that is greater than 4 KB in size.
因此,遇到如下需求時,就不得不用OGG "Loading data from file to Replicat"這個方法來做:
1. db版本是10gR2(本文的測試環境是10.2.0.5),因為10gR2的impdp無remap_table功能
2. 含有lob字段的表(t1),同步出一部分數據到相同user下(確切的說是本數據庫中的相同user下),只是換一個表名(t1_temp)
當然,如上的需求,還可以用hvr數據同步軟件來做。此時,hvr的優勢就顯示出來了:
hvr不形成落地文件(不形成落在文件系統上的文件),就可以直接將所需要同步的row 插入到t1_temp表中。
OGG "Loading data from file to Replicat"這個方法 是先由OGG的extract進程形成落地文件(形成落在文件系統上的文件),然後再由OGG的replicat進程讀取這些文件,轉成sql語句,在數據庫中執行這些語句。
當然還可以用OGG "Loading data from file to database utility"來做。
本文所說的關鍵參數是OGG的extract進程的參數:
table test.t1_temp, SQLPREDICATE "where xh= '11'"
也可以這麼寫
table test.t1_temp, SQLPREDICATE "where xh in (select xh from test.highgo_sync_row_xh)"
其中, test.highgo_sync_row_xh 保存了需要同步的xh的值。