Hatena::Grouparaistudy

czk-htnの日記

2010-11-29

[] CentOS-5.4 64bit に Oracle 10.2.0.1 をインストール (oratool編) 21:27



ERROR 404 - Seite nicht gefunden : Wellensteyn Jacke,Wellensteyn Kaufen,Moncler Daunenmäntel Damen - Moncler Daunenjacken Herren,Outlet Parajumpers | Jacke online shop schweiz

/opt のマウント

$ sudo /sbin/mkfs.ext3 /dev/sdc 
$ sudo mount /dev/sdc /opt

** oratoolインストール

>|shell|
$ sudo rpm -ivh ~/Desktop/oratoolkit-1.0.2.1.4-1.noarch.rpm
$ su - root
# passwd oracle
# exit
$ sudo /opt/oracle/otk/current/bin/installManager swReqCheck osSetup10gR2.cfg

ログは /var/opt/oracle/otk/1.0/log-old/installManager.log に、詳細ログは /var/opt/oracle/otk/1.0/log-old/installManager/swreqcheck-20101129_232429.log に出力される。

詳細ログからインストールされていない必須パッケージを抽出する。

# su - root
# cd /var/opt/oracle/otk/1.0/log-old/installManager
# ls -ltr
# grep 'not found' swreqcheck-*.log | awk '{print $5 }' | sort | uniq
compat-db
compat-libstdc++-296
compat-libstdc++-33
gcc
gcc-c++
glibc-devel
glibc-headers
kernel-headers
libXp
libgomp
libstdc++-devel
sysstat
unixODBC
unixODBC-devel
$ sudo yum install compat-db \
  compat-libstdc++-296 \
  compat-libstdc++-33 \
  gcc \
  gcc-c++ \
  glibc-devel \
  glibc-headers \
  kernel-headers \
  libXp \
  libgomp \
  libstdc++-devel \
  sysstat \
  unixODBC \
  unixODBC-devel
$ sudo /opt/oracle/otk/current/bin/installManager swReqCheck osSetup10gR2.cfg

必要なパッケージをyumインストールする。インストールしたら、もう一度チェックを走らせる。

結果1件WARNINGがでているが「CentOS上での動作はOracleでサポートされていない」という当然の警告なので気にしない。

$ sudo grep -i warn /var/opt/oracle/otk/1.0/log-old/installManager/swreqcheck-20101129_233958.log
20101129_233959: Warning: Oracle software runs on CentOS however this combination is NOT supported by Oracle
20101129_234006: Info: Action swReqCheck of installManager ended with one WARNING

rlwrapのコンパイル

rlwrapはreadlineラッパー。rlwrap経由でsqlplusを使うと、sqlplusでもコマンド履歴を扱うことができるようになる。

HowTo通りにやるとreadlineライブラリがないと失敗するので、realine-develをあらかじめインストールしておく。

# sudo yum install readline-devel
# cd /opt/oracle/otk/current/tools/rlwrap
# ./configure && make
# make install
# /usr/local/bin/rlwrap -v
rlwrap 0.30

osSetup

osSetup10gR2.cfg は変更する必要はない。

# cd /opt/oracle/otk/current/conf/installManager/
# vi osSetup10gR2.cfg
(変更不要)
# sdiff -s osSetup10gR2.cfg sample/osSetup10gR2.cfg
(差異なし)
# /opt/oracle/otk/current/bin/installManager osSetup osSetup10gR2.cfg

swInst

サイレントモードでOracle Universal Installerが起動して、自動的にインストールが進む。

公式サイトの手順では大文字小文字が間違っているので注意。Linuxlinux

# cd /var/opt/oracle/repository/
# mv ~/Desktop/10201_database_linux_x86_64.cpio.gz .
# mv ~/Desktop/10201_companion_linux_x86_64.cpio.gz .
# su - oracle
oracle% bash
oracle$ cd $INSTALL_CONF
oracle$ cp sample/swInstEeSrv10gR2-Step*-linux-x86_64.cfg .
oracle$ installManager swInst swInstEeSrv10gR2-Step1-linux-x86_64.cfg

