linux oracle中的sid怎么修改

如题所述

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即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-14
SID 不能修改,创建好了就得叫这个名字
第2个回答  2017-09-14
id是不能修改的吧,可以重新复制一条数据插入表