ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES
Valid for Replicat
复制进程参数
Use ALLOWNOOPUPDATES and NOALLOWNOOPUPDATES to control how Replicat responds to a “noop” operation. A no-op operation is one in which there is no effect on the target table. The
ALLOWNOOPUPDATES 和 NOALLOWNOOPUPDATES 用来处理 “没有操作的操作” “没有操作的操作” 例如 源表 set x=a where x=a
following are some examples of how this can occur.
● The source table has a column that does not exist in the target table, or has a column
that was excluded from replication (with a COLSEXCEPT clause). In either case, if that
source column is updated, there will be no target column name to use in the SET clause
within the Replicat SQL statement.
当源表有某些列但是目标表却没有,或者复制进程中配置了 COLSEXCEPT 参数 在这些情况下,当源表对那些列进行更新,目标表将不发生任何变化
● An update is made that sets a column to the same value as the current one. The
database does not log the new value, because it did not really change. However, Oracle
GoldenGate extracts the operation as a change record because the primary key was
logged — but there is no column value for the SET clause in the Replicat SQL statement.
By default (NOALLOWNOOPUPDATES), Replicat abends with an error because these types of
operations do not update the database. With ALLOWNOOPUPDATES, Replicat ignores the
operation instead of abending. The statistics reported by Replicat will show that an update
was made, but the database will not be updated.
另外更新一个字段的值更新的值为原来的值,数据库不会记录这个新值,因为它没有发生改变, 然后OGG 抽取进程将这个作为一个操作记录下来了,这是因为主键的存在但是列没有任何值的变化,根据系统默认的 NOALLOWNOOPUPDATES参数设置复制进程将 abends 并报错,因为那些更改没有在目标库上做更新。如果使用了 ALLOWNOOPUPDATES 参数OGG 将忽略这样的情况并且不会 abend进程统计信息会记录update 操作,但是数据库却不会发生改变。
Valid for Replicat
复制进程参数
Use ALLOWNOOPUPDATES and NOALLOWNOOPUPDATES to control how Replicat responds to a “noop” operation. A no-op operation is one in which there is no effect on the target table. The
ALLOWNOOPUPDATES 和 NOALLOWNOOPUPDATES 用来处理 “没有操作的操作” “没有操作的操作” 例如 源表 set x=a where x=a
following are some examples of how this can occur.
● The source table has a column that does not exist in the target table, or has a column
that was excluded from replication (with a COLSEXCEPT clause). In either case, if that
source column is updated, there will be no target column name to use in the SET clause
within the Replicat SQL statement.
当源表有某些列但是目标表却没有,或者复制进程中配置了 COLSEXCEPT 参数 在这些情况下,当源表对那些列进行更新,目标表将不发生任何变化
● An update is made that sets a column to the same value as the current one. The
database does not log the new value, because it did not really change. However, Oracle
GoldenGate extracts the operation as a change record because the primary key was
logged — but there is no column value for the SET clause in the Replicat SQL statement.
By default (NOALLOWNOOPUPDATES), Replicat abends with an error because these types of
operations do not update the database. With ALLOWNOOPUPDATES, Replicat ignores the
operation instead of abending. The statistics reported by Replicat will show that an update
was made, but the database will not be updated.
另外更新一个字段的值更新的值为原来的值,数据库不会记录这个新值,因为它没有发生改变, 然后OGG 抽取进程将这个作为一个操作记录下来了,这是因为主键的存在但是列没有任何值的变化,根据系统默认的 NOALLOWNOOPUPDATES参数设置复制进程将 abends 并报错,因为那些更改没有在目标库上做更新。如果使用了 ALLOWNOOPUPDATES 参数OGG 将忽略这样的情况并且不会 abend进程统计信息会记录update 操作,但是数据库却不会发生改变。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26764973/viewspace-1192402/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26764973/viewspace-1192402/