こんなエラーがでてインストールが途中で止まってしまった。

SEVERE:次の変数に対する値を、コマンドラインまたはレスポンス・ファイルから取得できませんでした。
  DEP_MODE(InstallType),
  TLDepModes(Toplevelinstalltype)
サイレント・インストールを続行できません。

ログファイルから原因を調べる。

# less /opt/oracle/oraInventory/logs/installActions*.log

どうやら、使ったサイレントインストール用のレスポンスファイルは以下のようだ。

/opt/oracle/otk/1.0/conf/installManager/response/10_2_0_1_SE.rsp

/opt/oracle/otk/1.0/conf/installManager/response/10_2_0_1_EE.rsp

で、INSTALL_TYPE="Enterprise Edition"とあるが、正しい指定方法は"EE"らしいので修正して再度実行する。

oracle$ cd /opt/oracle/otk/1.0/conf/installManager/response/
oracle$ cp -pi 10_2_0_1_EE.rsp 10_2_0_1_EE.rsp.org
oracle$ vi 10_2_0_1_EE.rsp
oracle$ diff -U 1 10_2_0_1_EE.rsp.org 10_2_0_1_EE.rsp
--- 10_2_0_1_EE.rsp.org 2009-05-12 23:40:15.000000000 +0900
+++ 10_2_0_1_EE.rsp     2010-11-30 11:35:35.000000000 +0900
@@ -329,3 +329,3 @@
 
-INSTALL_TYPE="Enterprise Edition"
+INSTALL_TYPE="EE"
oracle$ bash
oracle$ cd $INSTALL_CONF
oracle$ installManager swInst swInstEeSrv10gR2-Step1-linux-x86_64.cfg

ここまでで一端インストールを中断。root権限でシェルを実行し、/etc/oratabや/usr/local/bin/oraenvなどのファイルを作成する。

oracle$ exit
oracle$ exit
# /opt/oracle/eesrv/10.2.0/db1/root.sh
# su - oracle
oracle$ bash
oracle$ cd $INSTALL_CONF
oracle$ installManager swInst swInstEeSrv10gR2-Step2-linux-x86_64.cfg
(↓パッチを適用する場合)
oracle$ installManager swInst swInstEeSrv10gR2-Step3-linux-x86_64.cfg
oracle$ exit
oracle$ exit
# /opt/oracle/eesrv/10.2.0/db1/root.sh

データベースを作成する

ORACLE_HOME と データファイルの作成先ディレクトリを指定する。

# su - oracle
oracle$ cd $INSTALL_CONF
oracle$ ls -1 dbSetup*.cfg
dbSetup-dev.cfg
dbSetup-prod.cfg
dbSetup-test.cfg
$ vi dbSetup-prod.cfg
$ sdiff -s dbSetup-prod.cfg sample/dbSetup-prod.cfg
ORACLE_HOME="$ORACLE_BASE/eesrv/10.2.0/db1"                   | ORACLE_HOME="$ORACLE_BASE/sesrv/11.1.0/db1"
DATA01="/opt/oracle/data01/rdbms/${DB_NAME}"                  | DATA01="/data01/rdbms/${DB_NAME}"
DATA02="/opt/oracle/data02/rdbms/${DB_NAME}"                  | DATA02="/data02/rdbms/${DB_NAME}"
PWFILE="/opt/oracle/data01/rdbms/${DB_NAME}/pfile"            | PWFILE="/data01/rdbms/${DB_NAME}/pfile"
UTL="/opt/oracle/data01/utl/$DB_NAME"                         | UTL="/data01/utl/$DB_NAME"
$ installManager dbSetup dbSetup-prod.cfg

もし途中でデータベースの作成に失敗した場合は、Oracleインスタンスが起動したままの状態になる場合がある。そのままだと再施行できないため、下記の手順でインスタンスをシャットダウンする。

