1、说明
重新将系统A(源库)用户的数据将导入到系统B(目标库)的用户下
系统A:UCCBIZ.T_HW_AGENT_SIGN_RECORD、UCCBIZ.T_HW_AGENT_CONSULTED
系统B:UCCBIZ.T_HW_AGENT_SIGN_RECORD、UCCBIZ.T_HW_AGENT_CONSULTED
2、查看系统A的OGG状态
GGSCI (A) 4> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING E_SH 00:00:02 00:00:03
EXTRACT RUNNING P_SH 00:00:00 00:00:06
3、系统A抽取进程E_SH修改参数文件
3.1、停止进程进行参数文件修改
GGSCI (A)1> stop E_SH
3.2、编辑参数文件新增如下
GGSCI (A)2> edit param E_SH
--20210918 add
TABLE UCCBIZ.T_HW_AGENT_SIGN_RECORD;
如果当前配置存在TABLE UCCBIZ.*; 就不用增加了。
4、登录数据库goldengate用户,打开表级附加日志
这里因为之前添加过,所以先删除再添加
GGSCI (A) 3> dblogin useridalias shoggadmin_alias
GGSCI (A) 4> delete TRANDATA UCCBIZ.T_HW_AGENT_SIGN_RECORD
GGSCI (A) 5> ADD TRANDATA UCCBIZ.T_HW_AGENT_SIGN_RECORD
GGSCI (A) 6> delete TRANDATA UCCBIZ.T_HW_AGENT_CONSULTED
GGSCI (A) 7> ADD TRANDATA UCCBIZ.T_HW_AGENT_CONSULTED
5、启动抽取进程
GGSCI (A) 6> start E_SH
6、系统A投递进程P_SH修改参数文件
GGSCI (A) 7> stop P_SH
GGSCI (A) 8> edit param P_SH
--20210918 add
TABLE UCCBIZ.*;
注意这里不要 start P_SH
7、停止系统B复制进程R_SH
系统B:
GGSCI (B) 1> stop R_SH
8、系统A基于SCN号抽取数据
系统A:
预估数据大小
SQL> select sum(BYTES/1024/1024) MB from dba_segments where owner =‘UCCBIZ‘ and SEGMENT_NAME=‘T_HW_AGENT_SIGN_RECORD‘;
MB
----------
472
SQL>
9、系统A中定义导出文件存放的目录
系统A:
mkdir /bak
chown oracle:oinstall /bak
SQL> create directory OGG_EXPDP as ‘/bak‘;
10、查询系统A数据库scn号
col current_scn for 9999999999999999
select current_scn from v$database;
CURRENT_SCN
-----------------
14670064687177
SQL>
11、通过数据泵导出系统A指定的表结构及数据
expdp \‘/ as sysdba\‘ directory=OGG_EXPDP tables=UCCBIZ.T_HW_AGENT_SIGN_RECORD,UCCBIZ.T_HW_AGENT_CONSULTED dumpfile =TB0918.dmp logfile=TB0918.log flashback_scn=14670064687177 compression=all cluster=N
--flashback_scn 限定对应的scn号之前的数据
--参数介绍:compression=all 文件压缩
--cluster=N RAC环境导出需要该参数
12、在B库创建dmp存放目录
mkdir /bak
chown oracle:oinstall /bak
SQL> create directory OGG_EXPDP as ‘/bak‘;
13、scp将dmp文件从系统A传至系统B
系统A:
$scp TB0918.dmp oracle@系统B的IP:传至的目录
scp TB0918.dmp oracle@B:/bak
14、在系统B导入数据
impdp \‘/ as sysdba\‘ directory=OGG_EXPDP dumpfile=TB0918.dmp logfile=TB0918.log table_exists_action=truncate transform=oid:n cluster=N
--参数介绍:
--table_exists_action=truncate 导入之前,如果表存在就truncate
--cluster=N RAC环境备份需要该参数
15、系统B复制进程R_SH参数文件修改
GGSCI (B) 2> edit param R_SH
--20210918 add
个性化表都放到map *之前,因为遇到重复定义会优先第一次遇到的规则
所以需要在MAP UCCBIZ.*, TARGET UCCBIZ.*;这一行之前增加:
--系统A基于SCN号导出,系统B基于CSN号开启应用
Version 11的OGG对应:
MAP UCCBIZ.T_HW_AGENT_SIGN_RECORD, TARGET UCCBIZ.T_HW_AGENT_SIGN_RECORD,FILTER(@GETENV("TRANSACTION","CSN")>14670064687177);
Version 12 的OGG对应:
MAP UCCBIZ.T_HW_AGENT_SIGN_RECORD, TARGET UCCBIZ.T_HW_AGENT_SIGN_RECORD,FILTER(@GETENV(‘TRANSACTION‘,‘CSN‘)>14670064687177);
区别:版本11的ogg需要使用双引号"TRANSACTION","CSN",如果使用的是版本12的ogg要使用单引号.
16、开启系统A的投递进程P_SH
GGSCI (A) 11> start P_SH
17、开启系统B的应用进程R_SH
GGSCI (B) 3> start R_SH
18、数据对比
下查看相关统计数据
系统A:
GGSCI (A) 11> stats P_SH,daily
系统B:
GGSCI (B) 4> stats R_SH,daily
19、验证数据
多查几次,看数据变化情况
select count(*) from UCCBIZ.T_HW_AGENT_SIGN_RECORD;
select count(*) from UCCBIZ.T_HW_AGENT_CONSULTED;