当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink.
创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:
select * from user_sys_privs t
where t.privilege like upper('%link%');
1 SYS CREATE DATABASE LINK NO
2 SYS DROP PUBLIC DATABASE LINK NO
3 SYS CREATE PUBLIC DATABASE LINK NO
可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),DROP PUBLIC DATABASE LINK。
在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
然后以scott用户登录本地数据库
1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。
create public database link
dblink_name connect to scott identified by tiger using 'bylw';
其中dblink_name是你创建的dblink名字,bylw是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示
select * from scott.tb_test@dblink_name;
2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,
create database link to_test
connect to scott identified by tiger
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bylw)
)
)';
第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:
bylw =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bylw)
)
)
分享到:
相关推荐
Oracle DB优化总结
Oracle数据库如何创建Database Link呢?本文我们主要就介绍一下这部分内容,Oracle数据库创建Database Link有两种方式,一种是通过菜单,一种是通过SQL
羽Oracle DB Link批量转移数据.pdf
在两台oracle数据库之间测试,数据交换
ORACLE通过ODBC数据源链接DB2
db link的查看创建与删除,db link的查看创建与删除
Oracle之dblink的配置 Oracle之dblink的配置 Oracle之dblink的配置 Oracle之dblink的配置
本文档是在开发oracle过程中总结出来的,希望对想了解oracle db link的人有帮助
这套技术,如果你能用心掌握,足可以帮助你在任何一家互联网大公司站稳脚跟!
su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp" 累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=...
说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...
ORACLE透明网关for MSSQL的产品名称为Oracle Transparent Gateway for SQL Server。使用该产品后,对于Oracle数据库而言,屏蔽了...通过透明网关在出口退税审核系统和综合管理系统建立DB Link,可实现数据的定时抽取...
Report Link Designer 620 Reporting 623 Toad Control Files 623 Dependencies 624 ER Diagrams 624 Explain Plans 631 Code Road Map 636 HTML Schema Doc Generator 641 Master/Detail Browser 643 Reports ...
ORACLE透明网关for MSSQL的产品名称为Oracle Transparent Gateway for SQL Server。使用该产品后,对于Oracle数据库而言,屏蔽了...通过透明网关在出口退税审核系统和综合管理系统建立DB Link,可实现数据的定时抽取...
docker run -it --rm --volumes-from ${DB_CONTAINER_NAME} --link ${DB_CONTAINER_NAME}:oracle-database quay.io/maksymbilenko/docker-oracle-apex:5.1.2 install #In that case build woud be with default ...
DB-link:oralce与mysql数据库的链接,共享数据数据
class Oracle_db{ public $link; public function __construct(){ $this->link=$this->connect(); if(!$this->link){ echo "连接失败"; exit; } } public function connect(){ return oci_connect('demo',...
本人五年的SQL开发经验和存储过程开发样例、以及SQL优化要点,数据库DB_LINK,数据库审计等,绝对物超所值,欢迎大家下载。
可以在服务器端,也可以在客户端建立,但必须注意,两台服务器之间 数据库必须可以互访,必须各有各自的别名数据库 18、查看数据库链路 select * from all_db_links; select * from user_db_links; 查询 select...
现在的解决方法 小表:采用了snapshot的方法 大表:KHTKHXL0和KHTXLJG0 采用了通过dblink插入...db_link_xx分别是不同的服务器,每个服务器的连接有2M带宽的限制。 目前串行运行 所有的表没有进行Statistics Collection