在 Linux 上为 MULTIPLE ORACLE HOME 配置 .bash_profile (CENTOS)



>我使用的是装有 CENTOS 5.11 的服务器,在不同的情况下,我需要使用两个版本的 Oracle。我已经成功安装了Oracle 10g,但是我想安装12c,部分原因是为了迁移我的数据库。

问题是我不知道如何配置.bash_profile,这是按以下方式配置ORACLE_HOME的位置:

## Oracle Env Settings 
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=oracle.localdomain
export ORACLE_UNQNAME=MYDB  
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/VERSION/db_1
export ORACLE_SID=MYDB
export PATH=/usr/sbin:$PATH          
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

我已经搜索过,并且在Oracle的文档中只提到要安装另一个版本只需要将其安装在另一个ORACLE_HOME中即可。所以,我的问题是,如何在.bash_profile中添加新的ORACLE_HOME?同样,如果我可以为新安装使用相同的用户和组。

一个很好的问题! 我偶然发现了以下内容:

  1. 问汤姆的解决方案:

简而言之 - 使用DBCA配置第二次安装(它将为您处理这些细节,而不必担心侦听器)。这意味着,当您安装第二个数据库时,只需使用通用安装程序存储文件,然后使用 DBCA 进行配置。

  1. 这个解决方案在这里。

简而言之 - 使用软链接进行ORACLE_SIDORACLE_HOME。这真的是一个很长的教程,所以在这里粘贴它没有任何意义。

  1. 我个人最喜欢的 - 转到 Point1 :-)。

现在说真的 - 如果你只需要通过.bash_profile来制作它,只需在其中放置一些if语句,或者为不同的数据库创建一些外部脚本,然后只是获取它们,或者.bash_profile调用它们,当你提供它时。

总结一下 - 始终通过存储文件来"安装"数据库,不要相信安装程序。部署后,运行DBCA以配置安装。在所有情况下,它都应该为您处理这些配置。在某些情况下(如果不是全部),DBCA实际上会为两者设置相同的ORACLE_HOMEORACLE_SID,但它们将具有不同的唯一名称,您将使用这些名称与 sqlplus 连接以启动/停止它们。 据我所知 - 所有解决方案都围绕着我在上一段中提到的同一件事。

干杯

编写两个函数以在两个安装之间切换。

export SYS_PATH=$PATH
export TMP=/tmp
export TMPDIR=$TMP
## First Oracle Env Settings 
ora1 ()
{
export ORACLE_HOSTNAME=oracle1.localdomain
export ORACLE_UNQNAME=MYDB1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/VERSION/db_1
export ORACLE_SID=MYDB1
export PATH=/usr/sbin:$SYS_PATH          
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
}
## Second Oracle Env Settings
ora2 ()
{
export ORACLE_HOSTNAME=oracle2.localdomain
export ORACLE_UNQNAME=MYDB2
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/VERSION/db_2
export ORACLE_SID=MYDB2
export PATH=/usr/sbin:$SYS_PATH          
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
}

使用默认值:

ora1

并切换到另一个:

ora2

然后切换回来:

ora1

.oraenv 仅导入 Oracle Env。如果涉及其他应用程序并需要相应地设置环境;与甲骨文环境一起.bash_profile真的很有帮助。

只需将/etc/oratab 的最后两行从 N 更改为 Y,即可从数据库切换到另一个数据库......跑。

命令提示符下的oraenv无需担心.bash_profile

ora1:/u01/app/oracle/product/11.2.0/db_1:Y
ora2:/u01/app/oracle/product/11.2.0/db_1:Y

最新更新