创建oracle数据库连接(database link)的两种方法

news/2024/5/17 19:18:58 标签: 数据库, database, oracle, service, list, tcp

oracle 数据库连接就像你在程序中建立一个到数据库的连接一样。

如果数据库不在本地主机,必须在$ORACLE_HOME/network/admin/tnsnames.ora中配置相应的tns,然后程序才能通过配置好的tns访问数据库,但是java通过thin方式访问oracle例外,可以采用在本地配置好的tns别名,也可以采用tns全解析名,采用别名等号后的全描述符;如下:

TESTCZ = 
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = TESTCZ)
  )
 )

 

举例。

现在有两个数据库

adb,用户名和密码分别是adb/adb,在本地主机配置的tns名字是tns_a,所在主机a;

bdb,用户名和密码分别是bdb/bdb,在本地主机配置的tns名字是tns_b,所在主机b;

现在需要在adb上面建一个连接到bdb数据库的dblink;

方法1:

在a主机上编辑tnsnames.ora文件配置bdb数据库的tns别名tns_b,如下:

tns_b = 
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = dbtestb)
  )
 )

然后创建数据库连接,如下:

create database link

connect to bdb identified by identified by bdb

using 'tns_b';

 

方法2:

如果没有权限修改tnsnames.ora,那么就没有办法建立到adb数据库的tns别名,那么就只能采用在创建dblink的时候,全写解析符号。创建dblink的方法如下:

create database link

connect to bdb identified by identified by bdb

using '(DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = dbtestb)
  )
 )';

 

创建好tns别名之后,可以采用sqlplus username/password@tnsname来测试创建的tns别名是否正确。

 

我在生产系统中创建的一个dblink示例:

create database link NEW_DBLINK
  connect to AIIPS identified by "1qaz2wsx"
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.193.12)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = zjpub)
    )
  )';

 

*****************************************************************

http://www.diybl.com/course/7_databases/oracle/oraclexl/20081127/152647.html

*****************************************************************


http://www.niftyadmin.cn/n/1140878.html

相关文章

perl bless

**********本文为转载,作者写的通俗易懂,很是受教,非常感谢您的分享********************** 程序说明 bless有两个参数:对象的引用、类的名称。类的名称是一个字符串,代表了类的类型信息,这是理解bless的关…

oracle数据库时常用的操作命令

1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/managerora9i;3、SQL>connect / as sysdba ;(as sysoper)或connect inte…

perl如何对oracle数据进行增删改查?

关注中,http://topic.csdn.net/t/20040802/11/3233520.html

unix 下shell编程(一)

关键字: shell*Shell是什么? 任何发明都具有供用户使用的界面。UNIX供用户使用的界面就是Shell(DOS的command熟悉吧,但UNIX的要强大的多)。 Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。 为了不同的需要,UNIX提供了不同的Shell。现在的…

unix 下shell编程(三)

关键字: shellUntil语句 While语句中,只要某条件为真,则重复执行循环代码,until语句正好同while相反,该语句使循环代码重复执行,直到遇到某一条件为真才停止。 Until语句的结构如下: until command do comm…

unix 下shell编程(二)

关键字: shell3>在Shell中使用数据变量 用户可以在Shell中使用数据变量,例如ba.sh程序: cd/usr/icewalk ls|cpio -o > /dev/fd0 该程序中要备份的目录为一常量,即该程序只能用来备份一个目录。若在该程序中使用变量,则会使其更通用: wo…

LWP 与 WEB 的基本使用

简介 LWP (“Library for WWW in Perl” 的缩写) 是一个由多个模块组成,用来获取网络数据的的模块组。 和很多 Perl 的模块一样。每一个 LWP 模块都自带详细的文档,做为对这个模块的完整介绍。可是面对 LWP 里的众多模块,有时候即使是完成最简…

什么是冒烟测试?

#这是本人认为关于冒烟测试比较好的概念解释了 关于冒烟测试,应该是微软首先提出来的一个概念,和微软一直提倡的每日build有很密切的联系。具体说,冒烟测试就是在每日build建立后,对 系统的基本功能进行简单的测试。这…