排粪

注:请确保按 Oracle GoldenGate 程序一节中所述设置环境变量,以便能够使用 DEFGEN 实用程序。

使用 DEFGEN 实用程序生成源表元数据定义,复制程序可以使用这些定义从低于 Oracle GoldenGate 12.2 且不包含源表元数据的格式发行版中的线索文件读取源表元数据。DEFGEN 程序安装在 Oracle GoldenGate 的主目录 bin 目录中。

适用于 Windows、UNIX 和 Linux 的语法

defgen PARAMFILE <parameter_file>
[NOEXTATTR]
[PAUSEATEND | NOPAUSEATEND]
[REPORTFILE <report_file>]
[UPDATECS <characterset> ]

PARAMFILE <parameter_file>

必需。指定正在运行的 DEFGEN 程序的参数文件的相对路径名或绝对路径名。参数文件必须手动创建,并将列出 defs 文件,用于表定义输出、数据库连接信息以及要生成定义的表。

NOEXTATTR

可用于支持与低于 11.2.1 版且不支持 ASCII 以外的字符集的 Oracle GoldenGate 版本的向后兼容性,也支持区分大小写或用空格引用的对象名称。NOEXTATTR 可防止 DEFGEN 包含支持 Oracle GoldenGate 发行版 11.2.1 中引入的全球化功能的数据库语言环境和字符集。如果表名或列名具有多字节或特殊字符(如空格),则在指定 NOEXTATTR 时,DEFGEN 不会包括表定义。如果在参数文件中使用 APPEND 模式,则会忽略 NOEXTATTR,并且新表定义将以现有文件格式附加,无论是否具有额外属性。

PAUSEATEND NOPAUSEATEND(默认值)

(仅限 Windows)进程停止时,需要 Oracle GoldenGate 用户查看控制台输出,然后按任意键将其清除。同时指示进程是正常还是异常结束。

REPORTFILE <report_file>

将命令输出发送到指定的报告文件。如果没有 reportfile 选项,命令输出将输出输出到屏幕。

defs_file UPDATECS <charset>

如果文件传输到具有不兼容字符集的操作系统,则将定义文件的字符集转换为其他字符集。此过程将定义文件的名称和目标字符集作为输入。例如:defgen source.def UPDATECS UTF-8。

UPDATECS 有助于处理以下情况:当日语 Windows 上的日语表名在 Windows CP932 中写入数据定义文件,然后将定义文件传输到日语 UNIX。除非在 PCK 语言环境中配置 UNIX,否则无法使用该文件。因此,必须使用 UPDATECS 将定义文件的编码转换为正确的格式。

示例

下面是示例 DEFGEN 参数文件 defgenparam.prm。有关详细信息,请参见 DEFSFILE 参数。

DEFSFILE /home/oracle/ogg/ora/bin/ora.defs, PURGE
USERIDALIAS oracle_source
TABLE hr.employees;

使用以下命令运行 DEFGEN 程序:

$OGG_HOME/bin/defgen PARAMFILE defgenparam.prm