如果您想在目标系统上记录更改记录的副本,您可以使用 Golden Gate Software 执行此操作,并且不会在源端资源消耗方面产生太多影响。此外,您无需对源数据库进行任何更改即可实施此解决方案。
Golden Gate 为引用您感兴趣的表列表的事务抓取重做日志。这些更改被写入“跟踪文件”,并且可以应用于同一数据库上的不同模式,或发送到目标系统并应用那里(非常适合减少源系统上的负载)。
将跟踪文件获取到目标系统后,您可以进行一些配置调整,您可以设置一个选项来执行审计,如果需要,您可以调用 2 个 Golden Gate 函数来获取有关交易的信息:
1) 设置 INSERTALLRECORDS Replication 参数,为对源表进行的每个更改操作在目标表中插入一条新记录。请注意,这会占用大量空间,但如果您需要全面审计,这可能是意料之中的。
2) 如果您的记录中还没有 CHANGED_BY_USERID 和 CHANGED_DATE,您可以使用目标端的 Golden Gate 函数来获取当前交易的此信息。查看 GG 参考指南中的以下函数: GGHEADER("USERID") GGHEADER("TIMESTAMP")
所以不,它不是免费的(需要通过 Oracle 获得许可),并且需要一些努力才能启动,但可能比实施和维护自己滚动的自定义解决方案要少得多的努力/成本,并且您还可以获得传送数据的额外好处到远程系统,这样您就可以保证对源数据库的影响最小。