了解数据定义文件

Oracle GoldenGate可以查询本地数据库以获取一组定义,但它必须依赖数据定义文件从远程数据库获取定义。数据定义文件包含有关正在复制的数据的元数据的信息。有两种类型的定义文件:

  • 源定义文件包含源表的定义。
  • 目标定义文件包含目标表的定义。

可以在参数文件中使用多个数据定义文件。例如,每个人都可以包含不同应用程序的定义。

12.2.1定义文件的内容

数据定义文件的格式仅供内部使用,不应由Oracle GoldenGate用户编辑,除非在文档化的过程中或由支持代表指示这样做。该文件以一个文件头开头,该文件头显示DEFGEN的版本,有关字符集的信息,数据库类型,区域设置以及指示其他数据属性的内部元数据。标题后面是表格定义部分。每个表定义部分都包含表名,记录长度,列数和一个或多个列定义。

12.2.2要使用哪种定义文件类型,以及哪里

要使用的定义文件的类型取决于列映射和转换的执行位置。

  • 从任何类型的Windows或基于UNIX的数据库系统复制到任何其他基于Windows或UNIX的系统时,映射和转换可以通过Extract,数据泵Extract或Replicat执行,但通常由Replicat在目标系统执行。但是,如果Oracle GoldenGate必须在不同的字符集之间进行转换,映射和转换必须由目标上的Replicat执行。请参阅了解字符集对定义文件的影响
  • 从任何基于Windows,UNIX或Linux的数据库系统复制到NonStop系统上的Enscribe目标时,必须在Windows,UNIX或Linux系统上执行映射和转换:只有提取可以将两部分和三部分SQL名称和数据类型转换为NonStop平台上使用的三部分文件名称。在这种情况下,Oracle GoldenGate无法在源和目标字符集之间进行转换。请参阅了解字符集对定义文件的影响。

因此:

  • 要在目标上执行列映射和转换,请使用源上生成的源定义文件将源定义提供给Replicat。
  • 要在源上执行列映射和转换,请使用目标上生成的目标定义文件将目标定义提供给主提取或数据泵提取,具体取决于转换的进程。
  • 要在中间系统上执行列映射或转换,您可能需要使用多个定义文件类型。请参阅在中介系统上使用数据泵创建报告配置并创建级联报告配置。请注意,如果中介系统上没有Replicat,则不能执行字符集之间的转换。

12.2.3了解字符集对定义文件的影响

Oracle GoldenGate在执行数据转换时会考虑数据库的字符集编码,并在创建定义文件时考虑本地操作系统的字符集。当源数据和目标数据具有不同的字符集时,请考虑以下准则。

12.2.3.1限制数据映射和转换到复制进程

Replicat是在不同字符集之间转换复制数据的唯一过程。它将数据从源数据库字符集转换为目标数据库字符集(或级联配置中的中介系统上的数据库字符集)。因此,如果源和目标字符集不同,则数据映射和转换必须由Replicat执行它不能在源系统上执行,也不能在仅包含数据泵的中介系统上执行。目标定义文件在这些情况下无效。

12.2.3.2避免操作系统字符集造成的文件损坏

默认情况下,DEFGEN将定义文件本身写入本地操作系统的字符集中。如果满足以下条件,则可以在本地系统上创建定义文件,并将其传输到远程系统,而不会出现与编码相关的问题:

  • 传送定义文件的远程系统具有与本地系统相同或相当的操作系统字符集
  • 远程系统的操作系统字符集是本地系统的操作系统字符集的子集。例如,如果源和目标字符集均兼容ASCII或EBCDIC,并且所有表和列名称只使用7位US-ASCII或等效字符,您可以在这些系统之间移动定义文件。

许多操作系统字符集在它们之间几乎没有兼容性。要将定义文件写入与远程系统使用的字符集兼容或相同的字符集,请在配置DEFGEN时使用DEFSFILE参数的CHARSET选项。

12.2.3.3改变现有定义文件的字符集

对于使用不兼容字符集传输到操作系统的现有定义文件,可以在该系统上运行DEFGEN实用程序以将文件的字符集转换为所需的字符集。此过程需要两个输入参数:定义文件的名称和UPDATECS character_set参数。例如:

defgen ./dirdef/source.def UPDATECS UTF-8

在Windows CP932中将日文Windows上的日文表名写入数据定义文件,然后将定义文件传输到日文UNIX时,UPDATECS会有所帮助。除非在PCK语言环境中配置了UNIX,否则不能使用该文件。因此,您必须使用UPDATECS将定义文件的编码转换为正确的格式。

12.2.3.4从z / OS系统下载到另一个平台

在将IBM z / OS平台生成的定义文件传输到非z / OS平台时,必须以BINARY模式下载。

12.2.4 使用定义模板

在创建定义文件时,可以指定定义模板,以便在初始启动后将表添加到Oracle GoldenGate配置时减少创建新定义文件的需求。要使用模板,所有新表格必须具有相同的结构,例如在客户数据库中,每个客户都有独立但相同的表格(请参阅要视为相同的表的规则)。

如果不使用模板并在启动后添加新表,则必须为添加到Oracle GoldenGate配置的每个新表生成定义文件,然后将其内容复制到现有主定义文件,然后重新启动该过程。

12.2.5配置Oracle GoldenGate以捕获数据定义

要配置Oracle GoldenGate以使用数据定义文件和模板(如果需要),您将:

  • 配置DEFGEN
  • 运行DEFGEN
  • 将定义文件传输到远程系统
  • 指定定义文件

不要为Oracle序列创建数据定义文件。这不是必需的,DEFGEN不支持它。

12.2.5.1配置DEFGEN

在要从中获取元数据定义的系统上执行这些步骤。

参考资料

https://docs.oracle.com/goldengate/c1230/gg-winux/GWUAD/associating-replicated-data-metadata.htm#GWUAD479

猜你喜欢

转载自www.cnblogs.com/sorliran/p/9208912.html
今日推荐