192.168.27.33


test11g
hdb11g


trandata: 同步delete,update 使用
config 文件:同步表使用
进程根据SCN号和RBA和主键同步

##目的:数据定时同步,从源库 test11g同步到目标库 hdb11g
                    testDATA.TEST 同步到  MCPDATA.TEST
                    testDATA/testdatapr
                    

##source和target端均操作:
source:
cd /testdb11g/ogg
target:
cd /testhdb11g/ogg


source:
PORT 7809
target:
PORT 7810

(/u01/gg11/ggserr.log

sqlplus testDATA/testdatapr

alter user gguser identified by gguser;
create user gguser identified by gguser default tablespace SUPPORT;
grant  resource, connect, dba to gguser;


 create table t1 as select * from user_objects;    
 alter table t1 add constraint pk_t1 primary key(object_id);  

 
 
  create table t1 as select * from user_objects where 1=2;
  alter table t1 add constraint pk_t1 primary key(object_id);  


step 1:
一.3.5.1  开启hr用户下所有表的附加日志  
dblogin userid ggusr@ogg1, password lhr
add trandata hr.*


--extract einig1
--setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
--userid gguser,password gguser
--rmthost 192.168.27.33,mgrport 7810
--rmttask replicat,group rinig1

--extract einig1
--setenv (ORACLE_SID=test11g)
--setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)
--userid gguser,password gguser
--rmthost 192.168.27.33,mgrport 7810
--rmttask replicat,group rinig1
--table testdata.t1;


--replicat rinig1
--setenv (ORACLE_SID=hdb11g)
--setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)
--setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)
--assumetargetdefs
--userid gguser,password gguser
--discardfile ./dirrpt/rinig1.dsc,purge
--map testdata.*,target testdata.*;


######process eora_test   添加并配置extract进程

 add extract eora_test,tranlog,begin now

 

extract eora_test
setenv (ORACLE_SID=test11g)
setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)
setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)
userid gguser,password gguser
exttrail ./dirdat/mc
table testdata.*;

添加trail文件
add exttrail ./dirdat/mc,extract eora_test,megabytes 100
 
start extract eora_test
 
状态:
info extract eora_hr
 
 
#####process  pora_test 添加并启动pump进程

 edit params pora_test

extract pora_test
setenv (ORACLE_SID=test11g)
setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)
setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)
passthru
rmthost 192.168.27.33,mgrport 7810
rmttrail ./dirdat/pa
table testdata.*;

 add extract pora_test,exttrailsource ./dirdat/mc   
 add rmttrail ./dirdat/pa,extract pora_test,megabytes 100    
 
 start extract pora_test
 
 
######target   process :rora_test  在target端添加检查表,配置replicat进程
 
 edit params ./GLOBALS  
 
 dblogin userid gguser@hdb11g, password gguser
 
 add checkpointtable gguser.CHECKPOINTTABLE
 
 
 二、 添加并启动replicat进程
 
 edit params rora_test
 
replicat rora_test
setenv (ORACLE_SID=hdb11g)
setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)
setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)
userid gguser,password gguser
handlecollisions  
assumetargetdefs  
discardfile ./dirrpt/rora_test.dsc,purge  
map testdata.* ,target testdata.*;

 add replicat rora_test,exttrail ./dirdat/pa

 
 
状态检查:
GGSCI (rhel6_lhr) 4> info all

 

 

sampe 1:

1.prepar
--/ogg11gdb/ogg
--/hdbuatdb/ogg
--ogg version:11.2.1.0.23 18709404 OGGCORE_11.2.1.0.0OGGBP_PLATFORMS_140519.1509
cd $HOME/utility/setup

##instance 1
cp hdb11g.env hdbuat.env
echo "export OGG_BIN=/hdbuatdb/ogg" > hdbuat.env
echo "export GGS_HOME=/hdbuatdb/ogg" >> hdbuat.env
echo "export OGG_SYS_HOST_NAME=192.168.27.195" >> hdbuat.env
echo "alias data='cd \$OGG_BIN'" >> hdbuat.env
# User defined variables
echo "alias ogg='cd \$OGG_BIN'" >> hdbuat.env

##instance 2
cp hdb11g.env ogg11g.env

echo "export OGG_BIN=/ogg11gdb/ogg" > ogg11g.env
echo "export GGS_HOME=/ogg11gdb/ogg" >> ogg11g.env
echo "export OGG_SYS_HOST_NAME=192.168.27.190" >> ogg11g.env
echo "alias data='cd \$OGG_BIN'" >> ogg11g.env
# User defined variables
echo "alias ogg='cd \$OGG_BIN'" >> ogg11g.env

