FreeBSD5.2中成功安装oracle9i手记

发表于:2007-05-26来源:作者:点击数: 标签:
无可否认FreeBSD是最优秀的操作系统之一,但缺少大型商业 数据库 的支持阻碍了FreeBSD走向高端和企业应用, Oracle 作为数据库的领头雁,如果能够在FreeBSD上安家,则是我等FreeBSDFANS的一个鼓舞。经过两天的努力并参考了一个俄文网站的关于在FreeBSD上安装

无可否认FreeBSD是最优秀的操作系统之一,但缺少大型商业数据库的支持阻碍了FreeBSD走向高端和企业应用,Oracle作为数据库的领头雁,如果能够在FreeBSD上安家,则是我等FreeBSD FANS的一个鼓舞。经过两天的努力并参考了一个俄文网站的关于在FreeBSD上安装ORACLE8i的介绍,成功地在FreeBSD5.2上安装的ORACLE9i。以下是安装手记。 
一 内核配置 
# Add for oracle 
options NBUF=2048 
options MAXDSIZ="(1024UL*1024*1024)" 
options MAXSSIZ="(1024UL*1024*1024)" 
options DFLDSIZ="(1024UL*1024*1024)" 

options SYSVSHM 
options SHMMAXPGS=65536 
options SHMMIN=2 
options SHMMNI=256 
options SHMSEG=256 

options SYSVSEM 
options SEMMAP=512 
options SEMMNI=512 
options SEMUME=512 
options SEMMNS=1024 
options SEMMNU=512 
options SEMMSL=256 
options SEMOPM=256 

options SYSVMSG #SYSV-stylmessage queues 
options MSGMNB=8192 
options MSGMNI=256 
options MSGSEG=8192 
options MSGSSZ=16 
options MSGTQL=128 
# Add end 
另外将maxusers设为512,我在定制内核时选择的是ULE调度器,现在ULE已经是默认的调度器了。 
二 系统配置 
1 SWAP分区大小为1G,RAM256M,ORACLE_HOME要求有5G以上空间。 
2 安装Linux仿真环境。 
必须安装linux_base-7.1和linux_devtools-7.1两个PKGS,但我在安装时发现从ports已经无法安装devtools-7.1了,所以被迫从一个安装了RH7.3的机器中根据两个ports的介绍将整个RH7.3系统CP到了FreeBSD中,如果需要我可以将这个目录?树打好一个tar包提供给和位。无论你如何构建/compat/linux目录树,必须保证在?抡真环境中有ar,as,ld,nm,tr,cpp,chmod,g++,printf,find,chgrp,chown等程序。 
3 调整Linux仿真环境 
a 在/compat/linux/etc中建立mtab到/etc/fstab的链接 
ln -s /etc/fstab /compat/linux/etc/mtab 
b 在/compat/linux/bin中建立到awk,sed,chown的链接 
ln -s /compat/linux/usr/bin/awk /compat/linux/bin/awk 
ln -s /compat/linux/usr/bin/sed /compat/linux/bin/sed 
ln -s /usr/sbin/chown /compat/linux/bin/chown 
以上配置是为了满足ORACLE9i在安装时的一些脚本的要求,我所知道的在运行root.sh时用到以上的配置,但也可以在运行前修改这个脚本,我安装时用的是后??,不知是不是这个原因导致了后面会讲的一个错误。 
c 在/compat/linux/bin中建立arch可执行文件 
内容为: 
#!/compat/linux/bin/bash 
echo i686 #根据你的机器是i586还是i486 
打上可执行标记: 
chmod +x arch 
4 打开linux仿真支持,修改rc.conf文件也可以kldload linux模块 
enable_linux="YES" 
5 mount linux proc文件系统 
mkdir /compat/linux/proc 
mount -t linproc /dev/device /compat/linux/proc 
第二步可以放入/etc/fstab文件中在开机时自动截入 
6 添加oracle用户组和用户 
pw groupadd -n dba -g 94 
pw groupadd -n oinstall -g 95 
pw useradd -n oracle -u 94 -c "Oracle Daemon" -d /home/oracle -s 
/compat/linux/bin/bash -g dba -G oinstall,wheel 
7 配置oracle用户环境 
mkdir /home/oracle 
chown oracle:dba /home/oracle 
cd /home/oracle 
编辑.profile配置oracle用户环境: 
PATH=/compat/linux/bin:/compat/linux/sbin:compat/linux/usr/bin:/compat/linux/usr/sbin:/home/oracle/920/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin; export PATH 
ORACLE_BASE=/home/oracle; export ORACLE_BASE 
#下面一个是安装oracle的目录 
ORACLE_HOME=/home/oracle/920; export ORACLE_HOME 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH 
ORACLE_SID=ORCL; export ORACLE_SID 
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33 
export DISPLAY=:0 
三 安装准备 
下载oracle9i(9.2.0) for linux的三个文件在一个足够大小(>2G)空间解压缩最后得到三个目录:Disk1,Disk2,Disk3。 
四 安装 
1 以oracle用户登录 
2 进入X 
startx 
3 在X中打开一个终端窗口,在窗口中运行安装程序 
cd /path/Disk1 
./runInstaller 
安装程序开始运行,出现界面后按提示选择进行安装,这与安装典型的 
windows程序一样,安装时默认的临时文件在/tmp目录中,此时进入/tmp可看见oracle9i的安装目录和一些临时文件。 
4 安装时的必须的手工干预 
a 在刚开始安装会有一个窗口提示运行一个脚本,这时可在另一个终端窗口中先以root身份在/compat/linux/etc中创建一个名为oraInst.loc的文件并将属主设为oracle 
cd /compat/linux/etc 
touch oraInst.loc 
chown oracle:dba oraInst.loc 
然后以oracle身份运行脚本,之后继续安装。 
b 在安装部分完成后在连接数据库的过程中有一个错误出现(与ins_ctx.mk有关),此时可选忽略,不会引响数据库的基本功能,但在Agent配置时会出错,其它正常。我不知道是否每一次安装都会有这个错误,也不知道是什么原因造成了这个错误。 
    c 最后一个无需手工干预的地方在数据库配置以前要以root身份运行$ORACLE_HOME/root.sh,此时观察其输出,不能有任何错误,如果有则是因为什么程序找不到造成的,可以修改这个脚本将指定所提示的程序的正确路径就可以了。 
  5 安装后根据需要进行数据库配置,这与WINDOWS中是一样的。 
 五 安装后启动数据库 
  1 重启系统 
  2 以oracle身份登录 
  3 启动数据库 
  在初次启动数据库时,要先将initORCL.ora这个文件(在你指定的全局数据名所在的目录下的pfile目录中)复制到$ORACLE_HOME/dbs目录中,并在dbs目录中将oraPW.(全局名)的一个文件复制一份名为oraPW,然后就可以正常启动数据库了。 
 六 总结 
  从使用来看,直接在机器上使用sqlplus进行查询,感觉不到有什么不同,至于效率还未测试。不足之处请各位批评,并请高手修正安装中的错误。 
  谢谢。

 hello_unix 回复于:2004-02-03 13:15:09
