1.Linux 兼容 其实在 FreeBSD 下安装 Oracle 9i ,实质上是在 Linux 下安装。不过是由 FreeBSD 提供一个兼容环境而已。 应该说 FreeBSD 提供的 Linux 环境已经足够好了,但是我们还是需要做点工作: 建立 /compat/ linux /etc/m" name="description" />

FreeBSD 5.0RC1下Oracle 9i安装日记(D3)

发表于:2007-06-07来源:作者:点击数: 标签:
Linux )" name="GENERATOR"/> 1.Linux 兼容 其实在 FreeBSD 下安装 Oracle 9i ,实质上是在 Linux 下安装。不过是由 FreeBSD 提供一个兼容环境而已。 应该说 FreeBSD 提供的 Linux 环境已经足够好了,但是我们还是需要做点工作: 建立 /compat/ linux /etc/m
Linux)" name="GENERATOR"/>

1. Linux兼容

其实在FreeBSD下安装Oracle9i,实质上是在Linux下安装。不过是由FreeBSD提供一个兼容环境而已。

应该说FreeBSD提供的Linux环境已经足够好了,但是我们还是需要做点工作:


    1. 建立/compat/linux/etc/mtab

#cat /etc/fstab | grep -v '^#' | grep -v cd9660 | grep -v proc | grep -v swap | grep -v devfs > /compat/linux/etc/mtab

他生成的内容是:

/dev/ad0s2a / ufs rw 1 1

/dev/ad1s1 /u01 ufs rw 1 1

我生成的内容是:

/dev/ad0s1a / ufs rw 1 1

/dev/ad0s1e /tmp ufs rw 2 2

/dev/ad0s1f /usr ufs rw 2 2

/dev/ad0s1d /var ufs rw 2 2

    1. 创建链接

#ln -s /usr/bin/awk /compat/linux/bin/awk

#ln -s /usr/bin/sed /compat/linux/bin/sed

#ln -s /usr/bin/chown /compat/linux/bin/chown


    1. 创建/compat/linux/bin/arch

#cat > /compat/linux/bin/arch

#!/compat/linux/bin/bash

echo i686

^D

然后给它执行权

#chmod +x /compat/linux/bin/arch

如果你愿意,给它也来个链接也是不错的

#ln -s /compat/linux/bin/arch /bin/arch


2. 修改KERNEL

#cd /usr/src/sys/i386/conf

#cp GENERIC ORACLE

#cat >> ORACLE

options SEMMAP=128

options SEMMNI=128

options SEMMNS=32000

options SEMOPM=250

options SEMMSL=250

options SHMMAXPGS=65536

options SHMMAX=1073741824

options SHMMNI=4096

options SHMSEG=4096

options MAXDSIZ=”(1024*1024*1024)”

options MAXSSIZ=”(1024*1024*1024)”

options DFLDSIZ=”(1024*1024*1024)”

^D

*注,好象高手们都比较喜欢纯命令行,连个VI也不舍得用。

#config ORACLE

#cd ../compile/ORACLE

#make depend install

#reboot

如果你象我一样还没编译过内核,可能会出现如下提示:

You must build a kernel first

这时,只需要执行:

就是这句:#make depend install改成:

#make depend

#make

#make installOK了。


3. 设置Oracle的用户环境变量

昨天安装时只是创建了oracle用户,对组并没有细分。现在也补上吧。应该是个好习惯。

#cat >> /etc/group

oraoper:*:97:oracle

oradb:*:98:oracle

oracle:*:99: #这句因为加oracle用户时自动加了,所以我并没有写。

^D

#adduser就略过了

#mkdir -p /home/oracle同上

#chown -R oracle:oracle /home/oracle这句好象我当时没有执行,加上

接下来是关键了

#cat > /home/oracle/.profile

ORACLE_HOME=/usr/opt/ora9i/product/9.2.0.1.0

ORACLE_SID=ORACLE

PATH=$ORACLE_HOME/bin:$PATH

PS1='oracle-freebsd> '

export ORACLE_HOME ORACLE_SID PATH PS1

^D

如果你没有DNS,需用要在hosts文件里加上

#echo “<your IP address> <hostname>” >> /etc/hosts


准备好了,现在可以进行安装了。

cd /usr/local/ora9i/Disk1「我把安装包解到这里了」


#xhost +local:oracle #oracle用户本地访问X的权利

#su – oracle

#export DISPLAY=:0

#cd /usr/local/ora9i/Disk1

#./runInstaller

我在运行runInstaller时出现了一个错误:

ELF binary type=”0” not known.

./runInstaller:1:Syntax error:”(“unexpected.

经过google+测试,可以运行#kldload linux来解决『这个应该在内核编译时指定选项来搞定吧,有时间试一下。』

果然可以安装了,选择Custom方式,只安装Oracle 9i Database,安装过程出现15处错误,全部ignore了。网上有很多人说他们在Linux上安装时也出现这样的错误,诸如:

Error in invoking target ctx_on of make file:

/usr/opt/ora9i/product/9.2.0.1.0/rdbms/lib/ins_rdbms.mk

不过还好,全部安装完毕。

结尾的时候运行Net Assistant出错,Agent时出错,创建数据库时出错。(是我echo i586的错误)

运行sqlplus时,提示:libclntsh.so找不到

果然在lib里没有它,


Brian C. Ledbetter说需要:

#LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH

我一开始采用的是在安装文件里「安装文件在/usr/local/ora9i」执行

find . -name 'libclnt*' -print

结果发现在

./Components/oracle.swd.oui/2.2.0.12.0/DataFiles/Expanded/bin/linux/libclntsh.so[.9.0]

sqlplus终于可以运行了,不过还是有错误:

oracle-freebsd> sqlplus /nolog

....

SQL> connect / as sysdba

TNS: lost contact

留给第四天吧。


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