SID是在一些DBA *** 作以及与 *** 作系统交互,从 *** 作系统的角度访问实例名,必须通过ORACLE_SID( *** 作系统的环境变量),且它在注册表中也是存在的。而数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
我们来先分析这个重要的SID。第一项S表示该字符串是SID,第二项是SID的版本号,对于2000来说,这个就是1,然后是标志符的颁发机构,对于2000内的帐户,颁发机构就是NT,值是5。然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和组。
嘿嘿那个兄弟的回答实在是理论上正确,但是太费解了。其实答案很简单的。在Orale里面
SID正确的理解是instance的名字,实质上和database的术语是不一样的。
服务是监听中客户端可以看到的名字。
没有什么特殊的情况下,服务名=SID。问题是有可能不一样的,有两种情况
情况1:数据库SID是一个,但是希望能有多个服务名,这个是为了多程序使用的,直接可以利用Oracle的某一个package追加一个服务的名字,这样,一个instance,就可以提供多个连接使用的服务名字。
情况2:数据库SID是多个,但是服务可能是一个,这个就是RAC结构,多物理服务器提供一个服务给程序的样子,只要有一个服务器OK,服务就可以不中断。
其实没必要现在就理解透彻,入门阶段认为是一样的即可。等明白了rac结构原理就明白了。
根本到底,就是RAC需要,前者不重要。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)