CentOS 6.2 x64でのOracle 10gのインストール

先日、このタイプの製品をこの軸にインストールする必要がありましたが、これはオラクルによって公式にサポートされていません。 CentOSは私にとって非常に未開拓のLinuxなので、Googleをインストールする方法。 私はいくつかの指示を見つけましたが、残念なことにそれらのうちの1つは非常にマニュアルではなく、愚かなことに続いてこのアクションを実行することができました。 すべての必要な改良、欠落しているライブラリの検索など。 その結果、すべての修正を考慮して、一種のHOWTOを作成しました。 誰かが興味を持つかもしれません。



追伸 オラクルの真のファンは、厳密に判断しないでください。サポートされていないオペレーティングシステムにこのデータベースをインストールすることは詐欺などに満ちていることを知っています。 OSの要件が「認定」されていることは、まだかなり誇張されていると思います。







私たちはルートで接続されており、その環境で作業しています:



su -
      
      







必要なパッケージをインストールします(すべてが標準リポジトリにあり、少し散在しています):



 yum install libXp gcc make setarch libaio glibc-devel glibc.i686 libXp.so.6 libXt.so.6 libXtst.so.6 compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio-devel libaio libgcc libstdc++ make sysstat unixODBC unixODBC-devel unzip glibc-devel.i686 libgcc.i686 binutils compat-db libstdc++ gdbm make ksh libaio-devel libXtst xorg-x11-utils openmotif openmotif.i686 libaio.i686 libaio-devel.i686 compat-glibc.x86_64
      
      







ユーザーとグループを作成します。



 groupadd oinstall groupadd dba useradd -d /opt/oracle -g oinstall -G dba -s /bin/bash -m oracle passwd oracle useradd nobody
      
      







互換性のためにシステム設定を構成します。 /etc/sysctl.confを編集し、次の行を追加変更します。



 kernel.sem = 250 32000 100 128 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576
      
      







構成を適用します。



 sysctl -p
      
      







oracleユーザーのファイルプロセス数の制限を調整します(DBMSプロセスの所有者になるため)。 /etc/security/limits.confを編集し、次の行を変更します。



 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
      
      







/etc/pam.d/loginを編集し、/変更します:



 session required /lib64/security/pam_limits.so session required pam_limits.so
      
      







また、プロファイルファイル(vi /etc/profile.d/custom.sh)を作成し、テキストを追加します。



 #!/bin/bash if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
      
      







実行権を追加します。



 chmod +x /etc/profile.d/custom.sh
      
      







OSのバージョンの説明を一時的に変更して、インストールが保証されないようにします。 もちろん、全員ではなく、インストール中にignoreSysPrereqsキーを使用できます。



 cp /etc/redhat-release /etc/redhat-release.6 echo redhat-4 > /etc/redhat-release
      
      







OSの他のユーザー、データベースへのアクセスを必要とする可能性のあるプロセス所有者、これに問題がないことを確認するために、最後に次の行を一般プロファイル(/ etc / profile)に追加します。



 ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/database ORACLE_SID=navdb export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH=$ORACLE_HOME/bin:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$PATH:. export PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export LD_LIBRARY_PATH CLASSPATH export NLS_LANG=AMERICAN_AMERICA.UTF8
      
      







それだけです。まだrootアクセスは必要ありません。oracleユーザーによって接続されています。



/ opt / oracle / databaseへのインストール



 cd /opt/oracle cpio -idmv < database_linux_x86_64.cpio cd database ./runInstaller
      
      







インストール。

インストールプロセス中にエラーが発生する場合があります:ins_emdb(ターゲット 'collector'の呼び出しエラー...)、無視して[続行]をクリックします。

インストールプロセスでは、インストーラーの指示に従います。ルートの下から2つのスクリプトを実行する必要があり、それらを実行します。



やった? まだです。



OSリリースの説明を変更し、古い説明を返すことを思い出します(ルートから実行します)。



 mv /etc/redhat-release.6 /etc/redhat-release
      
      







oracleと入力し、dbcaを介してデータベースを作成しようとすると、作成時にエラーが発生します。



 ORA-27125: unable to create shared memory segment
      
      







この迷惑な誤解を処理します。 実施します



 cd $ORACLE_HOME/bin mv oracle oracle.bin
      
      







次の内容のファイル$ ORACLE_HOME / bin / oralceを作成します。



 #!/bin/bash export DISABLE_HUGETLBFS=1 exec $ORACLE_HOME/bin/oracle.bin $@
      
      







ファイルに実行権を与えます。



 chmod +x oracle
      
      







これですべてが機能します。 システムの起動時に起動するように、Oracleとリスナーをデーモンとして配置するだけです。



リスナーの場合、次の内容のスクリプト(/etc/init.d/listener)を作成します。



 #!/bin/bash # # chkconfig: 345 51 49 # description: startup and shutdown the Oracle 10g listener # echo "Oracle 10g listener start/stop/restart/status" ORA_OWNER=oracle ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/database ORACLE_SID=navdb export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH:. export PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export LD_LIBRARY_PATH CLASSPATH alias sqlplus='rlwrap sqlplus' export NLS_LANG=AMERICAN_AMERICA.UTF8 case $1 in start) echo -n "Starting oracle listener: " su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" echo ;; stop) echo -n "Shutting down oracle listener: " su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" echo ;; status) echo -n "Status of oracle listener: " su - $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl status" echo ;; restart) echo -n "Restarting oracle listener:" $0 stop $0 start echo ;; *) echo "Usage: listener [ start | stop | restart | status ]" exit 1 esac exit 0
      
      







権限を調整し、自動実行に追加します



 chmod 700 listener chkconfig listener on
      
      







subの場合、次の内容のスクリプト(/etc/init.d/oracle)を作成します。



 #!/bin/bash # # chkconfig: 345 51 49 # description: startup and shutdown the Oracle 10g instance # # Run-level Startup script for the Oracle Instance, Listener, and Web Interface echo "Oracle 10g database start/stop/restart" ORA_OWNER=oracle ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/database ORACLE_SID=navdb export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH:. export PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export LD_LIBRARY_PATH CLASSPATH export NLS_LANG=AMERICAN_AMERICA.UTF8 # if the executables do not exist -- display error if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi # depending on parameter -- startup, shutdown, restart # of the instance and listener or usage display case "$1" in start) # Oracle listener and instance startup echo -n "Starting Oracle: " su $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" su $ORA_OWNER -c $ORACLE_HOME/bin/dbstart touch /var/lock/oracle # su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" echo "OK" ;; stop) # Oracle listener and instance shutdown echo -n "Shutdown Oracle: " su $ORA_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" su $ORA_OWNER -c $ORACLE_HOME/bin/dbshut rm -f /var/lock/oracle # su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" echo "OK" ;; restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` start|stop|restart" exit 1 esac exit 0
      
      







権限を調整し、自動実行に追加します



  chmod 700 oracle chkconfig oracle on
      
      







必要なインスタンスを自動的に起動するには、/ etc / oratabを編集し、変更します



 navdb:/opt/oracle/database:N
      
      











 navdb:/opt/oracle/database:Y
      
      







実際にはすべて:)



All Articles