ORACLE同步数据(dblink+物化视图)

1.创建dblink

create public database link xirEvalDBlink connect to "XIR_TRD" identified by "xpar" USING '

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 191.168.0.11)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

';

 2.创建物化视图(可二选一)

(一.全量刷新)

CREATE MATERIALIZED VIEW mv_sync_eval
REFRESH COMPLETE
AS
SELECT *
FROM TCB_BOND_EVAL@xirEvalDBlink;

(二.增量刷新)

实体化视图日志是在创建增量物化视图时必需的,因为它们用于跟踪源表中的更改并更新物化视图。如果表TCB_BOND_EVAL没有实体化视图日志,则无法创建增量物化视图。

要解决此问题,您需要在表TCB_BOND_EVAL上启用实体化视图日志。可以使用以下命令来执行此操作:

ALTER TABLE TCB_BOND_EVAL ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

此命令将为表TCB启用实体化视图日志,并允许您创建增量物化视图。

请注意,启用实体化视图日志可能会对系统性能产生一定的影响。因此,在为表启用实体化视图日志之前,请确保已充分评估其影响。

CREATE MATERIALIZED VIEW mv_sync_B
REFRESH FAST ON DEMAND
AS
SELECT * FROM TCB_BOND_EVAL@xirEvalDBlink;

3.创建定时任务作业

BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'sync_xir_to_xspeval',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN
DBMS_MVIEW.REFRESH(''mv_sync_eval'', ''C'');
INSERT INTO TCB_BOND_EVAL SELECT * FROM mv_sync_eval;
END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=1', --每天1点执行
enabled => TRUE);
END;

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ok060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值