oracle 02085,OracleDBLink创建和维护以及ORA-02085解决办法

今天业务需要,要跨库查询Oracle数据,于是想到了dblink, 下面一一细说,Oracle DBLink。

今天业务需要,要跨库查询Oracle数据,于是想到了dblink, 下面一一细说,,Oracle DBLink。

首先Oracle DBLink 分成 如下三种:

创建dblink:

一:创建 public database link 的实例:

create public database link todb151

connect to hezi identified by manager

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.4.151)(PORT = 18000))

)

(CONNECT_DATA =

(SERVICE_NAME = newzqdb)

)

)';

应该注意的是:

1,上面的hezi 这个用户,是你要连接的远程数据库中的用户(也就是 4.151上的)。

2,SQL> select * from pd_zh_cn.tb_goods@todb151; 通过todb151来跨库查询4.151,会拥有hezi的查询权限。只要本地的用户拥有数据库访问权限即可,所以尽量不要建public数据库连接,或者不要用大权限用户hezi来创建,以免让本地小权限的用户,去远程4.151查看到了不该看到的信息。

3.using 后面的引号中间的内容实际上就有 本地tnsname.ora 中的相应数据库连接信息。所以这里也可以直接改写成:

create public database link todb151

connect to hezi identified by manager

using 'db151' ;

前提是本地tnsname.ora 文件中有:

db151 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.151)(PORT = 18000))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = newzqdb)

)

)

其中SERVICE_NAME 一般是下面红字部分,

SQL> show parameter service_names

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

service_names string newzqdb

还要注意要和监听的服务名一致,因为这个远程是要借助监听的。这里明确的告诉大家,配置静态监听注册时,需要输入的全局数据库名(GLOBAL_DBNAME)输入什么都可以,只要保证listerner.ora中的GLOBAL_DBNAME和tnsnames.ora中的SERVICE_NAME保持一致,所以如果是静态监听,那么在创建dblink时应该也应该符合,service_name =listerner.ora中的GLOBAL_DBNAME ,(创建dblink时不一定非得一样)

[oracle@rac1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 01-JUL-2015 21:39:53

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=newzq.com.cn)(PORT=18000)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 01-JUL-2015 20:18:41

Uptime 0 days 1 hr. 21 min. 12 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/oracle/products/database/11.2.0.1/network/admin/listener.ora

Listener Log File /u01/oracle/products/diag/tnslsnr/newzq/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=newzq.com.cn)(PORT=18000)))

Services Summary...

Service "newzqdb" has 1 instance(s).

Instance "newzqdb", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

二:创建 private dblink 实例:注意没有private字眼。

create database link dblink

connect to liuwenhe identified by liuwenhe

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.151)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = newzqdb)

)

)';

管理dblink:

在当前数据库下查看所有的DBLINK的方法:

1. select * from dba_db_links;

删除当前数据库下的一个指定的DBLINK的方法:

1. 删除public link

drop public database link dblink;

2. 删除private link

drop database link dblink;

ORA-02085 解决办法 : 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值