OGG進程拆分
阿新 • • 發佈:2017-09-20
running 根據 cfq anti mes oracl card 入庫 status 36個數據庫的12張表目標端入庫進程拆分
由於目標端OGG入庫進程同步的表較多,數據量較大,導致入庫進程出現延時。在主機CPU和內存足夠的情況下,可以對出現延時的進程進行拆分,將一個進程中的多個表分給其他進程來同步,或者幾個進程同步一張數據量大的表也是可以的。
拆分進程的流程說明:
1)查找拆分表所在的進程
2)停拆分的表所在的進程
3)獲取拆分表所在進程的seqno和rba號
4)排表(MAPEXCLUDE)
5)添加拆分後的進程
6)指定拆分後的進程讀取隊列文件的seqno和rba號
7)編輯拆分的新進程
8)啟動進程
註意:請先看明白以上流程後,再執行以下操作!
1、確定需要拆分進程的表(本示例共拆分12張表)
HX_SB.SB_DKDJ_SKBG 該表拆分3個進程
HX_SB.SB_SBB 該表拆分6個進程
HX_SB.SB_ZZS_FB_ZZSJMSSBMXB_MSXM 該表拆分3個進程
HX_SB.SB_ZZS_XGM 該表拆分6個進程
HX_SB.SB_ZZS_XGM_FB_FLZL 該表拆分3個進程
HX_SB.SB_ZZS_YBNSR 該表拆分3個進程
HX_SB.SB_ZZS_YBNSR_FB_JXSEJGMXB 該表拆分6個進程
HX_SB.SB_ZZS_YBNSR_FB_YGZSFFXCSM 該表拆分3個進程
HX_SB.SB_ZZS_YBNSR_FB_YNSEAYSKM 該表拆分3個進程
HX_SB.SB_ZZS_YBNSR_FB1_BQXSQKMX 該表拆分6個進程
HX_SB.SB_ZZS_YBNSR_FB2_BQJXSEMX 該表拆分6個進程
HX_SB.SB_ZZS_YBNSR_FB5_BDCFQDKB 該表拆分3個進程
2、以上12張表所在的進程就是需要被拆分的進程。找出需要拆分的12張表所在的進程:
示例:
view param RZG_FF2B --HX_SB.SB_SBB
view param RZG_FF2H --HX_SB.SB_ZZS_YBNSR_FB1_BQXSQKMX
view param RZG_FF2I --HX_SB.SB_ZZS_YBNSR_FB2_BQJXSEMX
view param RZG_FF2J --HX_SB.SB_ZZS_YBNSR HX_SB.SB_ZZS_XGM
view param RZG_FF2N --HX_SB.SB_ZZS_XGM_FB_FLZL
view param RZG_FF2A --包含了剩余的6張表
3、停需要拆分(排表)的入庫進程
stop RZG_FF2B
stop RZG_FF2H
stop RZG_FF2I
stop RZG_FF2J
stop RZG_FF2N
stop RZG_FF2A
4、取當前seqno和rba號,如xx單位如下
示例:
GGSCI (nmsthxffdb01) 3> info RZG_FF2B
REPLICAT RZG_FF2B Last Started 2017-01-14 19:07 Status RUNNING
Checkpoint Lag 01:23:38 (updated 02:20:38 ago)
Log Read Checkpoint File ./dirdat/zb002751
2017-01-14 17:22:34.052064 RBA 347329296
info RZG_FF2B -- zb002751 RBA 347329296
info RZG_FF2H -- zb002751 RBA 347335602
info RZG_FF2I -- zb002751 RBA 347335602
info RZG_FF2J -- zb002751 RBA 347335602
info RZG_FF2N -- zb002751 RBA 347378402
info RZG_FF2A -- zb002751 RBA 347521117
5、對原進程進行排表(編輯進程,添加排除表的語句,如果進程中只有1張表,無需排除)
示例(添加下面MAPEXCLUDE 排表語句,加到最後一個參數下面,然後保存退出):
eidt param RZG_FF2A
MAPEXCLUDE HX_SB.SB_DKDJ_SKBG;
MAPEXCLUDE HX_SB.SB_ZZS_YBNSR_FB_JXSEJGMXB;
MAPEXCLUDE HX_SB.SB_ZZS_YBNSR_FB_YGZSFFXCSM;
MAPEXCLUDE HX_SB.SB_ZZS_YBNSR_FB_YNSEAYSKM;
MAPEXCLUDE HX_SB.SB_ZZS_FB_ZZSJMSSBMXB_MSXM;
MAPEXCLUDE HX_SB.SB_ZZS_YBNSR_FB5_BDCFQDKB;
6、添加拆分後的進程,根據上面查到的數據量大小拆分一個進程為多個進程(3或者6個進程),新進程命名格式:RSB_P** , 其中"*"表示數字,且從01開始遞增
示例:
拆分三個進程如下:
add replicat RSB_P01, exttrail ./dirdat/zb
add replicat RSB_P02, exttrail ./dirdat/zb
add replicat RSB_P03, exttrail ./dirdat/zb
拆分六個進程如下:
add replicat RSB_P04, exttrail ./dirdat/zb
add replicat RSB_P05, exttrail ./dirdat/zb
add replicat RSB_P06, exttrail ./dirdat/zb
add replicat RSB_P07, exttrail ./dirdat/zb
add replicat RSB_P08, exttrail ./dirdat/zb
add replicat RSB_P09, exttrail ./dirdat/zb
7、指定拆分新進程的seqno和rba,上面“info 進程名” (註意進程名對應關系)
拆分三個進程如下:
alter replicat RSB_P01, extseqno 002751 ,extrba 347521117
alter replicat RSB_P02, extseqno 002751 ,extrba 347521117
alter replicat RSB_P03, extseqno 002751 ,extrba 347521117
拆分六個進程如下:
alter replicat RSB_P04, extseqno 002751 ,extrba 347329296
alter replicat RSB_P05, extseqno 002751 ,extrba 347329296
alter replicat RSB_P06, extseqno 002751 ,extrba 347329296
alter replicat RSB_P07, extseqno 002751 ,extrba 347329296
alter replicat RSB_P08, extseqno 002751 ,extrba 347329296
alter replicat RSB_P09, extseqno 002751 ,extrba 347329296
8、編輯拆分的新進程
註意:
1)replicat rsb_p01
2)DISCARDFILE ./dirrpt/rsb_p01.dsc,APPEND,MEGABYTES 100
3)拆分的表名
示例:
edit param RSB_P01
replicat rsb_p01
SETENV (ORACLE_SID="nmsthxff")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
Userid ggs,PASSWORD AACAAAAAAAAAAAIAUCOJGDDFPFHEGCPD, BLOWFISH, ENCRYPTKEY DEFAULT
REPORT AT 01:59
REPORTROLLOVER AT 02:00
CACHEMGR, CACHESIZE 256MB
REPERROR DEFAULT,ABEND
DISCARDFILE ./dirrpt/rsb_p01.dsc,APPEND,MEGABYTES 100
DISCARDROLLOVER AT 06:00
GETTRUNCATES
NUMFILES 3000
EOFDELAYCSECS 30
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
DYNAMICRESOLUTION
GETUPDATEBEFORES
NOCOMPRESSDELETES
MAP HX_SB.SB_DKDJ_SKBG, TARGET HX_SB.SB_DKDJ_SKBG, colmap (usedefaults , &
sjtb_sj = @date ("yyyy-mm-dd hh:mi:ss.ffffff", "JTS", @GETENV("JULIANTIMESTAMP"))),FILTER(@RANGE(1,4)); --這裏的1是 一張表拆分的第一個進程,4是該表一共拆分成4個進程
9、啟動進程(註:必須先啟動新拆分的進程,且等新進程沒有延時,再啟動原進程)
示例:
--拆分的新進程
start RSB_P01
start RSB_P02
start RSB_P03
--原進程
start RZG_FF2A
--拆分的新進程
start RSB_P04
start RSB_P05
start RSB_P06
start RSB_P07
start RSB_P08
start RSB_P09
--原進程
start RZG_FF2B
--OK啦!!
OGG進程拆分