ITPub博客

首页 > 数据库 > Oracle > oracle 11.2.0.4 db link创建之sid语法一点浅谈之一

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

原创 Oracle 作者:wisdomone1 时间:2017-06-26 16:25:40 0 删除 编辑
测试背景
   在近期的数据库迁移中,进一步梳理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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb qq: 305076427 微博: wisdomone9

注册时间:2008-04-04

  • 博文量
    2164
  • 访问量
    11710995