1. 程式人生 > >OGG replicat錯誤 ORA-01403及解決方案

OGG replicat錯誤 ORA-01403及解決方案

sci 解決 xxx let 恢復 語句 param repl 註釋

  • 錯誤描述
    錯誤:OGG replicat出現ORA-01403 錯誤NO data found
    OGG出現表數據不同步,入庫端接收update和delete語句時出現ORA-01403 錯誤NO data found
  • 解決方案
    1.1 解決思路
    1) 先將不能同步的表忽略,tableexclude yx_data.df_myfx_dw_flhzb;
    啟動replicat進程,啟動成功,將數據同步完成,然後停掉replicat。
    2) 把不能應用的表進行重新同步使用expdp/impdp。
    3) 在參數文件中,將參數 --tableexclude yx_data.df_myfx_dw_flhzb,註釋掉
    加入新參數,裏面加入scn 號,map BSPRUN.LN908, target BSPRUN.LN908, filter ( @GETENV (‘TRANSACTION‘, ‘CSN‘) > 12273790558167 );
    啟動replicat進程。
    4) 完成
  • 具體操作
    3.1 在參數文件添加未應用的表:
    edit param reyxyx
  • tableexclude yx_data.df_myfx_dw_flhzb

    start reyxyx
    等數據同步完成,停止replicat進程
    stop reyxyx

    3.2 通過數據泵把未應用的表進程同步
    在源端數據庫先鎖表,取出scn號
    sqlplus
    lock table AICBIZ.ABNORMALQIYE in share mode;
    select dbms_flashback.get_system_change_number scn from dual;
    rollback;
    SQL>
    SCN

    131693772606
    3.3 使用數據泵在源端把表數據導出,指定scn
    expdp \‘/ as sysdba\‘ directory=dpdump dumpfile=xxxx`date ‘+%Y%m%d%H%M‘_%U.dmp logfile=xxxx_date ‘+%Y%m%d_%H%M‘`.log FLASHBACK_SCN=131693772606 TABLES=xxxx.xxxx
    3.4 將導出數據傳輸到目標端
    推數據
    scp xxx.dump [email protected]:/home/oracle/
    或拉數據
    scp [email protected]:/home/oracle/xxx.dump /home/oracle/

    3.5 使用數據泵在目標端恢復表
    impdp \‘/ as sysdba\‘ directory=dpdump dumpfile=xxxx_20180707_162901.dmp logfile=xxxxdate ‘+%Y%m%d_%H%M‘.log TABLE_EXISTS_ACTION=truncate
    impdp參數TABLE_EXISTS_ACTION解釋
    skip:默認操作
    replace:先drop表,然後創建表,最後插入數據
    append:在原來數據的基礎上增加數據
    truncate:先truncate,然後再插入數據

    3.6 數據導入完成後,修改ogg參數,啟動replicat進程
    ./ggsci
    edit param xxx
    map xxxx.xxxx, target xxxx.xxx, filter ( @GETENV (‘TRANSACTION‘, ‘CSN‘) > 131693772606 );
    start xxx
    3.7 至此,數據同步完成,replicat進程running狀態。

    OGG replicat錯誤 ORA-01403及解決方案