oracle dblink

简介:
DBLink:主要是针对两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。
 
场景:数据库服务器分别为25和33,其中33为远程服务器,即我当前登录25,需要操作33的数据库。
 
----创建dblink
create public database link remote
connect to test identified by test
using 'remote33'
dblink 的名称为remote
test为登录33的用户名和密码
remote33为在25机器上tnsnames.ora中配置的到33上的网络服务名,如下:
 
remote33 =
(DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.33)(PORT = 1521))
)
(CONNECT_DATA =
  (SERVICE_NAME = orcl)
)
)
所以首先要到目标数据库服务器25上配置tnsnames.ora

----还可以使用缺省登录方式创建,即不指定远程数据库的用户名和密码:
create public database link remote
using 'remote33'
在不指定用户名和口令的情况下,ORACLE使用当前的用户名和口令登录到远程数据库。假如我们通过pl/sql developer以test用户登录执行上述命令,然后再以 bjaic 用户登录到25上,执行 select * from  table@remote,则会报错:
ORA-00924:表或视图不存在;
ORA-02063:紧接着line(起自remote)
此时所要访问的表  table 不在数据库链接中指定的远程帐户bjaic下,但该帐户有访问该表的权限,那么我们在表名前要加上该表的用户名test。即:select * from  test. table @remote;
 
----public & private
public 对所有的数据库用户开放访问权。private  只对建立它的用户授权。公用数据库链接更为有用,因为它使你不必为每一个潜在用户创建单独的链接。即使是public,用户名仍旧固定,所有使用这个 dblink 的用户都作为用户 test 连接到远程数据库。

----如果 ssh  框架开发过程中要用到另一个 oracle 数据库中的表,但是 hibernate 不能直接对 dblink 中的表进行映射导致无法使用 hibernate 创建 pojo 类,解决的办法是在本地数据库创建 dblink 数据库表的 synonymous,再利用 hibernate对此synonymous 进行映射就可以建立映射关系了,需要注意的是创建的 synonymous 不要跟本地表同名这样 hibernate 将会映射本地表了。


本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/116958,如需转载请自行联系原作者
相关文章
|
Oracle 关系型数据库 MySQL
Oracle通过DBLink连接MySQL
Oracle通过创建DBLink连接MySQL,查看修改MySQL表数据
8291 0
|
13天前
|
存储 Oracle 关系型数据库
百度搜索:蓝易云【oracle dblink mysql查询text无法显示问题】
通过使用 `DBMS_HS_PASSTHROUGH` 包执行 MySQL 查询并返回 CLOB 类型结果,可以解决 Oracle 数据库中无法直接显示 MySQL TEXT 类型数据的问题。
49 0
|
SQL Oracle 关系型数据库
创建Oracle DBLink及同义词方法
有时业务经常需要跨库执行SQL语句,就需要创建两个数据库之间的链接对象或通过同义词来实现。
505 0
|
SQL Oracle 关系型数据库
Oracle dblink的连接模式的关系测试总结
Oracle dblink的连接模式的关系测试总结这篇主要介绍一下database link由于连接数据库的方式不同遇到的一些问题,我们知道连接ORACLE服务器的模式一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。
1852 0
|
关系型数据库 数据库 数据安全/隐私保护
Oracle跨服务器访问使用dblink
当要夸服务器访问数据库时,我们可以使用dblink建立连接服务器间的通道,本地创建了远程数据库的dblink后,访问远程服务器的库就像操作一个库一样了。 如果需要创建全局 DBLink,首先要确定用户有创建 dblink 的权限: 使用此语句查看:select * from user_sys_pr...
1811 0
|
Oracle 网络协议 关系型数据库
oracle通过dblink连接mysql配置详解(全Windows下)
oracle通过dblink连接mysql配置详解(全Windows下)http://www.bieryun.com/3394.html 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也没花多长时间,就是刚开始走了一.
2799 0
|
Oracle 关系型数据库 数据库