この記事は、批判の対象となる可能性がある場合を除き、Oracleの達人にとって興味深いものではないでしょう。  LinuxでのLinuxサーバー管理の経験は1年強です。  Oracleデータベースサーバー(10gと11gの両方)をインストールするプロセスは、多くのソース、たとえばhere 、 here 、 here 、またはロシアのhereで非常によく説明されているため、この問題については触れません。 
      
        
        
        
      
    
      
        
        
        
      
      2つの独立したOracleデータベースサーバー、たとえばOracle 10gR2とOracle11gR1を同じLinuxサーバーにインストールするタスクがあるとします(異なる仮想化オプションは考慮せず、ボードにLinuxシステムがインストールされた最も一般的なサーバーが1つあるとします)。 私の時代に直面したのはこのような問題であり、解決策はすぐには見つかりませんでした。  CentOS 5.4をLinuxシステムと見なします(RedHat、Fedoraなどの他のバリアントも適しています)。  これには何が必要ですか? まず、Oracleをインストールし、それぞれを個別のディレクトリに配置します。 経済全体の/ optパーティションがあります。 その中にoracleディレクトリを作成し、そこにOracleサーバーをインストールします。 不要な問題と競合を回避するために、2人のシステムユーザーoracle10とoracle11を作成し、それぞれ10gサーバーと11gサーバーの操作に使用します。 グループ(dba、oinstall)は共通のままにしておきます。つまり、両方のユーザーを両方のグループに追加します。 
      
        
        
        
      
     したがって、上記のインストール手順に従って、適切なシステムアカウント(oracle10をインストールするために、oracle10gR2を/opt/oracle/product/10.2.0ディレクトリに、Oracle 11gR1を/opt/oracle/product/11.2.0にインストールします。 10gR2、Oracle11gR1をインストールするoracle11)。 インストールが完了したら、oracle10およびoracle11ユーザーのホームディレクトリにある.bash_profile構成ファイルを編集します(デフォルトでは、システム上のユーザーにbashシェルが使用されます)。  oracle10の場合、次のように編集します。 
      
        
        
        
      
    
      
        
        
        
      
      #.bash_profile 
      
        
        
        
      
    
      
        
        
        
      
      #エイリアスと関数を取得する 
      
        
        
        
      
      if [-f〜/ .bashrc];  それから 
      
        
        
        
      
      。  〜/ .bashrc 
      
        
        
        
      
      fi 
      
        
        
        
      
    
      
        
        
        
      
      #ユーザー固有の環境とスタートアッププログラム 
      
        
        
        
      
    
      
        
        
        
      
      ORACLE_BASE = / opt / oracle 
      
        
        
        
      
      ORACLE_HOME = $ ORACLE_BASE / product / 10.2.0 / db_1 
      
        
        
        
      
      ORACLE_SID = orcl 
      
        
        
        
      
      ORACLE_HOME_LISTNER = $ ORACLE_HOME 
      
        
        
        
      
    
      
        
        
        
      
      LD_LIBRARY_PATH = $ ORACLE_HOME / lib 
      
        
        
        
      
    
      
        
        
        
      
      PATH = $ PATH:$ HOME / bin:/ $ ORACLE_HOME / bin 
      
        
        
        
      
    
      
        
        
        
      
      エクスポートパスORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH 
      
        
        
        
      
    
      
        
        
        
      
     およびoracle11の場合: 
      
        
        
        
      
    
      
        
        
        
      
      #.bash_profile 
      
        
        
        
      
    
      
        
        
        
      
      #エイリアスと関数を取得する 
      
        
        
        
      
      if [-f〜/ .bashrc];  それから 
      
        
        
        
      
      。  〜/ .bashrc 
      
        
        
        
      
      fi 
      
        
        
        
      
    
      
        
        
        
      
      #ユーザー固有の環境とスタートアッププログラム 
      
        
        
        
      
    
      
        
        
        
      
      ORACLE_BASE = / opt / oracle 
      
        
        
        
      
      ORACLE_HOME = $ ORACLE_BASE / product / 11.2.0 / db_1 
      
        
        
        
      
      ORACLE_SID = orcl2 
      
        
        
        
      
      ORACLE_HOME_LISTNER = $ ORACLE_HOME 
      
        
        
        
      
    
      
        
        
        
      
      LD_LIBRARY_PATH = $ ORACLE_HOME / lib 
      
        
        
        
      
    
      
        
        
        
      
      PATH = $ PATH:$ HOME / bin:/ $ ORACLE_HOME / bin 
      
        
        
        
      
    
      
        
        
        
      
      エクスポートパスORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH 
      
        
        
        
      
    
      
        
        
        
      
     最後に、両方のサーバーに適切な起動スクリプトを作成します。 これを行うには、/ etc / rc.d / init.dディレクトリにoradb10およびoradb11ファイルを作成します。 
      
        
        
        
      
     コンテンツoradb10: 
      
        
        
        
      
    
      
        
        
        
      
      ケース「$ 1」 
      
        
        
        
      
      start)echo「Oracleデータベースの起動」 
      
        
        
        
      
      su-oracle10 -c "lsnrctl start;  dbstart $ ORACLE_HOME;  emctl start dbconsole» 
      
        
        
        
      
      touch / var / lock / subsys / oracle10 
      
        
        
        
      
      ;; 
      
        
        
        
      
      stop)echo "Oracleデータベースのシャットダウン" 
      
        
        
        
      
      rm -f / var / lock / subsys / oracle10 
      
        
        
        
      
      su-oracle10 -c "emctl stop dbconsole;  dbshut $ ORACLE_HOME;  lsnrctl stop» 
      
        
        
        
      
      ;; 
      
        
        
        
      
      *) 
      
        
        
        
      
      echo $ "使用法:$ 0 {start | stop}" 
      
        
        
        
      
      エサック 
      
        
        
        
      
    
      
        
        
        
      
     コンテンツoradb11: 
      
        
        
        
      
    
      
        
        
        
      
      ケース「$ 1」 
      
        
        
        
      
      start)echo「Oracleデータベースの起動」 
      
        
        
        
      
      su-oracle11 -c "lsnrctl start;  dbstart $ ORACLE_HOME;  emctl start dbconsole» 
      
        
        
        
      
      touch / var / lock / subsys / oracle11 
      
        
        
        
      
      ;; 
      
        
        
        
      
      stop)echo "Oracleデータベースのシャットダウン" 
      
        
        
        
      
      rm -f / var / lock / subsys / oracle11 
      
        
        
        
      
      su-oracle11 -c "emctl stop dbconsole;  dbshut $ ORACLE_HOME;  lsnrctl stop» 
      
        
        
        
      
      ;; 
      
        
        
        
      
      *) 
      
        
        
        
      
      echo $ "使用法:$ 0 {start | stop}" 
      
        
        
        
      
      エサック 
      
        
        
        
      
    
      
        
        
        
      
     次に、コマンドを使用して適切なサービスを追加します。 
      
        
        
        
      
      chkconfig – oradb10を追加します 
      
        
        
        
      
      chkconfig – oradb11を追加します 
      
        
        
        
      
    
      
        
        
        
      
     最後に、構成ファイル/ etc / oratabを次のように編集します。 
      
        
        
        
      
    
      
        
        
        
      
      orcl:/opt/oracle/product/10.2.0/db_1:Y 
      
        
        
        
      
      orcl2:/opt/oracle/product/11.2.0/db_1:Y 
      
        
        
        
      
    
      
        
        
        
      
     ご想像のとおり、結果として、システムを起動すると、各サーバーは自動的に独自のデータベース、サーバー10gのorclおよびサーバー11gのorcl2を起動します。 
      
        
        
        
      
     サーバーの1つで何らかのアクションを実行する必要がある場合、Oracle 10gサーバーが必要な場合は適切なユーザー、たとえばoracle10(またはsu-oracle10コマンドを実行)としてログインし、対応するOracleサーバーで作業する必要があるコマンドを実行します例:sqlplusまたはその他。 
      
        
        
        
      
    
      
        
        
        
      
     基本的にこれですべてです。複雑なことは何もありません。 あなたが何かを見逃したか、どこかでミスをした場合、私は教祖がそれを修正すると思います:) 
      
        
        
        
      
    
      
        
        
        
      
      UPD:小さな修正:Enterprise Managerコンソール間の競合を回避するには、サーバーの1つのポートをデフォルト値の1158から他のポートに調整する必要があります。たとえば、次のようになります。 
      
        
        
        
      
      emca -reconfig ports -DBCONTROL_HTTP_PORT <port_number> 
      
        
        
        
      
    
      
        
        
        
      
      Z.Y.  Habrに関する私の最初の投稿。  habrachelovekナンバー1の招待に感謝します!