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即可

Logo

更多推荐