Dblink 的作用和优缺点
作用
我们可以直接在数据库 a 端创建一个 b 的 dblink,前提是需要 tnsname 和连接的用户的名称
和密码,创建好了之后连接上拥有你登上的用户的一切权限。可以 dml 但是不能 ddl。
dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个
通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须
要创建远程数据库的 dblink,通过 dblink 本地数据库可以像访问本地数据库一样访问远程数
据库表中的数据。
比如现在有俩个数据库,都是单独的,如果我们现在登陆当前数据库,想访问另一个数据库,
如果我们建了 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 查询的数据会像数据全部传至本地数据库进行操作,数据传输量很大,占用
带宽严重,可能会导致网络堵塞