大数据-玩转数据-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数据库中的“交通警察”,帮你搞定跨库数据的“交通”。学会了这些,你也可以像“交通指挥官”一样,轻松搞定数据库间的“跨国”任务!
一、创建DBLINK的应用场景
oracle在进行跨库访问时,可以通过创建dblink实现。
二、创建DBLINK应用场景
在tnsnames.ora中配置两个数据库别名:orcl(用户名:wangyong 密码:1988)、orcl2(用户名:wangyong 密码:123456),在orcl中 创建database link来访问orcl2
三、赋予权限
在创建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