共计 996 个字符,预计需要花费 3 分钟才能阅读完成。
过度使用 DBLINK 做系统集成会带来很多问题,问题主要由以下几点:
1. 大量消耗数据库资源;
本地系统每通过 DBLINK 链接远端系统一次,都会生成一个本地 session,如本地 session 不退出或者手动释放,只有通过 session 超时才能自动释放,会浪费大量的系统资源
2. 容易出现数据库 BUG;
大量使用 DBLINK,本地系统极易出现 ORA-02068、ORA-03113、ORA-02080、ORA-02054、ORA-02050 等 Oracle 错误,这种错误大部分会影响当前 session 正在处理的业务
3. 性能较差;
由于使用 DBLINK,本地系统在获取数据时,每次链接都会对远端数据库进行一次全表扫描,且所有数据都会传输回本地数据库内,导致性能降低并且严重浪费当前系统资源。尤其出现一条 sql 语句从两个 DBLINK 中取数,更被称之为“性能杀手”,尤其是 OLTP 型数据库
4. 数据传输不稳定,占用带宽严重,容易产生丢包风险;
DBLINK 本身没有数据存储、监控等功能,是通过网络中的数据库进行传输时,如果在传输过程中出现数据丢包现象,DBLINK 本身不会发现,只用当业务进行完毕才能发现丢包现象,这样会影响当前正在处理的业务;另外,通过 DBLINK 查询的数据会像数据全部传至本地数据库进行操作,数据传输量很大,占用带宽严重,可能会导致网络堵塞
5. Oracle 数据功能受限
DBLINK 本身不支持对 oracle LOB 大对象的操作,在使用 PROCDURE 时,使用 COMMIT 等操作时可能会出现错误;
6. 可扩展性较差
如果多系统之间 使用 DBLINK 进行传输,每增加一个系统,都会增加一个或多个 DBLINK 链接或者修改对应的接口程序,如果修改其中一个接口,需要修改所有关联系统内的接口程序;
7. 维护性差、安全性较低
通过 DBLINK 进行链接需要将远端数据库用户名、密码、IP 地址存在本地数据库,如远端进行密码修改、IP 地址变更,本地数据库也需要修改,如果系统较多,每个系统都需要同时修改。切本地数据库管理员能够看到远端数据的密码、IP 地址,对系统安全产生影响。
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-07/133609.htm