可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。
1.SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,
就好像一个部门里,每个人都有一个自己的名字。
2.SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,
你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,
看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。

一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,
是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。
你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。
如果你不指定,默认的是Db_name. Db_domain,也就是global_name。
数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。这些易混淆的名字,你要记住,
他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,
是什么场合。是对数据库,还是对操作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;
对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了。

最新文章

  1. 设置session,cookies
  2. YII2如何修改默认控制器/方法
  3. Windows桌面共享中一些常见的抓屏技术
  4. WinForm------TreeList修改节点图标和按钮样式
  5. Request.Form()的使用
  6. Java数据库ResultSet转json实现
  7. oracle计算年龄
  8. ip_conntrack 实现
  9. [Python][MachineLeaning]Python Scikit-learn学习笔记1-Datasets&Estimators
  10. Android 开发笔记 “Sqlite数据库删除”
  11. UITextField输入限制/小数/首位等
  12. Resnet论文翻译
  13. windows之自动化在虚拟机部署操作系统并自带python环境
  14. 《Java编程思想第四版》附录 C Java 编程规则
  15. Idea xml 粘贴文本保持原有格式
  16. FOR XML PATH 可以将查询结果根据行输出成XML格式
  17. tcp echo server libuv
  18. Linux 下移植QT(1)---tslib 1.4.0移植
  19. GITHUB使用及入门总结
  20. 理解Java动态代理(1)—找我还钱?我出钱要你的命

热门文章

  1. 《小团团团队》【Alpha】Scrum Meeting 3
  2. luogu1262 间谍网络
  3. [POJ 1007] DNA Sorting C++解题
  4. Flash中国地图 开放源码
  5. Selenium WebDriver-通过断言页面是否存在某些关键字来确定页面按照预期加载
  6. uiautomator 一个简单脚本创建流程
  7. acmer之ubuntu下安装Eclipse
  8. [转]查看Linux版本信息
  9. 将模型储存到本地-FastCoder
  10. Etcd和ZooKeeper,究竟谁在watch的功能表现更好?