SID的意思是oracle数据库的唯一标识符是你在建立一个数据库时系统自动赋予的一个初始ID。
SID主要用于在一些DBA *** 作以及与 *** 作系统交互,从 *** 作系统的角度访问实例名,必须通过ORACLE SID,且它在注册表中也是存在的。
扩展资料
如何查询当前用户的SID:
1、按【Win + R】快捷键,在d出的运行对话框中输入【cmd】后按回车键
2、在命令提示符窗口中输入"whoami /user",按回车键
3、然后就查出我当前的用户名和对应的SID
概念
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/16801TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下 *** 作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下 *** 作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题
1、ORA-12541:TNS:没有监听器
原因:没有启动监听器或者监听器损坏。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration
Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删除!)
2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误
原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。
回答于 2020-03-21
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)