在RHEL AS 5上安裝Oracle 9i的經驗總結
昨天晚上剛剛裝好,目前沒有發現什麼問題
安裝時主要參考瞭如下兩篇文章:
總結經驗以下:
第一,不要在安裝完AS 5後修改配置文件來使用CentOS的Yum升級,我第一次安裝時,裝完AS 5後火燒眉毛的用Yum升級,結果在安裝Oracle 9i的補丁包時出現不少依賴關係的報錯,在我強制安裝了部分補丁包後再用Yum升了一次級,結果形成AS 5的崩潰… :(
第二,在第一篇參考文章裏,做者提到安裝Linux時不少軟件包不要安裝,其實最好仍是把開發等一些軟件包裝上,這樣在打補丁時省了不少事,並且也跳過了一些步驟。但若是是第一次安裝,我以爲仍是按照做者的步驟來作,比較保險。
第三,須要下載的補丁和軟件包,以及從AS 5安裝光盤上準備的軟件包總列以下,最好在安裝前所有準備好:
須要下載的補丁和地址:
p3006854_9204_LINUX.zip
p2617419_210_GENERIC.zip
p3238244_9204_LINUX.zip
compat-libcwait-2.1-1.i386.rpm 的補丁在安裝前就要打
注:compat-oracle-rhel4-1.0-5.i386.rpm AS5 x86_32下能夠不裝. c***
=======================================================
p4198954_40_LINUX.zip (compat-libcwait-2.1-1.i386.rpm和compat-oracle-rhel4-1.0-5.i386.rpm 不打這個補丁在安裝ORACLE時會報一大堆的錯,找不到文件什麼的)
p3006854_9204_LINUX.zip (不打這個補丁在安裝ORACLE時運行runInstaller.sh後圖形界面出不來,無法安裝)
p2617419_220_GENERIC.zip (網上文章說要p2617419_210_GENERIC.zip文件,ORACLE工程師所給文件版本更新。)
p3238244_9204_LINUX.zip (p2617419和p3238244兩個補丁是爲解決Agent啓動不了問題)
==========================================================
須要下載的軟件包和地址:
giflib-4.1.3-8.i386.rpm
glib-1.2.10-26.fc7.i386.rpm
libpng10-1.0.18-2.i386.rpm
ORBit-0.5.17-22.rhel5.i386.rpm
gtk+-1.2.10-57.fc7.i386.rpm
imlib-1.9.15-2.fc7.i386.rpm
gnome-libs-1.4.2-7.rhel5.i386.rpm
須要從光盤上找的軟件包:
compat-db-4.2.52-5.1.i386.rpm -------------- AS5 disk 3
compat-gcc-34-3.4.6-4.i386.rpm ------------- AS5 disk 2
compat-gcc-34-c++-3.4.6-4.i386.rpm--------- AS5 disk 2
compat-libgcc-296-2.96-138.i386.rpm ---------AS5 disk 3
**** openmotif-2.3.0-0.3.el5.i386.rpm --------------AS5 disk 3
**** openmotif-devel-2.3.0-0.3.el5.i386.rpm --------AS5 disk 3*********
libXpm-3.5.5-3.i386.rpm -----------------------AS5 disk 1
libXpm-devel-3.5.5-3.i386.rpm -----------------AS5 disk 2
libXp-1.0.0-8.i386.rpm -------------------------AS5 disk 2
libXp-devel-1.0.0-8.i386.rpm -------------------AS5 disk 2
我把兩篇文章的oracle 9i安裝部分結合了一下,而且修改了其中一些筆誤。
環境: Red Hat Enterprise Linux 5 (RHEL5), Oracle9i (9.2.0.4.0)
下面以 $ 開頭的命令都是由oracle執行的,
# 開頭的命令都是由root執行的。
1. 建立用戶和組
-------------------------
添加安裝過程當中須要用到的用戶和組
$ su -
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
2. 建立目錄
--------------------------
咱們將把全部東西都安裝到在 /opt/oracle 目錄下:
# mkdir -p /opt/app/oracle/9.2.0
# chown -R oracle.oinstall /opt/app/oracle
3. 系統配置
--------------------------
a) 設置內核參數
編輯/etc/sysctl.conf
kernel.shmmax = 536870912 這裏設置爲物理內存的一半 1G內存的話爲:512×1024×1024
kernel.shmmni = 4096 2G 內存的話爲:1024×1024×1024
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128 其餘的值都不用動
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
sem 4個參數依次爲 SEMMSL(每一個用戶擁有信號量最大數);
SEMMNS(系統信號量最大數);
SEMOPM(每次semopm系統調用操做數);
SEMMNI(系統辛苦量集數最大數).
Shmmax 最大共享內存2GB 物理內存若是小的話能夠設置成 536870912.
Shmmni 最小共享內存 4096KB.
Shmall 全部內存大小.
執行sysctl以反映修改 使內核參數馬上生效,重啓也能夠
# sysctl –p(如下爲liaozg的設置)
[root@avus-lzg etc]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
也能夠在運行時經過執行下列命令更改內核參數:
#echo 250 32000 100 128 > /proc/sys/kernel/sem
#echo 268435456 > /proc/sys/kernel/shmmax # 1/2 * mem_size(M) * 1024 *1024
#echo 4096 > /proc/sys/kernel/shmmni
#echo 524288 > /proc/sys/kernel/shmall # mem_size(M) * 1024
#echo 65536 > /proc/sys/fs/file-max
#echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
b) 設置oracle對文件的要求
修改文件:/etc/security/limits.conf
#echo oracle soft nofile 65536 >> /etc/security/limits.conf
#echo oracle hard nofile 65536 >> /etc/security/limits.conf
#echo oracle soft nproc 16384 >> /etc/security/limits.conf
#echo oracle hard nproc 16384 >> /etc/security/limits.conf
c) 設置環境變量
在/home/oracle/.bash_profile 中添加以下行:
export ORACLE_SID=GIS
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/9.2.0
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:.
(這裏都是PATH的變量,能夠連着寫,不用強制換行,我這裏顯示不下了才作得換行)
(編輯完成後能夠reboot,或者用「source .bash_profile」來使變量生效)
4. 打補丁、安裝須要的包, 至於爲何要作這些工做,後面有個Tips,給出了安裝中出現的錯誤及其Solution
--------------------------------------------------------------------------------------------------
a) 補丁說明(在b部分以前,什麼都不用作,a這一部分只要看看就行了,先了解一下,從b部分開始纔是正式操做):
p3006854_9204_LINUX.zip 安裝前就要打好的補丁
p2617419_220_GENERIC.zip 安裝後要打的(這只是一個伴隨補丁,只要設置它的
環境變量)
p3238244_9204_LINUX.zip 安裝後要打的9204的補丁,修復agent錯誤的補丁.
下載地址:
http://www.opennet.ru/soft/ora_inst/
compat-libcwait-2.0-2.i386.rpm L的補丁在安裝前就要打
b) 以root用戶登陸打p3006854_9204_LINUX.zip:
# unzip p3006854_9204_LINUX.zip
# sh 3006854/rhel3_pre_install.sh
c) 安裝 compat-libcwait-2.1-1.i386.rpm和compat-oracle-rhel4-1.0-5.i386.rpm:
# unzip p4198954_40_LINUX.zip
Archive: p4198954_40_LINUX.zip
creating: 4198954/
inflating: 4198954/compat-libcwait-2.1-1.i386.rpm
inflating: 4198954/compat-oracle-rhel4-1.0-5.i386.rpm
c.1)compat-libcwait-2.1-1.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm.爲了應用這個補丁,能夠運行:
login as root
#cd 4198954
#ls compat*.rpm
compat-libcwait-2.1-1.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm
rpm -ivh compat-libcwait-2.1-1.i386.rpm
Preparing... ########################################### [100%]
1:compat-libcwait ########################################### [100%]
d) 一些須要的包,這些包能夠從系統盤中找到:
# rpm -ivh compat-db-4.2.52-5.1.i386.rpm
# rpm -ivh libXp-1.0.0-8.i386.rpm
# rpm -ivh libXp-devel-1.0.0-8.i386.rpm
# rpm -ivh openmotif-2.3.0-0.3.el5.i386.rpm
# rpm -ivh openmotif-devel-2.3.0-0.3.el5.i386.rpm
e) gnome-libs-1.4.2-7.rhel5.i386.rpm 和 一些依賴包,這些包網上均可以找到:
# rpm -ivh giflib-4.1.3-8.i386.rpm
# rpm -ivh glib-1.2.10-26.fc7.i386.rpm
# rpm -ivh libpng10-1.0.18-2.i386.rpm
# rpm -ivh ORBit-0.5.17-22.rhel5.i386.rpm
# rpm -ivh gtk+-1.2.10-57.fc7.i386.rpm
# rpm -ivh imlib-1.9.15-2.fc7.i386.rpm
# rpm -ivh gnome-libs-1.4.2-7.rhel5.i386.rpm
f) 建立連接:
# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2
到這你能夠能會說前面的兩個補丁還沒打,請彆着急,後面會用到它們的(盼星星,盼月亮,最後我一個也沒用到)
好,咱們繼續...
5. 開始安裝oracle
----------------------------------------------------------------------------------
1) 準備工做:
2) 請重啓X而後用oracle登錄系統, 不然會出現一些列的錯誤,如:xhost +、環境變量、etc:
$ Disk1/runInstaller
沒有特別說明的均按默認設置,根據界面提示,而後點 Next 或 OK便可.
Oracle install group : oinstall
Global Database Name : GIS (可根據你的狀況填寫)
這個過程當中還會出現兩次提示,讓你運行指定目錄下的腳本,根據提示作就能夠了
3) 如今應該安裝到Configuration Tools了,若是在這出現錯誤,提示Configuration Tools安裝失敗,不要着急,咱們還有兩個補丁沒打呢。其實準確的說是一個補丁, p2617419_210_GENERIC.zip只是一個伴隨補丁, 我這不須要,手動完成就好:
(這一部分的問題我都沒有遇到,本身看着辦)
解決Agent Configuration Assistant安裝失敗
$ unzip p3238244_9204_LINUX.zip
$ cp 3238244/files/lib/stubs/* $ORACLE_HOME/lib/stubs/
$ cd $ORACLE_HOME/network/lib/
$ make -f ins_oemagent.mk install
解決 Oracle Net Configuration Assistant, Oracle Database Configuration Assistant 安裝失敗
刪除JRE連接($ORACLE_HOME/JRE -> /usr/local/oracle/jre/1.1.8)
$ rm $ORACLE_HOME/JRE
$ ln -s $ORACLE_BASE/jre/1.3.1/ $ORACLE_HOME/JRE
$ ln -s $ORACLE_HOME/JRE/bin/java $ORACLE_HOME/JRE/bin/jre
$ ln -s $ORACLE_HOME/JRE/bin/i386/native_threads/java $ORACLE_HOME/JRE/bin/i386/native_threads/jre
OK,如今Retry,你就能夠成功安裝Configuration Tools了,安裝也就結束了...
正常登錄並啓動數據庫的操做。
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL>; connect / as sysdba
Connected.
SQL>; shutdown immediate 關閉數據庫
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>; startup; 啓動數據庫
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
6, 爲了方便管理,能夠寫一個啓動腳本ora9i:
6.1)要使用ORACLE提供dbstart或dbshut可能啓動關閉數據庫先須要修改/etc/oratab文件
$vi /etc/oratab
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
*:/usr/local/oracle/9.2.0:N
GIS:/usr/local/oracle/9.2.0:Y
6.2)修改$ORACLE_HOME/bin/dbstart使其能啓動/etc/oratab中指定的數據庫實例
$vi $ORACLE_HOME/bin/dbstart
修改55行內容爲:
PFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
注在oracle9i安裝過程當中會提示pfile文件的位置。
7.編寫自啓動腳本
以root身份進入,編寫如下腳本:
------------------------------------------------
#!/bin/bash
# start and stop the oracle instance
# chkconfig -level 5 --add oracle9i
# chkconfig: 35 99 01
# description: starts the oracle listener and instance
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/9.2.0
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER="oracle"
export ORACLE_SID=GIS
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "oracle startup:cannot start"
exit 1
fi
case "$1" in
start)
#startup the listener and instance
echo -n "oracle startup: "
su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
touch /var/lock/subsys/oracle
echo "finished"
;;
stop)
# stop listener, apache and database
echo -n "oracle shutdown:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "finished"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: ora9i [start|stop|reload|restart]"
exit 1
esac
exit 0
-------------------END FILE -------------------------------------
存爲oracle9i後,而後用chmod a+x oracle9i。
便可在之後以root身份運行 /etc/rc.d/init.d/oracle9i start |stop 來管理oracle的啓動和中止了。
其中chkconfig:35 99 01 是指腳本將爲運行級三、5啓動oracle9I服務,啓動優先級爲99,關閉優先級爲01。
而後以root權限:
# cd /etc/rc.d
# chkconfig --add oracle9i
# chkconfig --list oracle9i
或可改成oracle9i的運行級別
# chkconfig oracle 35 on
重啓系統,就能夠在啓動的過程當中看到 Starting oracle ,由於咱們設置的優先級爲99,通常是最後啓動。
[OK]之後就可使服務隨操做系統自啓動了。
如下提供其它自啓動的設置方法,其效果至關。
或者手工以root用戶執行以下命令:
#cp /orasetup/ora9i /etc/rc.d/init.d/
#chmod a+x /etc/rc.d/init.d /ora9
#cd /etc/rc.d/rc5.d
#ln -s /etc/rc.d/init.d/ora9i S99ora9i
#cd /etc/rc.d/rc0.d
#ln -s /etc/rc.d/init.d/ora9i K99ora9i
也可自啓動oracle9i!
或者可在/etc/rc.d/rc.local中加入以下:
su - oracle -c "/opt/ora9/oracle/product/9.2.0/bin/lsnrctl start"
su - oracle -c "/opt/ora9/oracle/product/9.2.0/bin/dbstart start"
6,關於數據庫刪除從新安裝的問題:
把ORACLE安裝目錄刪除及/etc/ora*.*刪除就好了
#rm –f /etc/ora*.*
==================================================
* Tips: (這是我安裝過程當中出現的問題及其解決方法)
==================================================
1. error while loading shared libraries: libstdc++-libc6.1-1.so.2:
cannot open shared object file: No such file or directory - after
./runInstaller execution.
===================================================
Solution:
su -
# cd /usr/lib
# ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2
3. 幾個須要的包所在的路徑
===========================
compat-db-4.2.52-5.1.i386.rpm -------------- AS5 disk 3
compat-gcc-34 ----------------------------- AS5 disk 2
compat-gcc-34-c++------------------------- AS5 disk 2
compat-libgcc -------------------------------AS5 disk 3
openmotif-2.3.0-0.3.el5.i386.rpm--------------AS5 disk 3
openmotif-devel-2.3.0-0.3.el5.i386.rpm--------AS5 disk 3
4. Exception in thread "main" java.lang.UnsatisfiedLinkError:
/tmp/OraInstall2007-12-06_07-00-08PM/jre/lib/i386/libawt.so: libXp.so.6:
cannot open shared object file: No such file or directory
====================================================
Solution: install the follow RPMs
libXpm -- 1
libXpm-devel -- 2
libXp -- 2
libXp-devel – 2
5. Exception in thread "main" java.lang.InternalError: Can't connect to
X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at
sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:59)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
at java.awt.Window.<init>(Window.java:188)
at java.awt.Frame.<init>(Frame.java:315)
at java.awt.Frame.<init>(Frame.java:262)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)
================================================================
Solution: (xhost +的問題 )
1. 用oracle用戶登陸x-window
或者
2.用root用戶運行
# xhost +
6. Fatal: Stack size too small. Use 'ulimit -s' to increase default
stack size.
==========================
第二次運行就正常了
7. $ dbca // 沒法啓動dbca,提示錯誤以下:
/opt/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol
errno, version GLIBC_2.0 not defined in file libc.so.6 with link time
reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM
==========================
Solution: (參考 冷風的Fedora 7最新安裝Oracle9204手記)
$ cd /opt/app/oracle/product/9.2.0
$ ls -l JRE
lrwxrwxrwx 1 oracle oinstall 25 Dec 7 10:11 JRE -> /opt/app/oracle/jre/1.1.8
$ rm JRE
$ ln -s /opt/app/oracle/jre/1.3.1 JRE
$ su -
# cd /opt/app/oracle/product/9.2.0/JRE/bin/
# ln -s java jre
# cd i386/native_threads/
# ln -s java jre
8. 快裝完的時候有:
parameter "orahome"=/home/oracle/product/9.2.0
parameter "nodeinfo"=NO_value
提示失敗。
=======================================================
Solution:
打上安裝補丁p3238244_9204_LINUX.zip
unzip p3238244_9204_LINUX.zip
cd 3238244
手工將3238244/files/lib/stubs目錄下的全部文件複製到
/oracle/product/9.2.0/lib/stubs/目錄下也能夠,以下:
cp files/lib/stubs/* $ORACLE_HOME/lib/stubs/
從新鏈接編譯"Agent"相關程序
cd $ORACLE_HOME/network/lib/
make -f ins_oemagent.mk install
耐心等待成功編譯。
再點擊前面oracle安裝程序中的"Agent Configuration Assistant",並點擊
"Retry"從新運行配置工具程序,過一會應該會成功,退出安裝
9. /opt/app/oracle/9.2.0/Apache/Apache/bin/apachectl startssl: httpd
could not be started
/opt/app/oracle/9.2.0/Apache/Apache/bin/httpd: error while loading
shared libraries: libdb.so.2: cannot open shared object file: No such
file or directory
=======================================================
Solution:
按如下順序安裝 gnome-libs-1.4.2-7.rhel5.i386.rpm 及其依賴的包
giflib-4.1.3-8.i386.rpm
libpng10-1.0.18-2.i386.rpm
glib-1.2.10-26.fc7.i386.rpm
ORBit-0.5.17-22.rhel5.i386.rpm
gnome-libs-1.4.2-7.rhel5.i386.rpm
rpmdb-redhat-4-0.20071031.src.rpm
imlib-1.9.15-2.fc7.i386.rpm
gtk+-1.2.10-57.fc7.i386.rpm
gnome-libs-1.4.2-7.rhel5.i386.rpm