##instance 1 2
--在None的前一行 打印新行。
awk '/None/{print " \"ogg11g\") echo \n export ORACLE_SID=ogg11g \n . $OGG_DIR/ogg11g.env \n export OGG_BIN=/ogg11gdb/ogg \n break; break;; "}1' setogg.sh > 1
awk '/None/{print " \"hdbuat\") echo \n export ORACLE_SID=hdbuat \n . $OGG_DIR/hdbuat.env \n export OGG_BIN=/hdbuatdb/ogg \n break; break;; "}1' 1 > setogg.sh

##instance 2
sqlplus / as sysdba << eof
alter database add supplemental log data ;
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
create tablespace TS_OGG datafile '/ogg11gdb/data/ts_ogg01.dbf' size 50M ;
create user ggusr identified by ggusr_12 default tablespace TS_OGG;
grant resource, connect, select any table,select any dictionary,ALTER ANY TABLE,dba to ggusr;
eof

##instance 1
sqlplus / as sysdba << eof
alter database add supplemental log data ;
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
create tablespace TS_OGG datafile '/hdbuatdb/data/ts_ogg01.dbf' size 50M ;
create user ggusr identified by ggusr_12 default tablespace TS_OGG;
grant resource, connect, select any table,select any dictionary,ALTER ANY TABLE to ggusr;
eof


###instance 2
sqlplus / as sysdba << eof
create user hr identified by hrdata_12 default tablespace TS_OGG;
grant resource, connect, select_catalog_role to hr;
create table hr.t1 as select * from dba_objects where 1=2;
alter table hr.t1 add constraint pk_t1 primary key(object_id);
eof

 

cp $OGG_BIN/dirprm/mgr.prm $OGG_BIN/dirprm/mgr.prm.bak
echo "port 12100" > $OGG_BIN/dirprm/mgr.prm
ogg
(mkdir dirrpt
mkdir dirpcs
mkdir dirchk
mkdir dirtmp
mkdir dirdat)
ggsci << eof
create subdirs
start mgr
info all
info mgr
eof

 

### instance 1
sqlplus / as sysdba << eof
create user hr identified by hrdata_12 default tablespace TS_OGG;
grant resource, connect, select_catalog_role,select any dictionary,select any table to hr;
create table hr.t1 as select * from dba_objects;
alter table hr.t1 add constraint pk_t1 primary key(object_id);
eof


cp $OGG_BIN/dirprm/mgr.prm $OGG_BIN/dirprm/mgr.prm.bak
echo "port 7810" > $OGG_BIN/dirprm/mgr.prm

 

echo "extract e_test" > $OGG_BIN/dirprm/e_test.prm
echo "setenv (ORACLE_SID=hdbuat)" >> $OGG_BIN/dirprm/e_test.prm
echo "setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)" >> $OGG_BIN/dirprm/e_test.prm
echo "setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)" >> $OGG_BIN/dirprm/e_test.prm
echo "userid ggusr,password ggusr_12" >> $OGG_BIN/dirprm/e_test.prm
echo "exttrail ./dirdat/mc" >> $OGG_BIN/dirprm/e_test.prm
echo "table hr.t1; " >> $OGG_BIN/dirprm/e_test.prm

 

echo "extract p_test" > $OGG_BIN/dirprm/p_test.prm
echo "setenv (ORACLE_SID=hdbuat)" >> $OGG_BIN/dirprm/p_test.prm
echo "setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)" >> $OGG_BIN/dirprm/p_test.prm
echo "setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)" >> $OGG_BIN/dirprm/p_test.prm
echo "passthru" >> $OGG_BIN/dirprm/p_test.prm
echo "rmthost 192.168.27.195,mgrport 12100" >> $OGG_BIN/dirprm/p_test.prm
echo "rmttrail ./dirdat/pa" >> $OGG_BIN/dirprm/p_test.prm
echo "table hr.t1; " >> $OGG_BIN/dirprm/p_test.prm


ogg
ggsci << eof
create subdirs
start mgr
info all
info mgr
dblogin userid ggusr, password ggusr_12
add trandata hr.*
add extract e_test,tranlog,begin now
add exttrail ./dirdat/mc,extract e_test,megabytes 100
start extract e_test
eof

