就好像一个部门里,每个人都有一个自己的名字。
2、SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,
你就在客户端的连接串里写上service_name。
一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,
是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。
你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。
如果你不指定,默认的是Db_name. Db_domain,也就是global_name。
数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。这些易混淆的名字,你要记住,
他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,
是什么场合。是对数据库,还是对 *** 作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;
对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了。
在oracle的”v$session“视图中存储有这两个字段信息。用sysdba身份登录
比如
conn
/
as
sysdba
匿名管理员登陆后,之后执行下面的sql。
sql:select
b.username,b.sid
from
v$session
b
;
备注:要用有查看视图”v$session“的用户查看需要的sid和username信息。
用sysdba身份登录 比如 conn / as sysdba 匿名管理员登陆执行 select name form V$database或是执行select * from V$database
不过执行第二个显示的内容太多了不好找自己想要的结果
可以先用desc V$database语句查看一下V$database都有什么字段然后选择自己想要的字段进行选择
查看实例名称(sid):
select instance_name from V$instance
一般默认情况下sid与数据库的名称是一样的!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)