你
问
我
答
简介
■ 说明
两台不同的数据库服务器,从一台数据库服务器连接另一台数据库服务器,并可访问特定授权的对象(比如表、视图、存储过程、函数、序列、同义词等等),这就是常见的数据库集成。
■什么情况用数据库集成
网络安全性可控
交互数据量大
对方系统要求使用数据库集成
■ 注意事项
尽量不涉及直接ddl操作
若需要涉及更新插表等此操作,建议封装成函数、或存储过程再授权
避免全量授权操作,针对特定目标对象进行授权,
提供的权限的帐户密码需严格保密,可定时更新同步
集成需要有接口卡或接口文档登记
Dblink
Dblink创建完后,可以直接访问对方数据库,需提供外部系统的授权用户和TNS
常用的DBlink操作如下:
■Dblink 查询
对已创建好的dblink对象进行查询
--DBLINK对象
SELECT owner,
object_name
FROM dba_objects
WHERE object_type = 'DATABASE LINK';
--或者
--DBlink查询
SELECT *
FROM dba_db_links;
■ Dblink 创建
创建DBlink,需外围系统提供TNS与权限账户密码。
--创建dblink
create public database link dblinkname connect to username identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =servicename)
)
)';
■ Dblink 使用
例如已经创建了一个DBLINK 【dblinkname】 可查询对方系统已授权的table_owner下的某个表table_name,可如下:
--使用dblink
select * from table_owner.table_name@dblinkname
■ Dblink 删除
注意:用户有create public database link 或者create database link 权限.
--删除dblink
drop public database link dblinkname;
■ Dblink对象授权控制
提供权限方,针对数据具体对象的授权,常用例子,
--创建用户
CREATE USER 用户名
IDENTIFIED BY 用户密码;
GRANT create session TO 用户名;
ALTER USER mstar_rpt ENABLE EDITIONS;
--授权查询任何表(慎用)
grant select any table to 用户名;
--修改用户密码
alter user 用户名 identified by 用户密码
---授权查询视图
create or replace synonym 用户名.cux_xxx_v for apps.cux_xxx_v;
grant select on 用户名.cux_xxx_v to 用户名;
--授权使用存储过程PKG
grant execute on apps.cux_xxxx_utl to 用户名 with grant option;
--授权增删改查(慎用)
GRANT INSERT,UPDATE,DELETE ON CUX.CUX_FND_INTG_TMP_LINES TO HFMS;
CREATE SYNONYM HFMS.FMS_FND_INTG_TMP_LINES FOR CUX.CUX_FND_INTG_TMP_LINES;
--授权使用序列
GRANT SELECT ON CUX.CUX_FND_INTG_TMP_LINES_S TO HFMS;
CREATE SYNONYM HFMS.FMS_FND_INTG_TMP_LINES_S FOR CUX.CUX_FND_INTG_TMP_LINES_S;
集成接口
数据库集成需注意哪些?
接口卡记录,包括以下几点:
■ 传输方式
异步:
DBLINK接口一般为异步接口,无需实时处理反馈。
同步:
能实时反馈处理状态,例如为通过DBlink调用pkg中的存储过程逻辑,有及时的处理信息反馈
■ 触发条件
触发条件有两种:自动、定时。
自动:
例如,当单据状态变更的时候需第一时间将单据状态推送至对方系统。
定时:
例如,设置定时请求,定时推数或抓数。
■ 传输频率
在做DBLINK接口集成的时候,也需要考虑对象调用的频率。特别是涉及到ddl操作的DBLINK接口,频繁的调用可能会动对系统表空间、磁盘空间、应用IO读写、后台日志等造成压力。
例如,项目上原本有个数据收集计算程序并发请求,并会输出报表。客户有需求将统计收集的数据dblink给另外一个系统使用,同时提供并发请求触发的方法。
集成后外围系统为了及时刷新数据,定时频繁调用该请求方法,造成IO读写占用比较大,且日志与输出文件给磁盘造成一定的压力。
■日传输数据量
统计估算每日会产生的数据量,把控接口程序、系统的稳定性。
■业务字段
业务所需的字段,按照业务场景梳理得出。
集成方式
■ 概念
‘推’式:
指由提供数据的一方将数据主动推送到接收数据一方的数据库接口表中。
‘拉’式:
是指主动获取对方系统的数据库表中的数据,将数据获取后放置接口表,然后进行数据处理。
■ 对比分析
推拉模式特点比较图表分析作者:吴焱辉
审核:董乃浩、姚昆
编辑:张玉