--2023/12/09
--源端 sb02mes 目标端:centradb
待同步表
table CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY;
table CAMSTAR_PRD01.AHMODELINGSETTING;
1.登录,并查看是否添加表级附加日志
cd $OGG_HOME
ggsci
GGSCI (szpmsb02cimrac-db05) 1> dblogin userid ogg@sb02mes,password ogg
GGSCI (szpmsb02cimrac-db05 as ogg@sb02mes3) 9> info trandata CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY
GGSCI (szpmsb02cimrac-db05 as ogg@sb02mes3) 9> info trandata CAMSTAR_PRD01.AHMODELINGSETTING
2.登录后如果没有表级附加日志,即需要添加
GGSCI (szpmsb02cimrac-db05 as ogg@sb02mes3) 9>add trandata CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY
GGSCI (szpmsb02cimrac-db05 as ogg@sb02mes3) 9>add trandata CAMSTAR_PRD01.AHMODELINGSETTING
3.(无需登录也可)查看抽取,推送进程里面是否有这两张表,注意查看是否有多个推送路径,根据需求添加
EXTRACT RUNNING EXTMES 00:00:00 00:00:09
EXTRACT RUNNING PUSHDW2 00:00:00 00:00:04
抽取进程
GGSCI (szpmsb02cimrac-db05) 1>view param EXTMES
GGSCI (szpmsb02cimrac-db05) 1>edit param EXTMES
set number (set nu)
--添加内容
table CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY;
table CAMSTAR_PRD01.AHMODELINGSETTING;
推送进程
GGSCI (szpmsb02cimrac-db05) 1>view param PUSHDW2
GGSCI (szpmsb02cimrac-db05) 1>edit param PUSHDW2
set number(set nu)
--添加内容
table CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY;
table CAMSTAR_PRD01.AHMODELINGSETTING;
---目标端 centradb
4.找一个合适的进程
如果已有应用进程里面表不多,不大,可以使用已有进程,不然添加一个新应用进程(在后面第11项)
5.使用已有进程
GGSCI (szpmsb02cimrac-db05) 1>view param REPLDW1N
GGSCI (szpmsb02cimrac-db05) 1>stop REPLDW1N
--编辑,把新表加入到现有进程,添加如下内容,其中scn号为后面导出时的scn号
GGSCI (szpmsb02cimrac-db05) 1>edit param REPLDW1N
map CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY,target CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY,FILTER(@GETENV('TRANSACTION','CSN')>18111522377227);
map CAMSTAR_PRD01.AHMODELINGSETTING,target CAMSTAR_PRD01.AHMODELINGSETTING,FILTER(@GETENV('TRANSACTION','CSN')>18111522377227);
表导出的时间需要在停止复制进程之后,并且新加的两个表要加上(@GETENV('TRANSACTION','CSN')>18111522377227),声明新添加的表在导出时间点之后才需要应用,否则会有重复数据
6.源端查找scn,准备导出
这个scn的时间必须是目标端停止复制进程之后,这样复制进程启动后在某一刻才能接上,而不是复制进程倒回去对接表
select to_timestamp(' 20231209 10:16:00.000000000', 'syyyy-mm-dd hh24:mi:ss.ff') from dual;
select timestamp_to_scn('09-12月-23 10.16.00.000000000 上午') from dual;
--18111522377227
7.导出
expdp \'/ as sysdba\' directory=DUMP_MODDW dumpfile=OGG_camstar_prd01_20231209_%U.dmp logfile=OGG_camstar_prd01_20231209_exp.log cluster=n compression=data_only exclude=statistics parallel=4 flashback_scn=18111522377227 tables=CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY,CAMSTAR_PRD01.AHMODELINGSETTING
scp -p /u10/dump/OGG_camstar_prd01_20231209_* 10.182.190.159:/data/dump/OGG_camstar_prd01_20231209_*
8.导入
impdp \'/ as sysdba\' directory=DUMP dumpfile=OGG_camstar_prd01_20231209_%U.dmp logfile=OGG_camstar_prd01_20231209_exp.log parallel=4 tables=CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY,CAMSTAR_PRD01.AHMODELINGSETTING
9.启动复制进程
GGSCI (szpmsb02cimrac-db05) 1>start REPLDW1N
10.查看复制进程是否正常同步
GGSCI (szpmsb02cimrac-db05) 1>info all
GGSCI (szpmsb02cimrac-db05) 1>info REPLDW1N
GGSCI (szpmsb02cimrac-db05) 1>info REPLDW1N detail
11.添加配置replicat进程
日志存放路径和checkpoint table 查找,找一同来源库的复制进程查看一下
GGSCI (szpmsb02cimrac-db05) 1>info REPLDW1L detail
添加新复制进程
# ggsci
GGSCI (szpmleadingtest) 2> dblogin userid ogg@centradb,password ogg
GGSCI (szpmleadingtest) 3> add checkpointtable ogg.rmtcentra_ckpt <<<<如果使用旧的checkpoint table ,就无需再add ,直接下一步
GGSCI (szpmleadingtest) 4> add replicat REPLDW1N,exttrail /u09/ogg_home/dirdat/sli02/rr,checkpointtable ogg.rmtcentra_ckpt
GGSCI (szpmleadingtest) 5> edit param REPLDW1N
REPLDW1N里面的内容:<<<<同步ddl
replicat REPLDW1N
setenv (NLS_LANG = "AMERICAN_AMERICA.AL32UTF8")
setenv (ORACLE_HOME = "/u01/app/oracle/product/19.3.0/db_1")
userid ogg@centradb,password ogg
assumetargetdefs
ALLOWNOOPUPDATES
APPLYNOOPUPDATES
DDL INCLUDE MAPPED
DDLOPTIONS REPORT
--常见情况入下,同用户,同表空间
map CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY,target CAMSTAR_PRD01.AHNEWPNLSECONDBAKINGHISTORY;
map CAMSTAR_PRD01.AHMODELINGSETTING,target CAMSTAR_PRD01.AHMODELINGSETTING;
--特殊情况
map camstar_dev10.A_WIPEQUIPMENT,target report_sl01_prd.STAGE_A_WIPEQUIPMENT; <<<<源端和目标端用户不一致
map camstar_dev10.MFGORDER,target report_sl01_prd.STAGE_MFGORDER;
DDLSUBST 'TBS_CAMSTAR_DEV10' WITH 'TBS_REPORT_SL01_PRD' INCLUDE ALL <<<<<表空间转换
DDLSUBST 'NDX_CAMSTAR_DEV10' WITH 'NDX_REPORT_SL01_PRD' INCLUDE ALL <<<<<表空间转换
由于是新复制进程,所以无需设置
12.启动复制进程
直接启动复制进程,会默认找1号日志文件,那个文件可能是早期传过来的,很可能不见了,直接启动就会报错,找不到文件
1.如果所有的日志文件都在,,可以直接启动,那么会从1号日志文件开始找起,一直找到刚刚我们导出表的时刻,所以就算日志文件齐全,也建议用下面第二种方式启动,节省时间
GGSCI (szpmleadingtest) 2>start REPLDW1N aftercsn 18111522377227
2.如果早期日志文件不在,或者想跳过前面日志文件的读取,可以从导出表的前一小段时间的756日志文件开始,以节省读取文件的时间
GGSCI (szpmleadingtest) 2>alter REPLICAT REPLDW1N ,extseqno 756 extrba 0
GGSCI (szpmleadingtest) 2>start REPLDW1N aftercsn 18111522377227
13.查看复制进程是否正常同步
GGSCI (szpmsb02cimrac-db05) 1>info all
GGSCI (szpmsb02cimrac-db05) 1>info REPLDW1N
GGSCI (szpmsb02cimrac-db05) 1>info REPLDW1N detail