为Linux配备Oracle 8
在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 {startstoprestartstatus}″ 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数据库上的数据了。