Aur*_*oni 5 oracle replication materialized-views
假设您有两个Oracle数据库,DB_A和DB_B.DB_A中有一个名为TAB1的表,其中包含物化视图日志,以及在DB_B中创建的名为SNAP_TAB1的物化视图
CREATE SNAPSHOT SNAP_TAB1
REFRESH FAST
AS SELECT * FROM TAB1@DB_A;
Run Code Online (Sandbox Code Playgroud)
有没有办法在DB_B中查询每次调用快速刷新物化视图后对SNAP_TAB1所做的更改?
DBMS_SNAPSHOT.REFRESH( 'SNAP_TAB1', 'F' );
Run Code Online (Sandbox Code Playgroud)
在DB_A中,在刷新之前,您可以查询物化视图日志表MLOG $ _TAB1,以查看在TAB1中已更改的行.我正在寻找一种方法在DB_B中查询,每次刷新后,哪些行已在SNAP_TAB1中刷新.
谢谢!
我认为下面的行适用于预建表:
您可以在表中添加一列SNAP_TAB1。
对于插入,您可以将其放在default sysdate=> 上,对于每个插入,您将获得插入的时间戳。
对于更新,您可以使用触发器。因为该列不涉及物化视图,所以用触发器更新该列不会有问题。
可能更好,通过触发器,您可以使用唯一的 id 存储在该列中,在每次新刷新之前递增。(获取唯一的 id 可能有不同的方法。)
显然,你不能用这个想法来跟踪删除。
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |