在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命令將新核心設為啟動核心。這一步一定要做,如果生成的新核心有錯,可以用原來的核心啟動計算機??捎胕pc -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
?。狿ATH=$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
?。狾RACLE—HOME=/home/oracle/product/8.0.5
?。狾RACLE—BASE=/home/oracle
?。狾RACLE—OWNER=oracle
?。狾RACLE—SID=oracle8
?。狾RACLE—TERM=386
?。狶D—LIBRARY—PATH=/home/oracle/product/8.0.5/lib
?。猅MPDIR=/var/tmp
?。猠xport 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\network\admin目錄下,在開始選單中運行net easy configure并指明ODBC連接的字串名和運行SQLPLUS需要的主機字串(Host String),就可以從客戶端連上服務器,通過ODBC進行數據庫的開發。
2.如果用戶使用Delphi為開發工具,可在BDE設定中指明有遠端Oracle服務器,設定時僅指明數據庫系統的網絡協議為TNS(Transparent Network Substrate,請不要使用TCP),然后進入數據庫桌面,就可以訪問遠端Oracle數據庫上的數據了。