一 前言:
一直想动手搭建linux 的oracle环境,之前网上搜索安装步骤太麻烦一直没时间搞。今天搞到夜里才算搞定(期间各种报错!),
不容易呀! 不过收获很丰富,现在奉上安装成果:
二 环境:
宿主:WinXP SP3
虚拟机(vmtools已安装): RedHat Enterprise Linux 5
数据库: Oracle9i Database Release 2 Enterprise/Standard Edition for Intel Linux
下载链接:http://hi.baidu.com/noyes_dk/item/c95a5dca2b4d4cdf964452ad (此处注意只要找到指定链接右击迅雷下载链接,不要打开链接!)
三 准备工作:(说明:以下部分内容摘自网络!)
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
也可以在运行时通过执行下列命令更改内核参数:
#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=zhang
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=/opt/app/oracle/9.2.0
export LD_LIBRARY_PATH=/opt/app/oracle/9.2.0/lib:/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib
export TNS_ADMIN=/opt/app/oracle/9.2.0/network/admin
export ORA_NLS33=/opt/app/oracle/9.2.0/ocommon/nls/admin/data
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
exportPATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/app/oracle/9.2.0/bin
4. 打补丁、安装需要的包
--------------------------------------------------------------------------------------------------
a) 补丁说明:
p3006854_9204_LINUX.zip 安装前就要打好的补丁
p2617419_210_GENERIC.zip 安装后要打的(这只是一个伴随补丁,只要设置它的
环境变量)
p3238244_9204_LINUX.zip 安装后要打的9204的补丁,修复agent错误的补丁.
http://www.opennet.ru/soft/ora_inst/
compat-libcwait-2.0-2.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) 打p3006854_9204_LINUX.zip
# unzip p3006854_9204_LINUX.zip
# chmod +x 3006854/rhel3_pre_install.sh
# 3006854/rhel3_pre_install.sh
c) 安装 compat-libcwait-2.1-1.i386.rpm
# rpm -ivh compat-libcwait-2.1-1.i386.rpm
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
d) gnome-libs-1.4.2-7.rhel5.i386.rpm 和 一些依赖包
这些包网上都可以找到,也可以从 http://ox0spy.googlepages.com/download.zip 下载
# 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
e) 创建链接
# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2
到这你可以能会说前面的两个补丁还没打,请别着急,后面会用到它们的
好,我们继续...
四 开始安装oracle
----------------------------------------------------------------------------------
1) 准备工作
解压下载好的文件:
$ 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
2) 请重启X然后用oracle登陆系统, 否则会出现一些列的错误,如:xhost +、环境变量、etc
$ Disk1/runInstaller
没有特别说明的均按默认设置,根据界面提示,然后点 Next 或 OK即可.
Oracle install group : oinstall
Global Database Name : ox0spy.org (可根据你的情况填写)
这个过程中还会出现两次提示,让你运行指定目录下的脚本,根据提示做就可以了
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 安装失败
$ 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了,安装也就结束了...
------------附上安装界面:
五 遇到的错误及解决方法:
1. libstdc++-libc6.1-1.so.2 缺失:
Initializing Java Virtual Machine from /tmp/OraInstall2013-04-22_09-22-27AM/jre/bin/java. Please wait...
/tmp/OraInstall2013-04-22_09-22-27AM/jre/bin/i386/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory
解决方法:下载:http://download.csdn.net/download/laoerdan/3422078
安装:rpm -ivh compat-libstdc++-7.3-2.96.118.i386.rpm
2. Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost: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)
解决方法:
A 以root用户登录
输入命令xdpyinfo,记录下里面的name of display:后的字符串,如 name of display:127.0.0.1:1.0
在执行xhost +命令(使得所有客户都可以访问)
返回信息为:
access control disabled,clients can connect from any host
如果xhost +不能执行,可以输入命令export DISPLAY=:0执行一下
再执行xhost +
xhost + ip (name表示那个ip机器可以使用该服务)
B 以oracle用户登录
如果前面root登录下执行xdpyinfo后的name of display:后的字符串是127.0.0.1:1.0
那么在该oracle用户下执行一下export DISPLAY=:1.0
然后再执行xdpyinfo命令,如果能出现信息说明你已经成功了!
3. Font specified in font.properties not found(气死我了!!!)
解决方法:
$ unset LANGUAGE
$ export LANG=en
$ export LC_ALL=en_us
$ ./runInstaller
4.XIO: fatal IO error 104 (Connection reset by peer) on X server ":1.0"
after 0 requests (0 known processed) with 0 events remaining. --真TM郁闷 睡觉!!!
解决方法:这个步骤是我用Putty链接执行时曝出的,第二天早上直接使用RedHat terminal 没报。。。
5. 运行dbca和netca报错
/opt/app/oracle/jre/1.1.8/bin/../lib/i686/native_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
解决方法:
Case:JRE 的版本不对, Oracle 一般使用的JRE是1.1.8到$ORACLE_BASE/jre 目录下,发现Oracle本身已经有1.3.1版的JRE
#ls $ORACLE_BASE/jre
1.1.8/ 1.3.1/
Fix:只要改变一下链接使用1.3.1的JRE就可以了。(可以查看dbca的script)
1. $cd $ORACLE_HOME ; mv JRE JRE.bak (此JRE目录是1.1.8 的符号链接)
2. $ln -s $ORACLE_BASE/jre/1.3.1 $ORACLE_HOME/JRE
3. $cd $ORACLE_BASE/jre/1.3.1/bin
4. $ln -s $ORACLE_BASE/jre/1.3.1/bin/.java_wrapper jre
OR: #ln -s Java jre
5. $cd i386/native_threads
6. $ln -s java jre
六 总结
本篇文章仅供参考,遇到问题请谷哥、度娘!
-------------------------------
Present By Dylan.