把数据从工厂拿到公司,需要在工厂的表上建物化视图日志,在公司创建dblink和物化视图
1、在工厂为表创建物化视图日志,要求这些表需要有主键
Create Materialized View Log
On 表名
Tablespace Users
With Primary Key
Excluding New Values;
2、在公司创建dblink
create database link dblink名
connect to 工厂数据库用户名 identified by 工厂数据库密码
using '12.345.67.890:1521/ORCL';----工厂数据库地址
3、在公司创建物化视图
Create Materialized View 物化视图名
Build Immediate ----创建之后立即导入数据
Using Index
Refresh Force ----强制刷新
Next sysdate+1800/86400 ----刷新间隔时间,1800秒
As
Select *
From 工厂表名@dblink名;
刷新的模式有两种:ON DEMAND和ON COMMIT。
ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新。
ON COMMIT指出物化视图在对基表的DML操作提交的同时进行刷新。
刷新的方法有四种:FAST、COMPLETE、FORCE和NEVER。
FAST刷新采用增量刷新,只刷新自上次刷新以后进行的修改。
COMPLETE刷新对整个物化视图进行完全的刷新。
如果选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。
NEVER指物化视图不进行任何刷新。
默认值是FORCE/ON DEMAND;
如果自动刷新没有执行的话:
1、手动刷新的方式:在plsql的命令窗口执行 exec dbms_mview.refresh('物化视图名');
-------------------------------------------------------------------------------------------------------------------
declare
job number;
BEGIN
----每10秒刷新一次 (如果时间到了 没调用完,下次调用同时进行?)
sys.dbms_job.submit(job,'存储过程名;',sysdate,'sysdate+1/24/60/6');
end;
job_queue_process
表示oracle能够并发的job的数量,当job_queue_process
值为0时表示全部停止oracle的job。