Oracle GoldenGate 之 Oracle -> Oracle 初始化同步数据

新手安装配置请参考:在Windows中 基于Oracle GoldenGate (OGG)进行Oracle->Oracle数据库同步配置(超详细)

一、【源端】

1、配置MGR管理器进程:EDIT PARAMS MGR

GGSCI (custom04) 1> EDIT PARAMS MGR

2、填写内容

port 2000
dynamicportlist 2001-2005
autorestart extract *,waitminutes 2,retries 5

3、启动MGR管理器进程:start mgr

GGSCI (custom04) 2> start mgr
Manager started.

4、查看MGR管理器进程:info mgr

GGSCI (custom04) 3> info mgr
Manager is running (IP port Win10.2000, Process ID 13820).

5、创建采集投递进程:ADD EXTRACT EJWINIT, SOURCEISTABLE

GGSCI (custom04) 4> ADD EXTRACT EJWINIT, SOURCEISTABLE

6、查看创建的进程:INFO EXTRACT *, TASKS

GGSCI (custom04) 5> INFO EXTRACT *, TASKS
EXTRACT    EJWINIT    Last Started 2019-01-31 12:37   Status STOPPED
Checkpoint Lag       Not Available
Log Read Checkpoint  Table JW_USER.T_USERINFO
                     2019-01-31 12:37:15  Record 5
Task                 SOURCEISTABLE

7、编辑配置文件:EDIT PARAMS EJWINIT

GGSCI (custom04) 6> EDIT PARAMS EJWINIT

8、填写内容【注意:1.根据数据库字符集修改NLS_LANG参数2.修改用户名、密码3.新增表T_USERINFO并添加10条数据

EXTRACT EJWINIT
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid 用户名,password 密码
RMTHOST 202.11.11.11, MGRPORT 2000
RMTTASK REPLICAT, GROUP RJWINIT
TABLE JW_USER.T_USERINFO;

9、启动进程【注意:需在配置完目标端的接收进程后在执行】:START EXTRACT EJWINIT

GGSCI (custom04) 7> START EXTRACT EJWINIT

10、查看运行情况 :VIEW REPORT EJWINIT

GGSCI (custom04) 8> VIEW REPORT EJWINIT
....略
2019-01-31 12:37:15  INFO    OGG-02911  Processing table JW_USER.T_USERINFO.

***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************


Report at 2019-01-31 12:37:16 (activity since 2019-01-31 12:37:04)

Output to RJWINIT:

From Table JW_USER.T_USERINFO:
       #                   inserts:         5
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0


REDO Log Statistics
  Bytes parsed                    0
  Bytes output                  741

二、【目标端】

1、配置MGR管理器进程:EDIT PARAMS MGR

GGSCI (custom04) 1> EDIT PARAMS MGR

2、填写内容,注意修改IP(源端的IP地址)

port 2000
dynamicportlist 2001-2005
autorestart extract *,waitminutes 2,retries 5
ACCESSRULE, PROG *, IPADDR 202.11.11.11, ALLOW

3、启动MGR管理器进程:start mgr

GGSCI (custom04) 2> start mgr
Manager started.

4、查看MGR管理器进程:info mgr

GGSCI (custom04) 3> info mgr
Manager is running (IP port Win10.2000, Process ID 13820).

5、创建接收进程:add replicat RJWINIT,specialrun

GGSCI (custom04) 4> add replicat RJWINIT,specialrun

6、查看创建的进程:INFO REPLICAT *, TASKS

GGSCI (custom04) 5> INFO REPLICAT *, TASKS
REPLICAT   RJWINIT   Initialized   2019-01-31 12:38   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:42:44 ago)
Log Read Checkpoint  Not Available
Task                 SPECIALRUN

7、编辑配置文件:edit params RJWINIT

GGSCI (custom04) 6> edit params RJWINIT

8、填写内容【注意:1.根据数据库字符集修改NLS_LANG参数2.修改用户名、密码3.新增表T_USERINFO

REPLICAT RJWINIT
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
ASSUMETARGETDEFS
userid 用户名,password 密码
DISCARDFILE ./dirrpt/RJWINIT.dsc, PURGE
MAP JW_USER.T_USERINFO, target JWUSER.T_USERINFO;

9、启动进程:START REPLICAT RJWINIT

GGSCI (custom04) 7> START REPLICAT RJWINIT

10、查看运行情况 :VIEW REPORT RJWINIT

GGSCI (custom04) 8> VIEW REPORT RJWINIT
....略
2019-01-31 12:37:14  INFO    OGG-03522  Setting session time zone to source database time zone 'GMT'.
2019-01-31 12:37:14  WARNING OGG-02760  ASSUMETARGETDEFS is ignored because trail file  contains table definitions.
2019-01-31 12:37:14  INFO    OGG-06505  MAP resolved (entry JW_USER.T_USERINFO): MAP "JW_USER"."T_USERINFO", target JWUSER.T_USERINFO.
2019-01-31 12:37:14  INFO    OGG-02756  The definition for table JW_USER.T_USERINFO is obtained from the trail file.
2019-01-31 12:37:14  INFO    OGG-06511  Using following columns in default map by name: id, name.
2019-01-31 12:37:14  INFO    OGG-06510  Using the following key columns for target table JWUSER.T_USERINFO: id.
2019-01-31 12:37:14  INFO    OGG-03010  Performing implicit conversion of column data from character set zhs16gbk to UTF-8.

