金门复制条件

时间:2016-10-19 11:08:28

标签: oracle-golden-gate

在goldengate中,我希望所有复制只在某个条件满足其他条件时才会发生,它应该等到条件满足。

假设我有一个表'T',其中只有一行和一列'Flag'。对于目标数据库中发生的每次复制,我想确保它只在'Flag'的值为'A'时发生,否则复制应该等到'Flag'的值变为'A'。

我不确定是否有可能,请你帮助我,告诉我是否有可能,我怎样才能实现。

2 个答案:

答案 0 :(得分:0)

像过滤器这样的东西会起作用。

在提取 - TABLE架构中.T,FILTER(FLAG =' A');

您还应该确保过滤器中的任何列都在重做日志中并由Extract捕获,以提高性能。您可能还希望将FLAG列添加到补充日志组(使用ADD TRANDATA可以执行此操作),然后在Extract中也使用LOGALLSUPCOLS。

尼克

答案 1 :(得分:0)

您可以在提取过程本身中使用条件过滤,这样您就不必提取和复制那些与条件不匹配的过滤。 您可以使用评论中提到的F​​ILTER,也可以在EXTRACT中使用SQLPREDICATE

  

TABLE schema.T,SQLPREDICATE“WHERE FLAG ='A'”;

使用SQLPREDICATE的优点是您可以使用复杂的SQL“WHERE”条件过滤要提取的数据。