在goldengate中,我希望所有复制只在某个条件满足其他条件时才会发生,它应该等到条件满足。
假设我有一个表'T',其中只有一行和一列'Flag'。对于目标数据库中发生的每次复制,我想确保它只在'Flag'的值为'A'时发生,否则复制应该等到'Flag'的值变为'A'。
我不确定是否有可能,请你帮助我,告诉我是否有可能,我怎样才能实现。
答案 0 :(得分:0)
像过滤器这样的东西会起作用。
在提取 - TABLE架构中.T,FILTER(FLAG =' A');
您还应该确保过滤器中的任何列都在重做日志中并由Extract捕获,以提高性能。您可能还希望将FLAG列添加到补充日志组(使用ADD TRANDATA可以执行此操作),然后在Extract中也使用LOGALLSUPCOLS。
尼克
答案 1 :(得分:0)
您可以在提取过程本身中使用条件过滤,这样您就不必提取和复制那些与条件不匹配的过滤。 您可以使用评论中提到的FILTER,也可以在EXTRACT中使用SQLPREDICATE
即
TABLE schema.T,SQLPREDICATE“WHERE FLAG ='A'”;
使用SQLPREDICATE的优点是您可以使用复杂的SQL“WHERE”条件过滤要提取的数据。