ogg
ggsci << eof
add extract p_test,exttrailsource ./dirdat/mc
add rmttrail ./dirdat/pa,extract p_test,megabytes 100
start extract p_test
eof


#### instance 2

ogg
cp ./GLOBALS ./GLOBALS.bak
echo "GGSCHEMA GGUSR" > ./GLOBALS
echo "checkpointtable CHECKPOINTTABLE" >> ./GLOBALS


echo "replicat r_test" > $OGG_BIN/dirprm/r_test.prm
echo "setenv (ORACLE_SID=ogg11g)" >> $OGG_BIN/dirprm/r_test.prm
echo "setenv (ORACLE_HOME=/opt/oracle11g/product/11.2)" >> $OGG_BIN/dirprm/r_test.prm
echo "setenv (NLS_LANG=AMERICAN_AMERICA.UTF8)" >> $OGG_BIN/dirprm/r_test.prm
echo "userid ggusr,password ggusr_12" >> $OGG_BIN/dirprm/r_test.prm
echo "handlecollisions" >> $OGG_BIN/dirprm/r_test.prm
echo "assumetargetdefs" >> $OGG_BIN/dirprm/r_test.prm
echo "discardfile ./dirrpt/r_test.dsc,purge" >> $OGG_BIN/dirprm/r_test.prm
echo "map hr.*,target hr.*; " >> $OGG_BIN/dirprm/r_test.prm


ggsci << eof
dblogin userid ggusr, password ggusr_12
add checkpointtable GGUSR.CHECKPOINTTABLE
add replicat r_test,exttrail ./dirdat/pa
start R_TEST
eof

 

测试1:
###begin sync data firstly use exp/imp and filter
### instance 2
ogg
ggsci << eof
stop R_TEST
eof


### instance 1
###add config
extract:
table hr.t1;
pump:
table hr.t1;


ogg
ggsci << eof
stop E_TEST
stop P_TEST
dblogin userid ggusr, password ggusr_12
add trandata hr.t1
start E_TEST
start P_TEST
eof

sqlplus / as sysdba << eof
select count(*) from hr.t1;
select current_scn from v\$database;
create or replace directory datapump as '/tmp';
grant read,write on directory datapump to public;
eof


expdp system/oracle123 directory=datapump dumpfile=test.dmp schemas=hr flashback_scn=93919213

 

### instance 2
impdp system/ngn12_system directory=datapump dumpfile=test.dmp table_exists_action=replace

sqlplus / as sysdba << eof
select count(*) from hr.t1;
select owner,table_name,TRIGGER_NAME from dba_triggers where table_name ='T1';
eof


###add config
map hr.t1, target hr.t1, filter ( @getenv("TRANSACTION", "CSN") > 93919213);

ogg
ggsci << eof
start R_TEST
STATS * latest,totalsonly *.*
eof


### instance 1
##add a values
sqlplus / as sysdba << eof
insert into hr.t1(object_id) values ( 20000);
commit;
select * from hr.t1 where object_id=20000;
eof

##delete values
sqlplus / as sysdba << eof
delete from hr.t1 where object_id=20000;
commit;
select * from hr.t1 where object_id=20000;
eof


测试2:
#######simualate ORA-00001

##instance 2
ogg
ggsci << eof
stop R_TEST
eof


###modify config
nohandlecollisions

###instance 1: add two same values
sqlplus / as sysdba << eof

select owner,table_name,CONSTRAINT_NAME from dba_constraints where table_name ='T1';
alter table hr.t1 disable constraint PK_T1;
insert into hr.t1(object_id) values ( 20000);
insert into hr.t1(object_id) values ( 20000);
select * from hr.t1 where object_id=20000;
commit;
eof


###instance 2 will report ORA-00001

workaourd:

step 1:
######modify config from nohandlecollisions to handlecollisions
handlecollisions


###instance 2 , it will show one row insert ok, one row insert ignore
sqlplus / as sysdba << eof
select owner,table_name,CONSTRAINT_NAME from dba_constraints where table_name ='T1';
select count(*) from hr.t1 where object_id=20000;
commit;
eof

step 2:
instance 2######modify config from handlecollisions to nohandlecollisions
ogg
ggsci << eof
stop R_TEST
start R_TEST
STATS * latest,totalsonly *.*
eof

 

炊烟起了;夕阳下了;细雨来了 多调试,交互式编程体验 记录,独立思考,对比 感谢转载作者 修车 国产化 read and connect 匍匐前进, 讲故事