在Linux下使用Oracle 8以前,应当安装Oracle 8,但Oracle公司提供的安装文档较为简单。笔者借鉴其在Unix操作系统下的安装方法,得出了在Linux上安装Oracle 8的方法,此方法并不一定是最好的,使各位读者用上Oracle 8才是本文的目的。
前期准备
假定安装环境是Red Hat Linux,请在安装前确认Linux的核心版本为2.0.36及以上。
1.以Root用户登录进入系统,创建用户oracle和组dba,这是Oracle默认的安装用户。创建安装用户后,用tar -xvzf 将压缩文件解压到一个指定的目录,本文假定为/oracle,因为tar进行数据归档与用户本机的用户ID、组ID不同,所以要运行chown -R oracle:dba 以更改文件属性。
2.由于Oracle本身对共享段的要求,用户必须重新手工生成核心,以便共享段的设定满足安装要求。为生成核心,用户应当安装Linux操作系统的源代码,编辑/usr/src/linux/include/shmparam.h,将#define SHMMAX 0x002000000一行的0x002000000(32MB)改为256MB以上,然后在/usr/src/linux下运行make dep、make clean、make bzImage生成核心,使用linuxconf命令将新核心设为启动核心。这一步一定要做,如果生成的新核心有错,可以用原来的核心启动计算机。可用ipc -ml查看共享段的设置是否满足要求。当共享段大于2GB时,查看到的值是负数。
3.安装相应的egc包。假定安装光盘mount在/mnt/cdrom上,用命令modprobe isofs使操作系统能处理光盘的文件系统,然后运行mount -t iso9660 /dev/cdrom /mnt/cdrom,如在安装后修改了/etc/fstab,可不进行这一步操作。进入相应的RPMS目录,安装以egc开始的包,采用的安装命令为rpm -ivh <包名>。
设定安装的环境变量
安装前,应该设定相应的环境变量。修改用户Oracle的.bash—profile文件,设定相应的环境变量。由于安装系统时需要Root用户,也要有这些环境变量,故将其放在/etc/profile内,加*号为Oracle专有的环境变量,示例如下:
# /etc/profile
# System wide environment and startup programs
# Functions and aliases go in /etc/bashrc
JAVA—HOME=/usr/local/jdk1.1.3
SYBASE=/opt/sybase-11.9.2
DSQUERY=SYBASERDBMS
*PATH=$PATH:$JAVA—HOME/bin:/usr/X11R6/bin:/home/oracle/product/8.0.5/bin
PS1=″u@h:w$″
ulimit -c 1000000
if [ ′id -gn′ = ′id -un′ -a ′id -u′ -gt 14 ]; then umask 002
else umask 022
fi
USER=′id -un′
LOGNAME=$USER
MAIL=″/var/spool/mail/$USER″
CLASSPATH=/usr/local/jdk1.1.3/lib:$HOME/bin
HOSTNAME=′/bin/hostname′
HISTSIZE=1000
HISTFILESIZE=1000
export JAVA—HOME CLASSPATH SYBASE DSQUERY
export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL
*ORACLE—HOME=/home/oracle/product/8.0.5
*ORACLE—BASE=/home/oracle
*ORACLE—OWNER=oracle
*ORACLE—SID=oracle8
*ORACLE—TERM=386
*LD—LIBRARY—PATH=/home/oracle/product/8.0.5/lib
*TMPDIR=/var/tmp
*export ORACLE—HOME ORACLE—BASE ORACLE—OWNER ORACLE—SID ORACLE—TERM
export LD—LIBRARY—PATH TMPDIR
for i in /etc/profile.d/.sh ; do
if [ -x $i ]; then . $i
fi
done
unset i
安装并启动数据库
1.以用户Root登录系统,然后到相应目录运行/oracle/orainst/oratab.sh可生成/etc/oratab文件。用su - oracle切换到用户Oracle,运行/oracle/orainst/orainst就可启动安装命令,安装时注意在这一步不要安装Oracle文档、JDK和智能代理,并且不要创建数据库对象。重新启动/oracle/orainst/orainst安装的RDBMS部份,一般情况下除了输入几个用户定制的口令其余按默认值就可以了。Oracle安装程序开始拷贝文件,拷贝文件过程中,当安装到数据库管理系统(RDBMS)时,用户可从另一终端登录,用ps -ef | grep oracle见到一些Oracle进程已启动。
2.数据库服务器安装完成后,就可以手工启动了。以用户Oracle登录,进入$ORACLE—HOME/bin,运行DBStart就可以启动数据库服务器。运行DBShut就可停止数据库服务器。
如果用户不太熟悉Oracle的网络部份,可将$ORACLE—HOME/network/admin/ora拷贝到/etc目录,在$ORACLE—HOME/bin下运行lsnrctl start就可以启动网络监视进程。
3.为了每一次启动系统时自动启动Oracle或管理员手工指定是否每一次启动时自动启动Oracle,可采用如下方法。以Root登录,进入/etc/rc.d/init.d,手工生成文件Oracle,至于文件的书写格式可参见其余相应文件,示例如下:
#!/bin/sh
# oracle This shell script takes care of starting and stopping
# oracle.
# chkconfig: 2345 80 30
# description: oracle is a RDBMS Server.
# processname: oracle
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[${NETWORKING}= ″no″ ] && exit 0
# See how we were called.
case ″$1″ in
start)
# Start daemons.
echo -n ″Starting oracle: ″
su - oracle /home/oracle/product/8.0.5/bin/dbstart > /dev/null 2>&1
sleep 60
su - oracle/home/oracle/product/8.0.5/bin/lsnrctl start > /dev/null 2>&1
echo
touch /var/lock/subsys/oracle
;;
stop)
# Stop daemons.
echo -n ″Shutting down oracle: ″
su - oracle/home/oracle/product/8.0.5/bin/lsnrctl stop > /dev/null 2>&1
su - oracle /home/oracle/product/8.0.5/bin/dbshut > /dev/null 2>&1
echo
rm -f /var/lock/subsys/oracle
;;
restart)
$0 stop
$0 start
;;
status)
status oracle
;;
)
echo ″Usage: oracle {start|stop|restart|status}″
exit 1
esac
exit 0
客户端配置
为了能使用Windows下的一些开发工具,可以按如下方法进行:
1.在Windows下安装Oracle客户端软件(可以采用Oracle 7.xx的Windows客户端软件),安装完成后,将Linux下的/etc/tnsnames.ora拷到Windows下的$ORACLE
etworkadmin目录下,在开始选单中运行net easy configure并指明ODBC连接的字串名和运行SQLPLUS需要的主机字串(Host String),就可以从客户端连上服务器,通过ODBC进行数据库的开发。
2.如果用户使用Delphi为开发工具,可在BDE设定中指明有远端Oracle服务器,设定时仅指明数据库系统的网络协议为TNS(Transparent Network Substrate,请不要使用TCP),然后进入数据库桌面,就可以访问远端Oracle数据库上的数据了。