![332d2b2dd07224c046b03f10a6317652.png](https://i-blog.csdnimg.cn/blog_migrate/83d7342e423a6c7b88f63fba5c8cee0d.jpeg)
在一台机器上有多个实例,如何快速切换到其他实例呢 ?
以前,我们一般是通过export ORACLE_SID=newsid方式来完成,其实,我们安装了oracle数据库后,数据库已经帮我们创建 了一个脚本 oraenv 来快速帮我们做这个,在切换oracle_sid的同时,还帮我们切换了oracle_home
比如我现在要切换到 emrep.
[oracle@dbserver ~]$ . oraenv
ORACLE_SID = [orcl] ? emrep
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@dbserver ~]$ echo $ORACLE_SID
emrep
[oracle@dbserver ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@dbserver ~]$
我要切换回 orcl呢
[oracle@dbserver ~]$ . oraenv
ORACLE_SID = [emrep] ? orcl
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@dbserver ~]$ echo $ORACLE_SID
orcl
[oracle@dbserver ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@dbserver ~]$
我想切换到没有的新的实例名呢
比如,我准备新建一个auxdb实例
[oracle@dbserver ~]$ . oraenv
ORACLE_SID = [orcl] ? auxdb
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/12.1.0/dbhome_1
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@dbserver ~]$ echo $ORACLE_SID
auxdb
[oracle@dbserver ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@dbserver ~]$
这些信息来自哪里呢
其实,他们在 /etc/oratab里面
我们可以把新加的实例添加进去。
[oracle@dbserver ~]$ cat /etc/oratab
emrep:/u01/app/oracle/product/12.1.0/dbhome_1:N
orcl:/u01/app/oracle/product/12.1.0/dbhome_1:N
rcat:/u01/app/oracle/product/12.1.0/dbhome_1:N
cdb1:/u01/app/oracle/product/12.1.0/dbhome_1:N
我们添加进去
echo auxdb:/u01/app/oracle/product/12.1.0/dbhome_1:N >> /etc/oratab
[oracle@dbserver ~]$ cat /etc/oratab
。。。
emrep:/u01/app/oracle/product/12.1.0/dbhome_1:N
orcl:/u01/app/oracle/product/12.1.0/dbhome_1:N
rcat:/u01/app/oracle/product/12.1.0/dbhome_1:N
cdb1:/u01/app/oracle/product/12.1.0/dbhome_1:N
auxdb:/u01/app/oracle/product/12.1.0/dbhome_1:N
[oracle@dbserver ~]$
再次去切换:
[oracle@dbserver ~]$ . oraenv
ORACLE_SID = [auxdb] ? auxdb
The Oracle base remains unchanged with value /u01/app/oracle
好了,到此结束。