oracle$ bash
oracle$ sourceProdEnv
oracle$ sqlplus sys/manager
sql> shutdown immeidate
sql> exit
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20101129

2010-11-26

[] CentOS-5.4 64bit に Oracle 10.2.0.1 をインストール 21:27

この手順ではインストールはまだ成功していません!!

事前準備

Oracleインストール先として5GB(製品: 2GB + DB: 1.5GB + 予備: 1.5GB)ほどのスペースを用意しておく。今回はVMWareを用いたため、新しい仮想ディスクを追加し、/opt としてマウントした。

$ sudo /sbin/mkfs.ext3 /dev/sdc
$ sudo mount /dev/sdc /opt
$ df -k /opt
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sdc               5160576    141444   4756988   3% /opt

次にカーネルパラメータを修正する。いくつかはすでにOracle推奨値より大きかったためコメントアウトする。

/etc/sysctl.conf
# -- for oracle 2010.11.27
#kernel.shmall = 2097152 
#kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
# -- for oracle 2010.11.27
/etc/security/limits.conf
# -- for oracle 2010.11.27
oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
# -- for oracle 2010.11.27
/etc/pam.d/login
# -- for oracle 2010.11.27
session    required     pam_limits.so
# -- for oracle 2010.11.27
/etc/profile
# -- for oracle 2010.11.27
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else  
              ulimit -u 16384 -n 65536
        fi
fi
# -- for oracle 2010.11.27

/opt/oracle ディレクトリ作成

どこにインストールしてもいいんだけど /opt/oracle が一般的かも。オーナーやパーミッションも変えておく。

$ sudo /usr/sbin/groupadd oinstall
$ sudo /usr/sbin/groupadd dba
$ sudo /usr/sbin/useradd -g oinstall -G dba oracle
$ sudo passwd oracle
$ sudo mkdir -p /opt/oracle
$ sudo chown oracle:dba /opt/oracle

ファイル入手

Oracle Database Software Downloads | Oracle Technology Network | Oracle

ときたまダウンロードに失敗してファイルが破損している場合もあるので、ちゃんとcksumを確かめること。

$ cksum 10201_database_linux_x86_64.cpio.gz 
2921604215 758433170 10201_database_linux_x86_64.cpio.gz
$ cksum 10201_companion_linux_x86_64.cpio.gz 
2134485797 736828852 10201_companion_linux_x86_64.cpio.gz

ファイル展開

$ cd /tmp
$ gunzip -cd 10201_database_linux_x86_64.cpio.gz | cpio -idmv
$ gunzip -cd 10201_companion_linux_x86_64.cpio.gz | cpio -idmv

gcc、libXpインストール

そのまま runInstaller すると libXp.so.6 が見つからないというエラーになるので、yumを使ってライブラリインストールする。またインストーラのチェックでgccも求められるので追加しておく。

glibc-develはインストールの途中でmakeが失敗するため。ログをみると下記のようなメッセージがでている。これはglibc-develをインストールすれば解決する。

/usr/bin/ld: crt1.o: No such file: No such file or directory
$ sudo yum install libXp
$ sudo yum install gcc
$ sudo yum install glibc-devel

インストール

$ cat /proc/version 
Linux version 2.6.18-164.11.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Jan 20 07:32:21 EST 2010

CentOSメディアからインストールした状態だとバージョンをこのように返す。OracleInstallerは"redhat-4"として扱うので処理は継続される。更新を適用するとOSチェックで引っかかりインストーラが起動しないので注意。その場合は -ignoreSysPrereqs オプションをつけて無理矢理インストールすることになる。


$ su - oracle
$ cd /tmp/database
$ ./runInstaller -ignoreSysPrereqs

結果

インストーラの途中で以下のようなエラーがでて失敗する。解決するにはoratoolが必要になりそうなので、次回はそちらを試してみる。

lxu4dec.c:(.text+0x18b): undefined reference to `lxujmd'
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20101126