【问题标题】:Configure .bash_profile on linux (CENTOS) for multiple ORACLE HOMEs在 linux (CENTOS) 上为多个 ORACLE HOME 配置 .bash_profile
【发布时间】:2017-08-25 02:39:35
【问题描述】:

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

问题是我不知道如何配置 ORACLE_HOME 的 .bash_profile,如下所示:

    ## 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? 以及我是否可以在新安装中使用相同的用户和组。

【问题讨论】:

    标签: linux oracle oracle12c centos5


    【解决方案1】:

    .oraenv 只导入 Oracle 环境。如果涉及到其他应用,需要相应地设置环境;连同 oracle env .bash_profile 真的很有帮助。

    【讨论】:

      【解决方案2】:

      只需将 /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
      

      【讨论】:

        【解决方案3】:

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

        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
        

        【讨论】:

          【解决方案4】:

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

          1. Ask Tom's solution:

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

          1. 这个solution over here

          简而言之 - 使用 ORACLE_SIDORACLE_HOME 的软链接。教程真的很长,这里没有贴的意思。

          1. 我个人最喜欢的 - 超过 Point1 :-)。

          现在说真的 - 如果您只需要通过 .bash_profile 进行操作,只需将一些 if 语句放入其中,或者为不同的数据库创建一些外部脚本并获取它们,或者让 .bash_profile 调用它们,当您来源它。

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

          干杯

          【讨论】:

            猜你喜欢
            • 2017-01-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-02-19
            • 2018-06-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多