排粪
注:请确保按 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