表的重新再同步(無需生產端時間視窗)
如果是某些表由於各種原因造成兩邊資料不一致,需要重新進行同步,但實際業務始終24小時可用,不能提供時間視窗,則可以參照以下步驟。(因較為複雜,使用需謹慎!)
列出需要重新初始化的表和當時exclude的原因(檢查下面兩個地方):
生產端抽取程序exclude表
容災端複製程序中exclude表
1) 確認ext/dpe/rep程序均無較大延遲,否則等待追平再執行操作;
2) 停止目標端的rep程序;(如時間要求嚴格,可放到後面)
注意:步驟3-6為將源端資料通過exp/imp匯入到目標端,客戶也可以選擇其它初始化方式,比如expdp/impdp。
3) 在源端獲得當前的scn號。例如:
export oracle_sid=***(無單機多例項的無需做)
select dbms_flashback.get_system_change_number from dual;
get_system_change_number
------------------------
10144674732950
以下以獲得的scn號為10144674732950為例
4) 在源端使用exp匯出所需重新初始化的表或者幾張表資料,並且指定到剛才記下的scn號。
exp匯出
確認在源端
確認oracle_sid正確
需要sysem使用者,可以不用grant execute flashback to user,system密碼******
export oracle_sid=***(無單機多例項的無需做)
exp system/****** tables=scott.t9 file=/home/oracle/scott_t9_1.dmp grants=n statistics=none triggers=n compress=n flashback_scn=10144674732950 log=/home/oracle/scott_t9_1.log;
5) 通過sftp傳輸到目標端;
6) 在目標端,使用imp匯入資料;
確認在目標端
確認oracle_sid正確
用system使用者,
export oracle_sid=***(無單機多例項的無需做)
truncate table scott.t9 刪除記錄
[oracle@localhost ~]$ imp system/oracle file=/home/oracle/scott_t9_1.dmp fromuser=scott touser=scott ignore=y log=/home/oracle/scott_t9_imp_1.log ;
特別注意:上面imp語句中沒有使用commit=y的引數,如果對大表進行imp操作應該使用commit=y引數(資料分批量提交),原因:如果匯入執行很長時間,imp操作被中斷(好在是容災端匯入,不會有對業務系統產生很大壓力),這個中斷將導致這個大事物的回滾;回滾會占用更多時間(影響啟動複製程序的時間);或者直接採用資料幫浦的方式匯出匯入(資料幫浦預設不需要commit引數);
7) 如果這些表有外來鍵,在目標端檢查這些外來鍵並禁止它們(記得維護dirsql下的禁止和啟用外來鍵的指令碼sql);
確認有無外來鍵,執行指令碼禁用外來鍵
確認在目標端
確認oracle_sid正確
map source.mytab, target target.mytab, filter ( @getenv ("transaction", "csn") > 10144674732950 ) ;
9) 確認引數無誤後,啟動目標端的rep程序;
10) 使用info repxx或者lag repxx直到該程序追上,停止該程序去掉filter即可進入正常複製。(去掉filter時間待定,因scn一直增大,不受影響)
作者「andrew的未來之路」
GoldenGate故障處理 表空間不足
今天接到客戶的服務情求,他們的goldengate複製出現故障,我覺得他們的問題挺有代表性,於是拿出來給大家分析一下。錯誤描述 資料投遞程序abend,在日誌報告中的錯誤提示如下 2010 02 01 17 19 18 ggs error 103 discard file dirrpt rep1.d...
使用merge into 來更新目標表的個別字段
更新職業 5s merge into cr gr x using select b.custid,c.new grbh,b.occupation 職業 nvl d.new bm,90 new occupation 新職業 from cm002 to db2 bleft join scdy grzhb...
了解GoldenGate中LAG的含義
當extract程序在讀取redolog並寫出到trail或remote host 當額外的datapump在讀取extract trail並通過網路寫出到遠端節點remote host 當collector在目標伺服器上接受網路資料並寫出到local trail 當replicat讀取local ...