高人,顶一下

 kevinwqw 回复于:2004-02-04 08:55:48
版主,精华啊!

 unix菜鸟 回复于:2004-02-04 10:11:15
谢谢!收藏先.

 皮夹子 回复于:2004-02-04 14:17:55
好啊!
去年我试图在freebsd4.7上装oracle9i,历时两月有余而未果,不得已放弃了freebsd而改用RH linux,至今难以释怀。。。
楼主最好找一位很懂oracle的人,比如OCP,着重于稳定和性能,联手测试一下你的成果,如果确认oracle9i在freebsd下可用,那真算上contribute to FreeBSD啦! :D

这就去搞FreeBSD5.2也。。。

 wolfop 回复于:2004-02-04 15:09:38
谁试试看,表示怀疑,感觉是把那个oracle8i的安装到FREEBSD改了改就作为安装oracle 9i的东西,很多人这样试过,但是不成功。oracle的安装脚本如果不修改我记得是拒绝安装的。

 藏马 回复于:2004-02-05 18:54:16
问问搂主装好以后运行效果如何?

 NightKids 回复于:2004-02-05 20:29:22
不怀疑~!!
请看 FreeBSD handbook
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu-oracle.html

 kevinwqw 回复于:2004-02-06 09:10:18
那是针对8.0.5的,8i和9i我还没有成功过,这两天FreeBSD老出安全问题,不停的make world了,郁闷!有空一定要测试一下

 jxngzhl 回复于:2004-02-06 11:34:57
[quote:ff2977ddc3="藏马"]问问搂主装好以后运行效果如何?[/quote:ff2977ddc3]
Good! :D

 Fun-FreeBSD 回复于:2004-02-06 17:22:37
唉,这么费劲,我宁可装个Linux

 wmeng 回复于:2004-02-08 16:53:53
完全同意
如果不是官方授权或者通过验证,还是没有太多的企业会用
不知道哪天才能够实现我们的梦想
在目前的状态下,我肯定不会选择这种方法的,最多是练习一下

 wolfop 回复于:2004-02-08 19:30:05
