找到oracle安装盘,查找如下路径下的文件
成都创新互联-专业网站定制、快速模板网站建设、高性价比南岔网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式南岔网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖南岔地区。费用合理售后完善,10年实体公司更值得信赖。
oracle\product\10.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,打开,即可查看到如下的类似文字,orcl就是SID:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl)
)
)
1
在oracle的安装目录下,如D:\oracle\product\10.2.0\db_1\dbs,看文件名如SPFILEORCL.ORA,那么就是orcl,也就是说文件名字是 "SPFILE******.ORA ",那种的 "**** "就是SID
2
D:\oracle\product\10.2.0\oradata\SID文件夹...
或D:\oracle\product\10.2.0\db_1\dbs\SPFILESID名称.ORA
3
select instance_name from v$instance;
Unix下可以这样看:
$ ps -ef|grep ora_
进程的最后几个字母就是sid
SID是System IDentifier的缩写,而ORACLE_SID就是Oracle System Identifier的缩写,在Oracle系统中,ORACLE_SID以环境变量的形式出现,在特定版本的Oracle软件安装(也就是ORACLE_HOME)下,当Oracle实例启动时,操作系统上fork的进程必须通过这个SID将实例与其他实例区分开来,这就是SID的作用。
Oracle的sid在不同的系统环境下,查看方式不相同,方法分别如下:
1、windows 下查看注册表
开始 输入regedit 查看
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\ORACLE_SID就是
2、linux或者unix下可以
echo $ORACLE_SID
注意:ORACLE_SID要大写
3、在sql命令下可以查看
连接后查询:
SQL select instance_name from v$instance;
1、检查原来的数据库实例名
$ echo $ORACLE_SID
orcl
$ sqlplus / as sysdba
select instance from v$thread;
INSTANCE
orcl
2、关闭数据库
shutdown immediate;
exit;
3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改为exoaidc
$ vi /home/oracle/.bash_profile
export ORACLE_SID=exoaidc
$ source /home/oracle/.bash_profile
4、修改/etc/oratab文件,将sid名由orcl修改为linux
$ vi /etc/oratab
exoa:/u01/app/oracle/11.2/db_1:Y
5、进入到$ORACLE_HOME/dbs目录
将所有文件名中包含原来的sid的修改为对应的新sid的
$ cd $ORACLE_HOME/dbs
$ mv hc_zf.dat hc_exoa.dat
$ mv lkZF lkexoa
$ mv orapwzf orapwexoa
$ mv spfilezf.ora spfileexoa.ora
6、重建口令文件
因为口令文件改名后不能在新实例中使用,所以重建
$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123456 entries=5 force=y
7、启动数据库
$ sqlplus / as sysdba
startup
8、检查数据库实例名
通过如下语句检查数据库实例名,发现实例名已经由orcl变成exoa
select instance from v$thread;
INSTANCE
exoa
接下来要修改监听器,因为修改了sid,但是监听器此时还是配置原来的orcl的sid
修改$ORACLE_HOME\network\admin\listener.ora文件
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ORCL)
)
)
把ORCL改成exoa即可