OGG的defgen工具使用

defgen

官网介绍链接:link.
要在目标端执行列映射和转换,请使用在源上生成的source-definitions文件将源定义提供给Replicat。
默认情况下,DEFGEN将定义文件本身写入本地操作系统的字符集中。如果满足以下条件,则可以在本地系统上创建定义文件并将其传输到远程系统,而不会出现与编码有关的任何问题:

这里我使用的时候就是采用该种方式,在源端生成defgen文件,然后将该文件scp到目标端。
这是生成def文件所需的参数文件 defgen.prm

1.创建参数文件

在ggsci下,输入edit param def.prm

DEFSFILE /ogg/dirdef/dbus.def purge
USERID ogg_admin, PASSWORD ogg_admin
table DBUS.DBUS_COPY;   //如果有多个table 需要另起一行
//table DBUS.DBUS_CP;

参数解释
DEFSFILE FILE_NAME [APPEND | PURGE] , 指定生成的defgen文件的路径和名称 purge代表每次写入文件前,先删除该文件的内容,再写入。 如果是想要追加相同的内容,就改为append 但是一般不怎么用append
如果不加purge或者append, 那么当你之前的文件存在时,你执行命令去生成def文件时 是会报错的。

ERROR   OGG-00037  DEFSFILE file /ogg/dirdef/gp25.def already exists.

所以一般建议加上purge

2.执行命令生成

退出命令行,/ogg/目录下执行命令:./defgen paramfile dirprm/defgen.prm

./defgen paramfile dirprm/gp25.prm

***********************************************************************
        Oracle GoldenGate Table Definition Generator for Oracle
      Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359
   Linux, x64, 64bit (optimized), Oracle 11g on Apr 15 2018 10:11:00

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.


                    Starting at 2020-04-21 14:32:38
***********************************************************************

Operating System Version:
Linux
Version #1 SMP Wed Apr 13 00:51:26 EDT 2016, Release 2.6.32-642.el6.x86_64
Node: zetamdw
Machine: x86_64
                         soft limit   hard limit
Address Space Size   :    unlimited    unlimited
Heap Size            :    unlimited    unlimited
File Size            :    unlimited    unlimited
CPU Time             :    unlimited    unlimited

Process id: 40468

***********************************************************************
**            Running with the following parameters                  **
***********************************************************************
DEFSFILE /ogg/dirdef/gp25.def purge
USERID ogg_admin, PASSWORD ***
TABLE  DBUS.DBUS_GP5;
Retrieving definition for DBUS.DBUS_GP5.


Definitions generated for 1 table in /ogg/dirdef/gp25.def.

可以看到输出信息中以及成功生成了 def文件

3.查看生成文件的内容

cat /ogg/dirdef/gp25.def

*+- Defgen version 5.0, Encoding UTF-8
*
* Definitions created/modified  2020-04-21 14:32
*
*  Field descriptions for each column entry:
*
*     1    Name
*     2    Data Type
*     3    External Length
*     4    Fetch Offset
*     5    Scale
*     6    Level
*     7    Null
*     8    Bump if Odd
*     9    Internal Length
*    10    Binary Length
*    11    Table Length
*    12    Most Significant DT
*    13    Least Significant DT
*    14    High Precision
*    15    Low Precision
*    16    Elementary Item
*    17    Occurs
*    18    Key Column
*    19    Sub Data Type
*    20    Native Data Type
*    21    Character Set
*    22    Character Length
*    23    LOB Type
*    24    Partial Type
*
Database type: ORACLE
Character set ID: UTF-8
National character set ID: CESU-8
Locale: neutral
Case sensitivity: 14 14 14 14 14 14 14 14 14 14 14 14 11 14 14 14
TimeZone: GMT
*
Definition for table DBUS.DBUS_GP5
Record length: 442
Syskey: 0
Columns: 7
ID        64     50        0  0  0 1 0     50     50     50 0 0 0 0 1    0 1   2    2       -1      0 0 0
NAME      64    100       56  0  0 1 0    100    100      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
AGE       64     50      162  0  0 1 0     50     50     50 0 0 0 0 1    0 0   2    2       -1      0 0 0
EMAIL     64     50      218  0  0 1 0     50     50     50 0 0 0 0 1    0 0   2    2       -1      0 0 0
ADDRESS   64     50      274  0  0 1 0     50     50     50 0 0 0 0 1    0 0   2    2       -1      0 0 0
TEST      64     50      330  0  0 1 0     50     50     50 0 0 0 0 1    0 0   2    2       -1      0 0 0
TEST1     64     50      386  0  0 1 0     50     50     50 0 0 0 0 1    0 0   2    2       -1      0 0 0
End of definition

可以看到,源表的所有字段都已经存在在这个文件中。

总结

基本用法就是这样 在OGG使用过程中,如果源端是oracle,目标端是不一样的数据库 可以用到defgen工具进行数据类型定义和数据类型转换

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值