> 文章列表 > 大数据-玩转数据-oracle创建dblink及应用

大数据-玩转数据-oracle创建dblink及应用

听说你最近在玩转Oracle数据库,尤其是对大数 liệu的访问和操作感兴趣?今天咱们就来聊聊Oracle中的一个小神器——创建Database Link(DBLINK)!

一、DBLINK到底是个啥?

简单概括,DBLINK就是Oracle数据库中的一个“桥梁”,它让你可以在一个数据库中直接访问另一个数据库里的表、视图等对象,就像是在玩“穿越火线”一样,数据可以从一个库“瞬移”到另一个库。比如,假设你有两个数据库orcl和orcl2,你可以在orcl中创建一个DBLINK,直接访问orcl2里的数据,完全不用担心“跨区”问题!

---

二、为什么需要DBLINK?

很多同学可能会问:为什么不直接用别的工具,非要这么麻烦?其实DBLINK有几个好处:

1. 跨库查询:如果你的两个数据库在不同的服务器上,DBLINK可以让你轻松“越城打车”。
2. 数据备份:比如要把一个表从A库复制到B库,用DBLINK分分钟搞定。
3. 简化开发:对于开发人员来说,DBLINK就像是一个“万能钥匙”,避免了复杂的网络配置。

---

三、创建DBLINK的步骤

要玩转DBLINK,得先检查权限!用WANGYONG用户登录,执行下面的SQL看看是否有权限:

`sql
select * from user_sys_privs where privilege LIKE '%DATABASE LINK%'...
`

如果没有权限,就得找DBA帮忙grant一下:

`sql
grant create public database link to wangyong;
`

接下来,创建DBLINK的语法很简单:

`sql
create public database link TESTLINK2 connect to WANGYONG identified by "123456" using 'ORCL21';
`

或者更详细的配置:

`sql
create public database link TESTLINK2 connect to WANGYONG identified by "123456" using '(DESCRIPTION ...)';
`

---

四、DBLINK的使用场景

DBLINK的最大好处就是“远程操作”。比如:
- 查询远程数据:可以直接用SELECT * FROM USERINFO@TESTLINK2;
- 备份数据:用CREATE TABLE AS SELECT快速复制表。

---

五、注意事项

别以为DBLINK就是“万能的”,使用时要注意:
1. 网络配置:确保目标数据库IP、端口号和监听器都正确。
2. 安全性:DBLINK可能会暴露密码,建议做好权限控制。
3. 性能问题:如果数据量太大,DBLINK可能会慢,这时可以考虑更高效的方式,比如数据泵工具!

---

总之,DBLINK就像是Oracle数据库中的“交通警察”,帮你搞定跨库数据的“交通”。学会了这些,你也可以像“交通指挥官”一样,轻松搞定数据库间的“跨国”任务!

大数据-玩转数据-oracle创建dblink及应用

一、创建DBLINK的应用场景

oracle在进行跨库访问时,可以通过创建dblink实现。

二、创建DBLINK应用场景

在tnsnames.ora中配置两个数据库别名:orcl(用户名:wangyong 密码:1988)、orcl2(用户名:wangyong 密码:123456),在orcl中 创建database link来访问orcl2
大数据-玩转数据-oracle创建dblink及应用

三、赋予权限

在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用wangyong用户登陆orcl):

– 查看wangyong用户是否具备创建database link 权限

select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='WANGYONG';

如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为WANGYONG用户赋予创建权限

– 给wangyong用户授予创建dblink的权限

grant create public database link to wangyong;

此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,WANGYONG这个用户已经具备创建database link的权限

四、创建DBLINK

create public database link TESTLINK2 connect to WANGYONG identified by "123456" USING 'ORCL21'

或:

create public database link TESTLINK2 
connect to  WANGYONG 
identified by "123456"  
using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl2)))
';

五、删除dblink

drop public database link TESTLINK2 ;

六、解释

database link 后面跟DBLINK的名称,可以随便命名,有意义即可;

connect to 后面跟目标数据库的用户名,无需使用引号括起来。

identified by 后面跟目标数据库的密码,需要使用双引号括起来。

HOST = 后面跟 目标数据库的IP。

PORT = 后面跟目标数据库的端口号。

SERVICE_NAME = 后面跟目标数据库的名字。

ps:using后的面语句的格式需要注意,注意其中的空格,单个空格键,错误的空格会导致创建的DBLINK无效。

七、使用DBLINK增删改查:

–将目标数据库表中的数据在当前数据库中进行备份:

CREATE TABLE USERINFO AS SELECT * FROM USERINFO@TESTLINK2 

–查询目标数据库中的USERINFO表数据:

SELECT * FROM USERINFO@TESTLINK2