我使用的是带有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?同样,如果我可以使用相同的用户和组进行新安装。
一个很好的问题!我偶然发现了以下情况:
简而言之 - 使用DBCA
配置第二次安装(它将为您处理这些细节,而不用担心监听器)。这意味着当您安装第二个数据库时,只需使用Universal Installer存储文件,然后使用DBCA进行配置。
简而言之 - 使用ORACLE_SID
和ORACLE_HOME
的软链接。这真是一个很长的教程,所以将它粘贴在这里没有任何意义。
现在认真 - 如果你只需要通过.bash_profile创建它,只需在其中放入一些if
语句或为不同的数据库创建一些外部脚本,只需获取它们,或者在源代码时调用它们.bash_profile。
要将其全部包装起来 - 只需存储文件即可“安装”数据库,不要相信安装程序。部署后,运行DBCA
以配置安装。在所有情况下,它应该为您处理这些配置。在某些情况下,如果不是全部,DBCA
实际上将为两者设置相同的ORACLE_HOME
和ORACLE_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
只需将/ 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