[quote:652d33cdb6="NightKids"]不怀疑~!!
请看 FreeBSD handbook
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu-oracle.html[/quote:652d33cdb6]
当然怀疑,跑8.x一直有人成功,9i除了楼主我就没有看到有成功的案例。handbook很多人都看过,装9i也有很多人尝试过,但是...

 gubu 回复于:2004-02-10 09:18:27
[quote:74f7215625="wolfop"]
当然怀疑,跑8.x一直有人成功,9i除了楼主我就没有看到有成功的案例。handbook很多人都看过,装9i也有很多人尝试过,但是...[/quote:74f7215625]
用怀疑的时间,试试看 :D 
[quote:74f7215625="jxngzhl"]
..........不足之处请各位批评,并请高手修正安装中的错误[/quote:74f7215625]
申明不是什么传说中的高手或高高手之类
废话下次再续,切入正题---->
xngzhl兄的原文就安装来说,分成了4部分,如下:
1,内核配置
2,系统配置
3,安装准备
4,安装

 [1,内核配置] 中要说明的
[color=red:74f7215625]a[/color:74f7215625],一切以自己机器内存数为基础进行相应设置
[color=red:74f7215625]b[/color:74f7215625],ULE在5.2.1-RC里也不是默认的调度器。必须在内核里自己加上

 [2,系统配置] 中要说明的
[color=red:74f7215625]a[/color:74f7215625],linux_devtools 可以直接从port(ports/devel/)安装。
[color=red:74f7215625]b[/color:74f7215625],在/compat/linux/bin中建立到awk,sed,chown的链接
原文中用的是 ln -s /compat/linux/usr/bin/awk /compat/linux/bin/awk 
而我在实际安装中/compat/linux/usr/bin/awk 根本不存在
我想可能是jxngzhl笔误 :) ,应该是 :
ln -s /usr/bin/XXX /compat/linux/bin/XXX

 [3,安装准备] 没什么好说的,自便

 [4,安装]
 jxngzhl兄是直接用oracle这个用户startx的,对他后面的步骤没什么问题
我要说得是,如果你是用root su成oracle的话,在准备安装前,先xhost +local:oracle,export DISPLAY=:0
还有,[quote:74f7215625="jxngzhl"]a 在刚开始安装会有一个窗口提示运行一个脚本,这时可在另一个终端窗口中先以root身份在/compat/linux/etc中创建一个名为oraInst.loc的文件并将属主设为oracle 
[/quote:74f7215625]
这个我没遇到。
后面的安装完毕,启动数据库时,直接
SQL>STARTUP NOMOUNT PFILE = '/oracle/home/path/dbs/init.ora';
成功!

 kevinwqw 回复于:2004-02-11 15:47:03
安装的时候关于java怎么设置?我安装时老是提示关于java的一些错误
[FreeBSD@oracle:Disk1]$Initializing Java Virtual Machine from /tmp/OraInstall2004-02-11_04-55-22PM/jre/bin/java. Please wait...
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2004-02-11_04-55-22PM/jre/lib/i386/libawt.so: libXp.so.6: ??!'?(0????????(.???: ??????????(0??
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1419)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1335)
        at java.lang.Runtime.loadLibrary0(Runtime.java:749)
        at java.lang.System.loadLibrary(System.java:820)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:53)
        at java.security.Aclearcase/" target="_blank" >ccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:41)
        at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
        at java.awt.Component.<clinit>(Component.java:356)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)

我的java版本
[FreeBSD@oracle:oracle]$java -version
java version "1.4.2-p5"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-p5-oracle_13_dec_2003_19_37)
Java HotSpot(TM) Client VM (build 1.4.2-p5-oracle_13_dec_2003_19_37, mixed mode)

 gubu 回复于:2004-02-11 17:56:15
检查环境变量 LD_LIBRARY_PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

 kevinwqw 回复于:2004-02-12 09:12:35
这个是没有错的,我的设置文件
# Oracle DataBase enviroment
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=american_america.ZHS16GBK
export NLS_ADMIN=$ORACLE_HOME.network/admin
export ORACLE_TERM=vt100
export ORACLE_SID=orcl
#export PATH=$PATH:$ORACLE_HOME/bin:/compat/linux/sbin:/compat/linux/bin:/compat/
linux/usr/sbin:/compat/linux/usr/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/compat/linux/lib
export LIBPATH=$LIBPATH:$ORACLE_HOME/lib32:$ORACLE_HOME/lib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/JRE/1.1.8/lib:$ORACLE_H
OME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib

除了PATH因为有点问题,我在安装时手工输入外,其余的在linux和AIX下都已经验证过的

原文转自:http://www.ltesting.net