***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************


Report at 2019-01-31 12:37:19 (activity since 2019-01-31 12:37:14)

From Table JW_USER.T_USERINFO to JWUSER.T_USERINFO:
       #                   inserts:         5
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0


CACHE OBJECT MANAGER statistics
....略

三、注意事项

1、 在大量数据初始化的时候,注意目标端的归档日志空间大小。如果数据源为100G,理论上目标端的归档日志空间也至少大于100G才行。

如果归档日志满了将会报错:ORA-00257: archiver error. Connect internal only, until freed,解决方法:
https://blog.csdn.net/cw370008359/article/details/51023794
https://jingyan.baidu.com/article/29697b911dde4bab21de3c4d.html

2、在大量数据初始化的时候,需要注意目标端的表空间时候足够。修改表空间大小:

第一步:查看所有表空间及表空间大小:

SQL > select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

第二步:查看所有表空间对应的数据文件:

SQL > select tablespace_name,file_name from dba_data_files;

第三步:修改数据文件大小

SQL > alter database datafile 'H:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\USERS01.DBF' RESIZE 10240M; 
3、需要注意的是目标端与源端的OGG版本最后保持一致。如何查看OGG版本?进入ggsci即可查看:
image.png
4、数据表中无主键需要在目标端设置:APPLYNOOPUPDATES。

该参数的含义就是不忽略出现的NO-OP操作,而是在目标数据库强制执行UPDATE修改操作,且只更新键值数据(主键或KEYCOLS指定的键值),如果表没有主键,也没有使用KEYCOLS关键字指定字段,那么将更新表数据的所有字段,如果没有相应记录,将INSERT新插入一条。

5、在操作ggsci时,一定要注意权限组是否一致,否则导致mgr等进程无法查看正常的运行状态,也不能启动停止。

ERROR:opening port for MGR MGR (Connection refused).

image.png

相关解释:http://blog.itpub.net/29047826/viewspace-1808538/

6、ORACLE在初始化数据中使用通配符的时候,居然存在将视图中的数据进行同步,导致发生错误。

image.png

解决方式:不使用通配符,指定表清单。但是问题又来了,我们有1000多张表如果快速生成?
image.png

(1).利用SQL先查询出所有的表名并通过||连接想要格式的字符串

【源端】

SQL > select 'TABLE UserName.'||t.table_name||';' from user_tables t ORDER BY t.table_name ASC;

TABLE UserName.CHECKPOINT;
TABLE UserName.CHECKPOINT_LOX;
TABLE UserName.CHG_HRM;
TABLE UserName.DC_BYXWSH_TJB;
TABLE UserName.BYGL_BYQKDCGSB;
TABLE UserName.BYGL_BYSFZXXB;
...

【目标端】

SQL > select 'MAP UserName.'||t.table_name||', target UserName.'||t.table_name||';' from user_tables t ORDER BY t.table_name ASC;

MAP UserName.CHECKPOINT, target UserName.CHECKPOINT;
MAP UserName.CHECKPOINT_LOX, target UserName.CHECKPOINT_LOX;
MAP UserName.CHG_HRM, target UserName.CHG_HRM;
MAP UserName.DC_BYXWSH_TJB, target UserName.DC_BYXWSH_TJB;
MAP UserName.JW_BYGL_BYQKDCGSB, target UserName.BYGL_BYQKDCGSB;
MAP UserName.JW_BYGL_BYSFZXXB, target UserName.BYGL_BYSFZXXB;

(2).排除视图/删除复制表的步骤

停止Extract/Data Pump/Replicat进程
注意停止Extract时检查长交易和归档日志
修改Extract/Data Pump/Replicat参数中复制范围排除该表

如使用通配符时,Extract/Data Pump可通过tableexclude排除表?

tableexclude UserName.KJ_*;
tableexclude UserName.DJ_YZCWSBQC;
table UserName.*;

如使用通配符时,Replicat可通过mapexclude排除表

MAPEXCLUDE UserName.TEST
MAP UserName.*, TARGET UserName.*;

重启Extract/Data Pump/Replicat进程
说明:在一个复制链路的任何一个环节去掉该表即可排除该表复制,但建议
在主Extract进行排除,可以避免各进程做不必要的工作;同时,在各个进程
参数均明确去掉该表可以保持前后的逻辑统一性和易读性

7、OGG-01194 Oracle GoldenGate Capture for Oracle, ext_sc0.prm: EXTRACT task REP_SC0 abended : File InitialLoad, with compatibility level 6, is not compatible with the current software version's compatibility level of 5. Modify the file writer's parameter file to generate the appropriate format using the FORMAT LEVEL 5 option.

在抽取进程中设置:

RMTTASK REPLICAT, GROUP REP_SC0,FORMAT LEVEL 5

EXTTRAIL /OGG/dirdat/e1,FORMAT LEVEL 5

还有一种情况,如果目标端是低版本,将不会支持FORMAT。所有你还是将版本更换一致最佳。

四、辅助工具校验数据

1、统计每张表的数据行数
SQL > select t.table_name,t.num_rows from user_tables t ORDER BY num_rows desc;
2、统计用户下所有表的数据行数

在统计之前最好先执行指定表分析,执行下面查询sql,将结果再次执行。

SQL > select 'analyze table '||S.TABLE_NAME||' compute statistics;' from  user_tables s;
image.png

统计所有表的数据行数

SQL > select sum(t.num_rows) from user_tables t;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容