Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux(CENTOS)上为多个ORACLE家庭配置.bash_配置文件_Linux_Oracle_Oracle12c_Centos5 - Fatal编程技术网

在linux(CENTOS)上为多个ORACLE家庭配置.bash_配置文件

在linux(CENTOS)上为多个ORACLE家庭配置.bash_配置文件,linux,oracle,oracle12c,centos5,Linux,Oracle,Oracle12c,Centos5,我正在使用CENTOS 5.11的服务器,在不同的情况下,我需要使用两个版本的Oracle。我已经成功安装了Oracle 10g,但是我想安装12c,部分是为了迁移我的数据库 问题是我不知道如何配置.bash_配置文件,ORACLE_HOME就是通过以下方式配置的: ## Oracle Env Settings export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=oracle.localdomain

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

问题是我不知道如何配置.bash_配置文件,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_主页中安装它。因此,我的问题是,如何在.bash\u配置文件中添加新的ORACLE\u HOME?以及是否可以在新安装中使用相同的用户和组。

这是一个很好的问题! 我偶然发现了以下几点:

  • 委员会:
  • 简而言之-使用
    DBCA
    配置第二次安装(它将为您处理这些细节,而不必担心侦听器)。这意味着,在安装第二个DB时,只需将文件存储在Universal Installer中,然后使用配置即可

  • 这个
  • 简而言之-对
    ORACLE\u SID
    ORACLE\u HOME
    使用软链接。这真的是一个很长的教程,所以没有意义粘贴在这里

  • 我个人的最爱-浏览第1点:-)
  • 现在严肃地说,如果您只需要通过.bash_配置文件来实现,只需在其中放入一些
    if
    语句,或者为不同的数据库创建一些外部脚本,然后直接对它们进行源代码生成,或者在源代码生成时调用.bash_配置文件即可

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


    Cheers

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

    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。是否涉及其他应用程序,需要相应地设置env;与OracleEnv.bash_配置文件一起使用确实很有帮助