业务需要EIP上面展现BW的数据,因此就需要从BW上面进行数据的抽取;
前提条件:EIP的应用直接连接BW数据库,根据公司的业务需求使用dblink来连接使用;
针对该需求有三个方案:
a) 通过DataGuard复制一个一模一样的数据库,然后从standby数据库进行数据的抽取;
b) 配置goldengate同步需要的表到EIP数据库;
c) 在EIP数据库通过dblink连接到BW数据库,然后创建物化视图进行定期的同步;
1.1 DBlink的配置
在目标端数据库创建相应的DBLINK
脚本:
CREATE DATABASE LINK LINK_NAME(dblink名称)
CONNECT TO "username" identified by "password" (username和password为远程数据库的名称)
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sales.company.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sales)
)
)';
1.2
a) 在BW里面按照类别创建相应的schema,然后根据要求在这些schema下面创建相应的视图;
b) 根据相应的业务需求和用户在EIP数据库创建相应的dblink;
c) 在EIP数据库通过dblink连接到BW数据库,并创建相应的MW(物化视图);
d) 设置物化视图的同步策略;
1.3 流程管理
需要在流程里面创建相应的用户和角色管理流程,用于开发提交流程进行权限的授权;
a)审批流程:
b)流程表单:
1.4 客户端通过dblink连接到源端
a) 连接的语法;
例:select * from ogg.a1@yuan;
用户登录到target数据库,然后通过dblink为yuan的链接,连接到数据库source;
b) 连接的用户要求;
目标端使用dblink的用户需要有使用dblink的权限,如果该dblink是Private的话,只有创建他的用户才能使用,如果是public的话,所有的用户都能使用;
c) 通过dblink连接时,可以对源数据进行删除,其他修改可以通过存储过程来解决;
d) ALTER SESSION CLOSE database link yuan;关闭dblink连接
1.5 物化视图同步的策略
1、刷新的物化视图的策略:
a) 用FORCE方式:Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷新,否则进行完全刷新;
b) Complete方式:全部刷新,相当于重新执行一次创建视图的查询语句。
c) Fast方式:增量刷新,假设前一次刷新的时间为t1,那么使用fast模式刷新物化视图时,只向视图中添加t1到当前时间段内,主表变化过的数据.为了记录这种变化,建立增量刷新物化视图还需要一个物化视图日志表;
d) Never方式:从不刷新,如果刷新后会报错;
2、刷新物化视图的时间策略:
a) on demand:在用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新)
b) on commit:当主表中有数据提交的时候,立即刷新MV中的数据;
c) start ……:从指定的时间开始,每隔一段时间(由next指定)就刷新一次;