RHEL5服务器上安装Oracle 9i
Oracle9i (9.2.0.4.0) Installation on Red Hat Enterprise Linux 5 (RHEL5) [rhas_5_u1_32bit]
首先声明在rhel5上能安装oracle9i.
环境配置:
·安装系统:Red Hat Enterprise Linux 5 (RHEL5), 亦rhas5,版本u1,32bit(i386)
·数据库:Oracle9i (9.2.0.4.0)
·主机参数:HP主机,2G内存,160G硬盘,CD/DVD可读写光驱(HP dvd1060),GF8400独立显卡,自带声卡,网卡,usb2.0(7个),
注:
·查看主机内存:
方法一:在/proc/meminfo里面写的很清楚,cat看看。
方法二:unix和linux中“free”和“total”都可以看内存多少。(用来设置环境变量)
·查看光驱名称:df -H(用来确定挂载光盘名)
RHEL5 安装
应该不是什么大问题。不过建议初次安装或者对linux系统不是很熟系的朋友使用简体中文图形化安装界面。
还可参考网上众多的安装指导。
此时建议自定义安装依赖包,安装一些老的软件支持程序。
如果安装完系统以后不想使用图形界面,可以在/etc/inittab文件中找到id:5:initdefault 这一行,把5改为3或者更低即可。
oracle9i 安装
注: 下面以 $ 开头的命令都是由用户oracle执行的
# 开头的命令都是由用户root执行的
安装oracle的主要步骤归纳如下:
> 创建安装用户和目录、组
> 进行安装前系统配置,包括内核参数配置、安装用户环境变量配置、oracle对linux系统的特殊配置。
> 安装补丁和依赖包:因为没有这步在安装过程中会频繁报错,这时在手工改正,比较麻烦。因此,借鉴前人经验和测试过程,提前安装。
> 安装oracle:正式安装(光盘安装或者镜像安装)
> 安装后的补丁:还是要打一些补丁,才能正确完成安装。
上面步骤中的系统配置以及创建用户不分先后,无论先执行哪一步均可。但是一定要保证在配置完成后,要重启一下,然后用创建的oracle用户登录,不然会出现莫名的问题。
详细过程:
1. 创建用户和组
------------添加安装过程中需要用到的用户和组,我们设为安装用户根目录为/opt/oracle
$ su -
# groupadd oinstall //创建oinstall组
# groupadd dba //创建dba组,不然是装不上Oracle的
# useradd -g oinstall -G dba -d /opt/oracle oracle //这里-d决定用户根目录
# passwd oracle //修改oracle用户密码
2. 创建目录
-------------我们将把所有东西都安装到在 /opt/oracle 目录下:
su - root
# mkdir -p /opt/oracle/product/9.2.0 //数据库安装地址
# chown -R oracle.oinstall /opt/oracle
另外新建立/opt/data用来存放数据,因此增加:(这在后面安装oracle时会用到,当然到时再建也行。)
su -
#mkdir /opt/data
#chown oracle.dba /opt/data
#chmod 755 /opt/data
3. 系统配置
------------------
a) 设置内核参数:
方法一:编辑/etc/sysctl.conf
#vi /etc/sysctl.conf
添加如下内容,有重复的参数修改即可。
kernel.shmmax = 536870912
#这里设置为物理内存的一半 1G内存的话为:512×1024×1024, 2G 内存的话为:1024×1024×1024。注意要改为字节数!其他的值都不用动。
kernel.shmmni = 4096
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
方法二:上面方法也可以在运行时通过执行下列命令更改内核参数:(两种方法,哪个都行,但注意参数大小就行)
#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) 设置环境变量
这里主要是设置安装用户oracle的登录环境变量,因为oracle数据库最好不要用root帐号安装!oracle的根目录为/opt/oracle,所以
#vi /opt/oracle/.bash_profile
在/opt/oracle/.bash_profile 中添加如下行:
#设置oracle例程名
export ORACLE_SID=ora80
#设置oracle根目录
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
#设置lib库文件位置
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib
#设置tns监听器启动位置
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#设置oracle所有者
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
#添加bin路径
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:$ORACLE_HOME/bin
然后保存,此时用户的环境变量配置完成。
4. 打补丁、安装需要的包:
--------------------------------------------------------------------------------
安装之前要弄明白,为什么要提前安装这些包和补丁。因为linux系统安装程序的依赖性很强,并且不同版本系统安装还有所不同,所有在安装之前一定要弄清楚自己安装的是什么版本的系统。这在打补丁出现问题时才能有针对性去解决。
a)安装之前的检测:
可以通过rpm -qa|grep rpm_name来检查是否安装了必须的包:
主要安装的包有:
compat-db-4.2.52-5.1
compat-gcc-34-3.4.6-4
compat-gcc-34-c++-3.4.6-4
compat-libstdc++-33-3.2.3-61
compat-libstdc++-296-2.96-138
compat-libcwait-2.1-1
openmotif-2.3.0-0.3.el5
openmotif22-2.2.3-18
openmotif-devel-2.3.0-0.3.el5 //在安装盘里有,一般在第三张光盘或者dvd光盘中(用ctrl+f查找)
setarch-2.0-1.1
tclx-8.4.0-5.fc6
tcl-8.4.13-3.fc6
libXp-1.0.0-8.i386.rpm
libXp-devel-1.0.0-8.i386.rpm
giflib-4.1.3-7.1.el5.1.i386.rpm
giflib-devel-4.1.3-7.1.el5.1.i386.rpm
glib-1.2.10-20.el5.i386.rpm
glib-devel-1.2.10-20.el5.i386.rpm
libpng10-1.0.18-2.i386.rpm
ORBit-0.5.17-22.rhel5.i386.rpm
ORBit-devel-0.5.17-22.rhel5.i386.rpm
gtk+-1.2.10-57.fc7.i386.rpm
imlib-1.9.15-6.rhel5.i386.rpm
gnome-libs-1.4.2-9.rhel5.i386.rpm
安装rpm包的命令格式为:
rpm -ivh *.rpm
如果出现no key警告,可在后面添加--force --nodeps
本文后面附录了此次安装可能的包。
也可去此处下载大部分依赖包集合:http://download.csdn.net/source/963257
主要安装的补丁:
p3006854_9204_LINUX.zip 安装前就要打好的补丁
p2617419_210_GENERIC.zip 安装后要打的(这只是一个伴随补丁,只要设置它的环境变量)
p3238244_9204_LINUX.zip 安装后要打的9204的补丁,修复agent错误的补丁.
(http://www.opennet.ru/soft/ora_inst/)
compat-libcwait-2.1-1.i386.rpm LINUX AS 4 的补丁在安装前就要打
compat-oracle-rhel4-1.0-5.i386.rpm LINUX AS 4 的补丁在安装前就要打,但我没安装它
http://oss.oracle.com/projects/compat-oracle/files/RedHat/ 可以版本不同,保证前面几个名词一致。
b) 安装 compat-libcwait-2.1-1.i386.rpm
# rpm -ivh compat-libcwait-2.1-1.i386.rpm
c) 安装补丁(必须):p3006854_9204_LINUX.zip
解压缩此文件,手动或者使用命令解压都行,然后运行解压后文件下的
rhel3_pre_install.sh脚本。
# unzip p3006854_9204_LINUX.zip
# chmod +x 3006854/rhel3_pre_install.sh
# 3006854/rhel3_pre_install.sh
Applying patch...
Patch successfully applied
安装此包时可能会报缺少依赖文件libXp.so.6,光盘中找不到就上网搜。这个就是Xbin.tgz的安装。因为一般服务器上都不装X环境的,不过有些变态的程序却要用到X环境的组件:比如java写的Tidy,oracle的安装程序。 http://ftp.xfree86.org/pub/XFree86/
1)到 http://ftp.xfree86.org/pub/XFree86/,找到最新版本点进去,现在是4.7.0。
2)如果对自己系统不熟悉,可以先下个Xinstall.sh。然后运行 sh Xinstall.sh -check 他会告诉你下哪个编译好的版本适合你的系统。我的是”Linux-ix86-glibc24″。然后点binaries进去,不研究源码,只是拿来用,就下预编译的好了。接着点“Linux-ix86-glibc24”。
3)这有很多tar,注意:你只要下Xbin.tgz就够了(现在是6.6M)
4)tar zxf Xbin.tgz -C /usr/X11 (注:在as5版本中这个文件夹为/usr/X11R6,因此要作相应修改)
5)vi /etc/ld.so.conf,加入/usr/X11/lib
6)ldconfig
d) 推荐网址:
http://www.city-fan.org/ftp/contrib/yum-repo/rhel5/i386/
http://rpmfind.net/linux/RPM/index.html
http://rpm.pbone.net/
下面的包可在http://www.city-fan.org/ftp/contrib/yum-repo/rhel5/i386/中找到。其他的就在系统光盘中搜索吧~~~
libpng10-1.0.18-2.i386.rpm
ORBit-0.5.17-22.rhel5.i386.rpm
ORBit-devel-0.5.17-22.rhel5.i386.rpm
imlib-1.9.15-6.rhel5.i386.rpm
gnome-libs-1.4.2-9.rhel5.i386.rpm
e) 创建链接:这个链接很重要,不然后面会报错。会提示你无法找到libstdc++-libc6.1-1.so.2;
# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2
到这你可以能会说前面的两个补丁还没打,请别着急,后面会用到它们的。好,我们继续...
5. 开始安装oracle
--------------------------------------------------------------------------------
0) 正式安装oracle之前,还要保证前面都已做了配置,然后重新启动,使用户环境变量配置生效。
之后使用oracle用户登录。
安装有两种方式:下载压缩包安装和光盘安装。
1)准备工作
下载压缩包安装:
(a)download oracle 9i
http://www.oracle.com/technology/software/products/oracle9i/htdocs/linuxsoft.html
解压
$ zcat ship_9204_linux_disk1.cpio.gz | cpio -idmv
$ zcat ship_9204_linux_disk2.cpio.gz | cpio -idmv
$ zcat ship_9204_linux_disk3.cpio.gz | cpio -idmv
(b) 请重启X然后用oracle登陆系统, 否则会出现一些列的错误,如:xhost +、环境变量、etc
$ Disk1/runInstaller
光盘安装:
主要是要装载光盘内容,然后运行runInstaller进入安装界面。
(a) 装载光盘:
在/mnt/下建立一个装载区,然后装载
su - root
#mkdir /mnt/cdrom
#mount /dev/hdc /mnt/cdrom
(b)运行安装:
注意此时要使用oracle帐户,并且不要在/mnt/cdrom/目录下运行runInstaller,不然会报错,要用全路径名运行。具体原因可以查看光盘自带的index.html帮助文档。
同时要把语言设为en_us,不然安装界面会出现乱码,因为安装界面全是英文。
su oracle
$cd
$export LANG=en_us
$/mnt/cdrom/runInstaller
(c)安装过程中没有特别说明的均按默认设置,根据界面提示,然后点 Next 或 OK即可.
Oracle install group : oinstall
Global Database Name : ox0spy.org (可根据你的情况填写)
这个过程中还会出现两次提示,让你运行指定目录下的脚本,根据提示做就可以了。
下面是详细的过程说明:
i)Welcome 欢迎界面:next
ii)Inventory Location: next
iii)UNIX Group Name : oinstall,next
此时如果是第一次安装,会提醒运行/tmp/orainstRoot.sh脚本。切换到root用户运行此脚本,然后返回提示框点击Continue.
su root
sh /tmp/orainsrRoot.sh
IV)File Location: 由于之前在用户环境变量里已做好配置工作了,因此这里出现的路径应该是配置的路径。如果与配置的不一致,就要检查用户配置和创建用户时的根目录了(要是出错原因往往在此两方面)。next
V)Available Products: 这里提示安装oracle9i产品,是具体要求吧。我们这里选择第一项,数据库版本。其他的如集群版本、客户端版本等。next
Vi)Installation Types: 安装类型,默认的,企业版。next
Vii)Database Identification:数据库sid和全局名称的确认。sid会自动获取来自用户环境配置文件中的设置。全局名称一般与sid保持一致,便于识别。next
Viii)Database File Location:数据文件定位,这就是我们之前创建data文件夹的目的。next
iX)Database Character Set:数据库字符集设定,我们自定义设为Simplifid Chinese ZGS16GBK.next
X)Summary:这里会提示要准备安装的组件。next
Xi)Install:安装进程页面,这里才开始安装。一般来说需要30分钟的时间。由于光盘分为3张,因此要频繁更换光盘,使用mount和umount挂载和卸载光盘。
su root
#umount /mnt/cdrom
#mount /dev/hdc /mnt/cdrom
安装过程中会有两个提示,需要root帐号运行的命令,按要求运行即可。
Xii)Configuration Tools:安装完link之后,出现配置工具界面。agent服务不能配置成功。此时不要退出此安装界面,待四个服务完全配置成功后再点击next。下面解决这个配置问题:
·现在安装到Configuration Tools了,如果在这出现错误,提示Configuration Tools安装
失败,不要着急,我们还有两个补丁没打呢. 其实准确的说是一个补丁,
p2617419_210_GENERIC.zip只是 一个伴随补丁, 手动完成就好。
·解决Agent Configuration Assistant安装失败:
解压p3238244_9204_LINUX.zip包,复制lib文件到oracle安装目录下的lib目录,方式如下:注意要在oracle用户下,而不是root用户。
su oracle
$ 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 安装失败
$ 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 注册信息,时间比较常,大概10几分钟哦。之后,安装也就结束了.
================================================================================
================================================================================
==================================================
*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
2. Oracle 9i Patch
==========================
p2617419_220_GENERIC.zip
p3006854_9204_LINUX.zip
p3238244_9204_LINUX.zip
http://www.opennet.ru/soft/ora_inst/
compat-libcwait-2.0-2.i386.rpm
compat-oracle-rhel4-1.0-5.i386.rpm
http://oss.oracle.com/projects/compat-oracle/files/RedHat/
3. 几个需要的包所在的路径
===========================
compat-db -- AS5 disk 3
compat-gcc-34 -- 2
compat-gcc-34-c++ -- 2
compat-libgcc -- 3
openmotif -- 3
4. Exception in thread "main" java.lang.UnsatisfiedLinkError:
/tmp/OraInstall2007-12-06_07-00-08PM/jre/lib/i386/libawt.s 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.jav
a: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.s 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
10)提示ip address error:
这个错误一般是在刚装机的时候出现,因为你的网络管理没有指定网址,或者使用了双网卡,解决方法就是指定网址或者把双网卡的IP断分开:如一个设为192.168,一个设为10.*等等。
具体界面化设置:在“系统”-》“管理”-》“网络”里面,在“主机”栏目里把主机地址设为你的固定ip,不然后面会报错:说IP地址冲突。
11)提示$ORACLE_HOME/Apache/Apache/ports.ini 端口冲突,*/ports.ini
出错原因:如果你之前已经安装了一次oracle,然后又重新安装一遍,此时会报错说端口(port)已占用,弹出对话框中会提示您说指定目录下的ports.ini文件,然后你就进入这个文件,你会看到有重复的端口,删除一个port配置就行。
#vi $ORACLE_HOME/Apache/Apache/ports.ini
然后删除重复端口