oracle dblink使用

来源:互联网 发布:linux工程师经验之谈 编辑:程序博客网 时间:2024/05/20 16:14

oracle dblink使用  

2010-06-30 16:11:07|  分类: oracle补充|举报|字号 订阅

dblink的主要作用是两个数据库间的数据访问

(1)global_name查看

select * from global_name;

(2)查看本地的global_names参数

 show parameter global_names
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     FALSE
当该参数的值为true时在本地建立的dblink的名称必须和远程的global_name一致才行

(3)查看远程的数据库是否支持高级复制

 select * from v$option where parameter='Advanced replication';

如果返回的值为true,那么就是支持,否则就是不支持,应该在两个数据库中都是检查是否支持才行。

(4)创建dblink

create database link dbl_test connect to test identified by oracle using 'lwl';

dbl_test:dblink的名字

test:要连接的数据库的用户名

oracle:要连接的数据库的密码

lwl:本地建立的连接到远程数据库的服务名

SQL> select * from dual@dbl_test;

如果返回结果如下就说明建立成功了

DU
--
X

(5)在被内地查看已建立的远程连接名

SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';

OWNER
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------

SCOTT
DBL_TEST
(6)使用

 select * from r_area@dbl_test where R_AREA_NAME='郑州';
(7)修改本地的global_names

SQL> alter system set global_names=TRUE;

System altered.

SQL> show parameter global_names

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     TRUE

SQL> select * from r_area@dbl_test where R_AREA_NAME='郑州'
select * from r_area@dbl_test where R_AREA_NAME='郑州'
                     *
ERROR at line 1:
ORA-02085: database link DBL_TEST connects to ORCL

在TRUE的状态下建立dblink

SQL> create database link a connect to ndas identified by ndas using 'ndas';

Database link created.

SQL> create database link orcl connect to ndas identified by ndas using 'ndas';
create database link orcl connect to ndas identified by ndas using 'ndas'
                          *
ERROR at line 1:
ORA-02082: a loopback database link must have a connection qualifier

名字相同时竟然出错了,貌似和前面的说法相悖,有待研究
(8)对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用:

CREATE SYNONYM worker_syn FOR worker@zrhs_link;

(9

对于另外一种情况,所要访问的表不在数据库链接中指定的远程帐户下,但该帐户有访问该表的权限,那么我们在表名前要加上该表的用户名:

SELECT * FROM camel.worker@zrhs_link ;

)

0 0
原创粉丝点击