嘿嘿 那个兄弟的回答实在是理论上正确,但是太费解了。其实答案很简单的。在Orale里面
SID正确的理解是instance的名字,实质上和database的术语是不一样的。
服务是监听中客户端可以看到的名字。
没有什么特殊的情况下,服务名=SID。问题是有可能不一样的,有两种情况
情况1:数据库SID是一个,但是希望能有多个服务名,这个是为了多程序使用的,直接可以利用Oracle的某一个package追加一个服务的名字,这样,一个instance,就可以提供多个连接使用的服务名字。
情况2:数据库SID是多个,但是服务可能是一个,这个就是RAC结构,多物理服务器提供一个服务给程序的样子,只要有一个服务器OK,服务就可以不中断。
其实没必要现在就理解透彻,入门阶段认为是一样的即可。等明白了rac结构原理就明白了。
根本到底,就是RAC需要,前者不重要。
楼主都没设置环境变量,估计楼上的方法都不能用
你的机器是Windows的话,打开服务面板,找OracleServiceXXXX,后面的XXXX就是你的SID
或者打开安装目录 $ORACLE_HOME下的database目录或者dbs目录,里面有spfileXXXXora
概念
SID 数据库实例名
SQL> show parameter instance
DB_NAME 数据库名 可以用DBNEWID (nid)命令更改DB_NAME
SQL> show parameter db_name
DBID 数据库建立时创建的内部数字 用于区分不同数据库 RMAN会用该数字来区分数据库 当数据库都是正常创建时 DBID是不一样的 如果用复制的方法复制数据库 它们的DBID就会一样 可以用DBNEWID (nid)命令更改DBID
SQL> select dbid from v$database
下面开始更改SID 本例中 原SID名为oldsid 更改为newsid
关闭数据库
SQL > create pfile from spfile; 生成initoldsid ora 文件 后续 *** 作需要用到
SQL > shutdown immediate;
编辑环境变量
# vi /home/oracle/ bash_profile
将其中的
export ORACLE_SID=oldsid 更改为
export ORACLE_SID=newsid
为使环境变量生效 以oracle用户重新登录
重命名参数文件
# cd $ORACLE_HOME/dbs
# mv initoldsid ora initnewsid ora
参数文件内容无需更改 如果本数据库是从另一台oracle服务器复制过来的 那需要将参数文件中的路径和内存等配置进行修改 这不属于本次任务
创建口令文件
orapwd file=$ORACLE_HOME/dbs/orapwnewsid password=oracle
至此 SID已经更改完成 数据库可以正常启动 以下 *** 作是额外部分
更改其他相关配置
更改listener ora
vi $ORACLE_HOME/neork/admin/listener ora 若其中配置了SID_NAME=OLDSID 则需要更改为NEWSID 然后重启监听 # lsnctl restart
更改tnsnames ora
lishixinzhi/Article/program/Oracle/201311/16801
可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。
1SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,
就好像一个部门里,每个人都有一个自己的名字。
2SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,
你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,
看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。
一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,
是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。
你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。
如果你不指定,默认的是Db_name Db_domain,也就是global_name。
数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。这些易混淆的名字,你要记住,
他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,
是什么场合。是对数据库,还是对 *** 作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;
对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了。
以上就是关于ORACLE中网络服务名和SID的区别全部的内容,包括:ORACLE中网络服务名和SID的区别、在oracle 11g 不能登录的情况下,怎么才能知道自己database_SID急急啊啊!!!、更改Oracle数据库的SID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)