Oracle GoldenGate:数据集成与实用工具全解析
在数据管理领域,高效的数据集成和处理至关重要。Oracle GoldenGate 作为一款强大的工具,在数据集成和复制方面表现出色。下面我们将深入探讨其功能以及相关实用工具。
一、Oracle GoldenGate 在数据集成中的卓越表现
Oracle GoldenGate 拥有众多可使用的功能,这些功能大致可分为六个不同类别。每个类别都有助于识别数据的状态和变化。凭借这些丰富的功能,Oracle GoldenGate 成为实施小型数据集成以及数据复制的理想工具。
它在数据集成过程中展现出诸多实用特性,这些特性分布在工具的各个方面,使得 Oracle GoldenGate 能够灵活、可靠地跨平台移动和处理数据。在数据集成场景中,其应用范围似乎没有边界,堪称最佳的数据集成工具之一。
二、GoldenGate 实用工具概览
除了基本的环境配置和运行功能外,Oracle GoldenGate 还附带了许多实用工具,这些工具可帮助我们在其环境中处理数据。常见的实用工具如下:
- Oracle GoldenGate Error (OGGERR)
- Logdump
- Definition Generator (Defgen)
- Check Parameters (checkprm)
- ConvChk
- Key Generation (keygen)
下面我们将详细介绍其中几个重要的工具。
三、Oracle GoldenGate 错误查询工具 - OGGERR
在使用 Oracle GoldenGate 时,偶尔会遇到错误,这些错误被称为 Oracle GoldenGate 错误(OGG 错误)。在早期,用户面对这些错误时往往不知所措,不知道错误的含义以及如何查询。不过,现在我们可以使用
oggerr
工具来查询错误信息。
oggerr
工具位于 Oracle GoldenGate Home 目录中,可以通过命令行调用。以下是其使用示例:
$ ./oggerr
Usage: ./oggerr (-v | [OGG-code...])
从上述用法可以看出,
oggerr
工具只有一个标志选项,之后需要提供 OGG 错误代码。例如,查询错误代码
OGG - 00001
的详细信息:
$ ./oggerr -v OGG-00001
00001, 00000, "Execution cannot continue - Program Terminating"
// *Cause: This is a generic message that indicates a process failure.
// *Action: Look for other messages in the process report and error log that
// provide more context for this failure. If you cannot determine and
// resolve the problem, contact Oracle Support.
使用
-v
标志可以获取错误的详细解释。虽然有些错误通过这种方式查询可能无法提供足够的信息,但在需要快速了解错误时,它仍然是一个非常有用的工具。
需要注意的是,你可以在
docs.oracle.com
(http://docs.oracle.com/goldengate/c1221/gg - winux/GMESG/toc.htm)的参考指南中找到所有 Oracle GoldenGate 错误代码的列表。
四、强大的日志查看工具 - Logdump
在所有实用工具中,
logdump
是最常用的工具之一。它允许我们查看在数据捕获时生成的跟踪文件,或者在数据应用到目标端之前的相关文件。该工具可能是 Oracle 为 GoldenGate 提供的最常用且功能最强大的工具。
logdump
工具直接位于 Oracle GoldenGate Home 目录的根目录下,方便查找和使用。要使用
logdump
,只需导航到 GoldenGate 的 Home 目录并执行该工具,示例如下:
oracle@wilma.acme.com:/home/oracle >cd $OGG_HOME
oracle@wilma.acme.com:/opt/app/oracle/product/12.2.0.0/oggcore_1 >./logdump
Oracle GoldenGate Log File Dump Utility for Oracle
Version 12.2.0.1.0 OGGCORE_12.2.0.1.0_PLATFORMS_151101.1925.2
Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
Logdump 4 >
打开
logdump
工具后,在开始读取跟踪文件之前,需要进行一些设置。该工具提供了许多选项,可以在
logdump
提示符下输入
help
命令查看,以下是部分命令列表:
FC [<num> | <string>] - Edit previous command
HISTORY - List previous commands
OPEN | FROM <filename> - Open a Log file
RECORD | REC - Display audit record
NEXT [ <count> ] - Display next data record
SKIP [ <count> ] [FILTER] - Skip down <count> records
FILTER - Apply filter during skip
COUNT - Count the records in the file
[START[time] <timestr>,]
[END[time] <timestr>,]
[INT[erval] <minutes>,]
[LOG[trail] <wildcard-template>,]
[FILE <wildcard-template>,]
[DETAIL ]
<timestr> format is
[[yy]yy-mm-dd] [hh[:mm][:ss]]
POSITION [ <rba> | FIRST | LAST | EOF ] - Set position in file
REVerse | FORward - Set read direction
RECLEN [ <size> ] - Sets max output length
EXIT | QUIT - Exit the program
FILES | FI | DIR - Display filenames
ENV - Show current settings
VOLUME | VOL | V - Change default volume
DEBUG - Enter the debugger
GHDR ON | OFF - Toggle GHDR display
DETAIL ON | OFF | DATA - Toggle detailed data display
DECRYPT OFF | ON [KEYNAME key_name]. - Decrypt data encrypted with GoldenGate trail encryption.
五、访问跟踪文件数据
要使用
logdump
工具访问跟踪文件,需要明确指定要打开的跟踪文件。可以通过
open
命令实现,示例如下:
Logdump 5 >open ./dirdat/rt000000000
Current LogTrail is /opt/app/oracle/product/12.2.0.0/oggcore_1/dirdat/rt000000000
需要注意的是,我们可以使用通配符打开一系列跟踪文件。
打开跟踪文件后,若要查看数据,需要设置环境以显示所需内容。有几个常用的
logdump
命令可以帮助我们进行设置:
- GHDR ON | OFF - 切换 GHDR 显示
- DETAIL ON | OFF | DATA - 切换详细数据显示
- USERTOKEN on | OFF | detail - 显示用户令牌信息
- HEADERTOKEN on | OFF | detail - 显示头令牌信息
- GGSTOKEN on | OFF | detail - 显示 GGS 令牌信息
以下是这些命令的使用示例:
Logdump 6 >ghdr on
Logdump 7 >detail on
Logdump 8 >detail data
Logdump 9 >ggstoken on
Logdump 10 >usertoken on
执行这些命令后,就完成了查看跟踪文件的基本设置。默认情况下,我们位于跟踪文件的起始位置(相对字节地址 RBA 为 0)。此时,可以使用
next
(n)命令在文件中向前移动。例如:
Logdump 11 >n
2016/03/14 19:34:21.383.380 FileHeader Len 1497 RBA 0
Name: *FileHeader*
3000 0366 3000 0008 4747 0d0a 544c 0a0d 3100 0002 | 0..f0...GG..TL..1...
0005 3200 0004 2000 0000 3300 0008 02f2 543e 2d1c | ..2... ...3.....T>-.
82d4 3400 0043 0041 7572 693a 6672 6564 3a61 636d | ..4..C.Auri:fred:acm
653a 636f 6d3a 3a75 3031 3a61 7070 3a6f 7261 636c | e:com::u01:app:oracl
653a 7072 6f64 7563 743a 3132 2e32 2e30 3a6f 6767 | e:product:12.2.0:ogg
636f 7265 5f31 3a50 4747 3132 4335 0000 4735 0000 | core_1:PGG12C5..G5..
4300 4175 7269 3a66 7265 643a 6163 6d65 3a63 6f6d | C.Auri:fred:acme:com
在 RBA 为 0 时,看到的是跟踪文件的头部信息,该信息包含了文件的来源、使用的 GoldenGate 版本以及创建该跟踪文件的数据泵进程等。要查看实际的记录,需要继续使用
next
命令在文件中向前移动。
从 Oracle GoldenGate 12c(12.2.0.1.0)开始,跟踪文件中会包含表的元数据。这些元数据有助于在源和目标元数据之间进行映射,特别是在表定义不同或在异构环境中进行复制时。例如,查看
SOE.LOGON
表的元数据和事务信息:
Logdump 14 >n
Hdr-Ind : E (x45) Partition : . (x00)
UndoFlag : . (x00) BeforeAfter: A (x41)
RecLength : 281 (x0119) IO Time : 2016/03/14 20:27:28.773.265
IOType : 170 (xaa) OrigNode : 2 (x02)
TransInd : . (x03) FormatType : R (x52)
SyskeyLen : 0 (x00) Incomplete : . (x00)
DDR/TDR Idx: (001, 001) AuditPos : 25851148
Continued : N (x00) RecCount : 1 (x01)
2016/03/14 20:27:28.773.265 Metadata Len 281 RBA 1707
Name: SOE.LOGON
*
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 Sig DT 13)Least Sig DT 14)High Precision 15)Low Precision
16)Elementary Item 17)Occurs 18)Key Column 19)Sub DataType 20)Native DataType
21)Character Set 22)Character Length 23)LOB Type 24)Partial Type
*
TDR version: 1
Definition for table SOE.LOGON
Record Length: 134
Columns: 3
LOGON_ID 64 50 0 0 0 1 0 50 50 50 0 0 0 0 1 0
1 2 2 -1 0 0 0
CUSTOMER_ID 64 50 56 0 0 1 0 50 50 50 0 0 0 0 1 0
1 2 2 -1 0 0 0
LOGON_DATE 192 19 112 0 0 1 0 19 19 19 0 5 0 0 1 0
1 0 12 -1 0 0 0
End of definition
这个跟踪文件头部信息对于不熟悉的人来说可能比较复杂,但它包含了很多有用的信息。例如,它提供了事务的相关信息(如记录长度、是否为前后事务、事务发生的日期等),以及表的元数据(如列名、数据类型、长度等)。这些信息有助于解决源和目标元数据之间的映射问题。
继续使用
next
命令,我们可以看到事务的具体信息:
Logdump 15 >n
Hdr-Ind : E (x45) Partition : . (x0c)
UndoFlag : . (x00) BeforeAfter: A (x41)
RecLength : 54 (x0036) IO Time : 2016/03/14 20:27:20.008.002
IOType : 5 (x05) OrigNode : 255 (xff)
TransInd : . (x03) FormatType : R (x52)
SyskeyLen : 0 (x00) Incomplete : . (x00)
AuditRBA : 4814 AuditPos : 25851148
Continued : N (x00) RecCount : 1 (x01)
2016/03/14 20:27:20.008.002 Insert Len 54 RBA 2048
Name: SOE.LOGON (TDR Index: 1)
After Image: Partition 12 G s
0000 000b 0000 0007 3239 3832 3938 3600 0100 0a00 | ........2982986.....
0000 0637 3034 3737 3000 0200 1500 0032 3031 362d | ...704770......2016-
3033 2d31 343a 3230 3a32 373a 3139 | 03-14:20:27:19
Column 0 (x0000), Len 11 (x000b)
0000 0007 3239 3832 3938 36 | ....2982986
Column 1 (x0001), Len 10 (x000a)
0000 0006 3730 3437 3730 | ....704770
Column 2 (x0002), Len 21 (x0015)
0000 3230 3136 2d30 332d 3134 3a32 303a 3237 3a31 | ..2016-03-14:20:27:1
39 | 9
GGS tokens:
5200 0014 4141 415a 324a 4141 4841 4141 674d 2b41 | R...AAAZ2JAAHAAAgM+A
4345 0001 7401 0000 4c00 0008 3235 3835 3835 3430 | CE..t...L...25858540
3600 000a 322e 3235 2e32 3032 3137 6901 0002 0001 | 6...2.25.20217i.....
事务头部信息与元数据部分提供的信息类似,包括记录长度、前后图像信息、事务发生的日期等。此外,还会显示事务的类型(如插入、更新等)、事务的长度以及相对字节地址。在这个例子中,是一个长度为 54 字节的插入事务,位于 2048 字节地址处。
需要注意的是,RBA 可以用于大致估算事务之间的大小,同时,我们可以使用
count
命令了解在复制环境中应用的事务数量。
事务头部之后是事务的具体数据,以二进制和 ASCII 格式显示。二进制部分位于 ASCII 信息的左侧,它提供了数据的列映射,但列名并不明确。这时,头部的元数据就发挥了重要作用,将两者结合起来,我们可以快速确定事务中映射的列。
六、定义生成器 - Defgen
从 Oracle GoldenGate 12c(12.2.0.1.0)开始,Oracle 在跟踪文件中提供了表的元数据,这使得源和目标之间的数据映射更加容易。然而,由于 Oracle GoldenGate 具有灵活性,不同版本之间仍然可以进行数据复制(如 Oracle GoldenGate 11g 复制到 Oracle GoldenGate 12c 环境,反之亦然)。在这种情况下,如果表定义不同或在异构环境中进行复制,就需要使用定义文件。
定义文件由 Oracle GoldenGate 的
defgen
工具生成,它是定义生成器(Definition Generator)的缩写,随核心产品一起提供。该工具的主要目的是在数据复制过程中提供表结构的映射方式。
defgen
允许创建定义文件,用于定义复制过程中源端或目标端的表元数据结构。
七、配置 Defgen
在使用
defgen
工具之前,需要进行配置。以下是配置源端映射的步骤,将创建一个名为
defgen.prm
的参数文件:
1. 从 GGSCI 中编辑一个名为
defgen
的参数文件:
edit params defgen
- 编辑参数文件,添加所需的参数。以下是一个示例:
DEFSFILE ./dirdef/defgen.def
USERID ggate, PASSWORD ggate
TABLE sfi.clients;
通过以上步骤,我们就完成了
defgen
工具的配置,可以使用它来解决源和目标元数据不匹配的问题,确保数据复制的成功。
综上所述,Oracle GoldenGate 及其附带的实用工具为我们提供了强大的数据集成和处理能力。通过合理使用这些工具,我们可以更好地管理和处理数据,提高数据处理的效率和准确性。
Oracle GoldenGate:数据集成与实用工具全解析
八、使用 Defgen 进行数据映射的优势
在异构环境或不同版本的 GoldenGate 之间进行数据复制时,使用
defgen
生成的定义文件能带来显著优势,具体如下:
|优势|说明|
|----|----|
|解决结构不匹配问题|当源表和目标表的结构不同时,定义文件可以明确指定如何将源表的列映射到目标表的列,避免因结构差异导致的复制错误。|
|支持异构环境|在不同数据库系统之间进行数据复制时,不同数据库的表结构和数据类型可能存在差异,
defgen
可以帮助处理这些差异,确保数据准确复制。|
|提高复制灵活性|通过定义文件,可以灵活调整数据映射规则,例如选择复制部分列、对数据进行转换等,以满足不同的业务需求。|
九、其他实用工具简介
除了前面详细介绍的
oggerr
、
logdump
和
defgen
工具外,Oracle GoldenGate 还提供了其他一些实用工具,下面为大家简单介绍:
-
Check Parameters (checkprm)
:用于检查参数文件的有效性。在配置 GoldenGate 过程中,参数文件的正确性至关重要。使用
checkprm
工具可以提前发现参数文件中的错误,避免在运行过程中出现问题。例如,在编辑完参数文件后,运行
checkprm
工具进行检查:
$ ./checkprm <参数文件名>
-
ConvChk
:该工具用于检查字符集转换的正确性。在不同字符集的数据库之间进行数据复制时,可能会出现字符集转换问题。
ConvChk可以帮助检测这些问题,确保数据在复制过程中字符集转换正确。 -
Key Generation (keygen)
:用于生成加密密钥。在需要对数据进行加密传输或存储时,使用
keygen工具生成密钥,提高数据的安全性。例如,生成一个加密密钥:
$ ./keygen
十、GoldenGate 实用工具的使用流程总结
为了更清晰地展示 GoldenGate 实用工具的使用流程,下面使用 mermaid 绘制流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B{遇到问题?}:::decision
B -->|是| C{错误查询?}:::decision
B -->|否| D(正常数据处理):::process
C -->|是| E(使用 oggerr 工具查询错误):::process
C -->|否| F{查看跟踪文件?}:::decision
F -->|是| G(使用 logdump 工具打开跟踪文件):::process
F -->|否| H{处理表结构映射?}:::decision
H -->|是| I(使用 defgen 工具生成定义文件):::process
H -->|否| J(使用其他工具):::process
E --> K(根据错误信息解决问题):::process
G --> L(设置环境并查看数据):::process
I --> M(使用定义文件进行数据复制):::process
K --> N([结束]):::startend
L --> N
M --> N
D --> N
J --> N
从流程图可以看出,在使用 GoldenGate 过程中,根据遇到的不同问题,可以选择相应的实用工具进行处理。如果遇到错误,可以使用
oggerr
工具查询错误信息;如果需要查看跟踪文件,可以使用
logdump
工具;如果需要处理表结构映射问题,可以使用
defgen
工具。
十一、总结与建议
Oracle GoldenGate 及其附带的实用工具为数据集成和复制提供了强大的支持。通过合理使用这些工具,可以提高数据处理的效率和准确性,解决各种复杂的数据集成问题。以下是一些使用建议:
-
熟悉工具功能
:在使用 GoldenGate 之前,建议详细了解各个实用工具的功能和使用方法,以便在遇到问题时能够快速选择合适的工具进行处理。
-
定期检查参数文件
:使用
checkprm
工具定期检查参数文件的有效性,避免因参数错误导致的问题。
-
备份关键数据
:在使用
logdump
工具查看跟踪文件时,可以使用
save
命令将重要的数据保存到文件中,以便后续分析和恢复。例如:
Logdump > save <保存文件名> <选项>
-
注意数据安全
:在使用
keygen工具生成加密密钥时,要妥善保管密钥,确保数据在传输和存储过程中的安全性。
总之,充分利用 Oracle GoldenGate 的实用工具,可以帮助我们更好地管理和处理数据,应对各种复杂的数据集成场景。
超级会员免费看
1万+

被折叠的 条评论
为什么被折叠?



