oracle 11.2.0.4 db link创建之sid语法一点浅谈之一

测试背景
   在近期的数据库迁移中,进一步梳理DB LINK的定义时,发现其定义存在类似如下语句


(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL 
= TCP)(HOST =xxxxx)(PORT = 1521)))(CONNECT_
DATA =(SID = xx)))                              


我们知道,一般DB LINK的定义是通过SERVICE_NAME实现访问数据库达到其功能的


测试结论
1,DB LINK通过SERVICE_NAME可以创建成功
create database link link_using_sid connect to user_zxy identified by system 
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.39)(PORT = 1521))
    )
    (CONNECT_DATA =
      (service_name = esbdb)
    )
  )';




2,db link也可以通过SID创建成功
create database link link_using_sid connect to user_zxy identified by system 
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.39)(PORT = 1521))
    )
    (CONNECT_DATA =
      (sid = esbdb)
    )
  )';




3,总结一下:
 A,SID好像是数据库旧版本保留下来的
 B,为了使用数据库新版本的一些新功能,比如客户端负载均衡以及应用连接时故障切换,ORACLE建议用SERVICE_NAME替换SID


 C,关于ORACLE为何建议用SERVICE_NAME替换SID,请进一步参考官方手册 Oracle Database Net Services Administrator






测试明细
1,DB LINK使用方与提供方的数据库概况


DB LINK使用方数据库名称         db LINK使用方数据库版本     DB LINK提供方数据库名称   db link提供方数据库版本 
mygirl                           10.0.0.5                esbdb                    10.0.0.39


2,在DB LINK使用方创建基于SID的DB LINK
                             


SQL> show user
USER is "SYS"


create database link link_using_sid connect to user_zxy identified by system 
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.39)(PORT = 1521))
    )
    (CONNECT_DATA =
      (sid = esbdb)
    )
  )';




3,在DB LINK使用方验证DB LINK功能


SQL> select * from t_test@link_using_sid;


         A
----------
         1




4,通过在oracle官方手册  Database Net Services Reference之tnsnames.ora未找到关于SID的进一步定义


继续采用关键字 tns sid查阅到在官方手册
Database Net Services Reference, 11g Release 2 (11.2)


发现如下信息


Connect descriptors that are currently configured with the SID parameter can remain. However, to take advantage of new features, 
such as client load balancing and connect-time failover, Oracle recommends replacing SID with SERVICE_NAME


See Also:
Oracle Database Net Services Administrator's Guide for additional information about database identification by SERVICE_NAME rather than SID




总结一下:
 A,SID好像是数据库旧版本保留下来的
 B,为了使用数据库新版本的一些新功能,比如客户端负载均衡以及应用连接时故障切换,ORACLE建议用SERVICE_NAME替换SID


 C,关于ORACLE为何建议用SERVICE_NAME替换SID,请进一步参考官方手册 Oracle Database Net Services Administrator




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-2141269/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-2141269/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值