在 linux (CENTOS) 上为多个 ORACLE HOME 配置 .bash_profile
Configure .bash_profile on linux (CENTOS) for multiple ORACLE HOMEs
我正在使用带有 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
配置第二个安装(它将为您处理这些细节,不用担心监听器)。这意味着当您安装第二个数据库时,只需使用通用安装程序存储文件,然后使用 DBCA.
配置它
简而言之 - 使用 ORACLE_SID
和 ORACLE_HOME
的软链接。教程实在是太长了,贴在这里没有意义
- 我个人最喜欢的 - 查看 Point1 :-)。
现在说真的 - 如果您只需要通过 .bash_profile 来实现它,只需在其中添加一些 if
语句或为不同的数据库创建一些外部脚本并获取它们,或者使 .bash_profile 调用它们,当你找到它时。
总而言之 - 总是 "install" 数据库只存储文件,不要相信安装程序。部署后,运行DBCA
配置安装。在所有情况下,它都应该为您处理这些配置。在某些情况下,如果不是全部,DBCA
实际上会为两者设置相同的 ORACLE_HOME
和 ORACLE_SID
,但它们将具有不同的唯一名称,您将使用这些名称与 sqlplus 连接以start/stop 他们。
据我所知——所有的解决方案都围绕着我刚才在上面的段落中提到的同一件事。
干杯
写两个函数在两个安装之间切换
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
.oraenv 仅导入 Oracle 环境。如果涉及到其他应用需要相应设置env;与 oracle env 一起。bash_profile 真的很有帮助。
我正在使用带有 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
配置第二个安装(它将为您处理这些细节,不用担心监听器)。这意味着当您安装第二个数据库时,只需使用通用安装程序存储文件,然后使用 DBCA.
简而言之 - 使用 ORACLE_SID
和 ORACLE_HOME
的软链接。教程实在是太长了,贴在这里没有意义
- 我个人最喜欢的 - 查看 Point1 :-)。
现在说真的 - 如果您只需要通过 .bash_profile 来实现它,只需在其中添加一些 if
语句或为不同的数据库创建一些外部脚本并获取它们,或者使 .bash_profile 调用它们,当你找到它时。
总而言之 - 总是 "install" 数据库只存储文件,不要相信安装程序。部署后,运行DBCA
配置安装。在所有情况下,它都应该为您处理这些配置。在某些情况下,如果不是全部,DBCA
实际上会为两者设置相同的 ORACLE_HOME
和 ORACLE_SID
,但它们将具有不同的唯一名称,您将使用这些名称与 sqlplus 连接以start/stop 他们。
据我所知——所有的解决方案都围绕着我刚才在上面的段落中提到的同一件事。
干杯
写两个函数在两个安装之间切换
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
.oraenv 仅导入 Oracle 环境。如果涉及到其他应用需要相应设置env;与 oracle env 一起。bash_profile 真的很有帮助。