oracle goldengate有眾多解決方案,其中有乙個可用來實現資料同步增量跟蹤.比如有的業務系統需要實時的記錄某些資料的各種變化,通過ogg可以輕鬆的實現。
應用場景:現需要實現對源端庫中空間資料表,資料變化進行監控。
源端點空間資料表結構:
create table sde_point
(oid integer not null,
geometry mdsys.sdo_geometry not null,
name varchar2(50)
)alter table sde_point add primary key (oid);
//目標增量變化資訊表
-- create table
create table chj_data_change_his
(id varchar2(50),
table_name varchar2(1000),
before_after varchar2(32),
deal_date timestamp(6),
op_flag varchar2(32)
)tablespace tbs_sgs_test
pctfree 10
initrans 1
maxtrans 255
storage
(initial 64
next 8
minextents 1
maxextents unlimited
);goldengate 配置
在源端上,配置乙個extract : sgs_jtt, 引數如下,其中粗體部分是必須的引數。
extract sgs_jtt
setenv (nls_lang="american_america.zhs16gbk")
userid goldengate, password goldengate
rmthost 126.33.8.96, mgrport 8200
rmttrail ./dirdat/jt
getupdatebefores
table sgs_jtt.sde_line;
table sgs_jtt.sde_point;
table sgs_jtt.sde_su***ce;
再在目標端配置乙個replicat his_chj 引數配置如下:
replicat his_chj
setenv (nls_lang="american_america.zhs16gbk")
userid goldengate@orcl, password goldengate
assumetargetdefs
insertallrecords
map sgs_jtt.*, target sgs_chj.chj_data_change_his,
colmap ( id = id ,
table_name=@getenv("ggheader", "tablename"),
before_after=@getenv("ggheader", "beforeafterindicator"),
deal_date=@getenv ("ggheader", "committimestamp"),
op_flag=@getenv ("ggheader", "optype")
);此處 id = id 是我隨機寫的,並沒有依據,但還是能獲取到源端改動的主鍵oid的值,不知道從哪對映過來的
Goldengate實時簡訊告警實現
前言 goldengate資料同步方案靈活高效,可滿足各企業各行業的同步資料需求,但由於其高成本的維護,對專業性要求較高,另外ogg的程序受到源端表結構變更,異常操作,目標資料庫環境等各方面限制,將會造成程序的掛起,這樣會讓同步中斷,所以對goldengate程序的監控尤為重要!下面指令碼能對程序掛...
SQL Sever AlwaysOn的資料同步原理
alwayson 副本同步需要完成三件事 1 把主副本上發生的資料變化記錄下來。2 把這些記錄傳輸到各個輔助副本。3 把資料變化在輔助副本上同樣完成一遍。這3件工作主要由以下4個執行緒完成 log writer執行緒 當任何乙個sql使用者提交乙個資料修改事務時,它會負責把記錄本次修改的日誌資訊先記...
C 使用AutoResetEvent實現同步
簡介 autoresetevent boolinitialstate 建構函式,用乙個指示是否將初始狀態設定為終止的布林值初始化該類的新例項。false 無訊號,子執行緒的waitone方法不會被自動呼叫 true 有訊號,子執行緒的waitone方法會被自動呼叫 reset 將事件狀態設定為非終止...