[日期:2016-1-7 11:41:59] |
作者:xuchao |
[字体:大 中 小] |
通过创建database link实现Oracle跨数据库查询的方法
在Oracle本地数据库端执行赋权dbuser帐号
SQL> grant create database link to dbuser;
配置本地数据库服务器的tnsnames.ora文件
$ vi $ORACLE_HOME/network/admin/tnsnames.ora
增加需要远程连接服务器的连接配置,如:
ORCL_REMOTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradb )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
登录到本地数据库,创建database link
执行如下查询语句,其中ORCL_LINK为database link名(可自定义),ORCL_REMOTE为先前在tnsnames.ora中定义的连接名,
dbuser为用户名,password为密码
create database link ORCL_LINK connect to dbuser identified by password using 'ORCL_REMOTE';
查询创建database link的2中方式:
1)、执行SQL语句。
select * from user_db_links; --用户 DB Link
select * from dba_db_links; --dba DB Link
select * from v$dblink; --当前DB Link
2)、在PL/SQL中,在左边浏览器中点击database links就可以看到数据库链路了。
使用链接的数据库
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@database link名”,如
select * from table_name@ORCL_LINK
其它:
删除database link(本例中是ORCL_LINK)
SQL> Drop database link ORCL_LINK;
1.查看db link连接的详情信息
本地db link:select t.* from user_db_links t;
所有db link:select t.* from dba_db_links t;(dba权限)
二、db link的查看创建与删除
2016-1-7 11:50:08 作者:xuchao
db link的查看创建与删除
1.查看dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';
或者
select * from dba_db_links;
2.创建dblink
前提:
创建dblink的用户有对应的数据库权限
create public database link 或者create database link
可以使用
[sql]
grant create public database link,create database link to myAccount;
来授权.
create public database link dblinkname connect to username identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =servicename)
)
)';
如果在create之后不加public,则创建的dblink就不是公共的,就只有创建者可以使用了.
补充:如何确定数据库的servicename:
1.在sqlplus中使用
[sql]
show parameter[s] service_names;
注意parameter和parameters都可以
2.使用
[sql]
select name,value from v$parameter where name='service_names'
3.使用db link
例如,在本机数据库上创建了一个scott_rmthost的public dblink(使用远程主机的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@scott_rmthot即可以将远程数据库上的scott用户下的emp表中的数据获取到.
也可以在本地建一个同义词来指向scott.emp@scott_rmthost,这样取值就方便多了.4.删除
注意:用户有create public database link 或者create database link 权限.
drop public database link dblinkname;
2016-1-7 14:10:51 author:xuchao
主要介绍了一下Oracle数据库创建Database Link的两种方式,菜单方式和SQL语句的方式,希望能够对您有所帮助。
Oracle数据库如何创建Database Link呢?本文我们主要就介绍一下这部分内容,Oracle数据库创建Database Link有两种方式,一种是通过菜单,一种是通过SQL。
创建一个dblink,命名为dblink_name,从A数据库连到B数据库,B数据库的IP为192.168.1.73,端口为1521,实例名为oracle,登录名为test,密码为test。
① 菜单方式:
打开plsql,点击【File】-【New】-【Database link】,打开如下图所示窗口
填好各项信息后,点击【Apply】即可完成Database Link的创建。
② SQL方式
1. -- Drop existing database link
2. drop public database link dblink_name;
4. -- Create database link
5. create public database link dblink_name
6. connect to SYSTEM
7. using '192.168.1.73:1521/oracle';