在RedHat7.3上成功安装Oracle Database 9iR2已经有一段日子了。当时,RedHat7.3刚刚出来,Oracle9iR2也是“初出茅庐”,无论是中文网站还是英文网站都没有关于两者相结合的资料,英文网站还好些,至少有基于RedHat7.2/7.1安装oracle9i的资料,中文网站上则只充斥着RedHat6.x+oracle8.x。俺只好自己摸索,还好,经过一个多星期奋战,“理论与实践相结合”,终于结出果实--安装成功了。。。累死俺了。。。从来没有安装一个东西这么久过,太打击俺的自信心了:)相信有不少人与俺有相似的经历,为了让后来者少走些弯路,少浪费点时间(有一周的时间干什么不行呀,看碟、打游戏、泡MM、睡觉。。。哈哈),俺就把安装的过程给“演示”一遍吧。。。不过,俺没有那么多的精力,也没有那么好的条件,更没有那么好的文采,所以俺本着“GPL的原则”从网上COPY了一份“在Linux下安装Oracle Database 9i”(原文见:http://www.ccidnet.com/tech/guide/2001/11/20/58_3761.html)进行修改而成此文。。。原文中有些错误,本文也顺便给予了纠正。原文中的图片是oracle9i版的,与本文要“讲述”的oracle9iR2版不太一样,不过也相差不大,意思都差不多,您就将就着看吧:),好了,别睡了,开始了。。。。
Oracle9i Database Release 2 简称oracle9ir2(俺自己简称的,非官方:))2002年X月X日发布,为岂今为止的最新版。oracle9iR2 实际上是指 oracle9ir2 Database, oracle9ir2 Application Server 和oracle9ir2 Developer Suite的完整集成,不过,在这儿俺把它作为了oracle database release 2的简称了,希望您不要误会(误会了也没事,多看几遍本文就“清醒”了:))。本文将介绍oracle Database 9ir2(又改成正确的称呼了,呵呵)在RedHat7.3下的安装过程,如果你有过安装oracle的经验,本安装过程可以权当快速安装手册;如果你以前从未在RedHat7.3(或Linux)下安装过oracle数据库,那我们就从这篇文章开始熟悉oracle的安装过程。
系统要求:
以下的系统要求适用于典型的oracle安装和创建简单数据库的方式。
内存:
安装Oralce 9iR2软件至少需要512M内存,用以下命令可以查看主机内存大小:
grep MemTotal /proc/meminfo
MemTotal: 900252 kB
900252kB就是你系统的内存大小。
交换区:
交换区的大小一般要求是内存的两倍,至少要求达到400M以上,当然是越大越好,用以下的命令可以查看系统交换区的大小:
/sbin/swapon -s
Filename Type Size Used Priority
/dev/sda6 partition 105221 686976 -1
其中105221就是系统交换区的大小。
光驱:
如果你使用光盘安装oracle9iR2则你的机子上需要8速以上的CDROM,如果你是下载了oracle9iR2的包文件(相信大部分人都是下载的),则不需要使用的CDROM。
硬盘空间:
安装oracle9iR2数据库至少要有2.5GB以上的剩余空间。
临时硬盘空间:
oracle安装程序在安装过程中需要400M以上的临时硬盘空间,建议使用/tmp文件夹作为临时时文件夹,如果/tmp文件没有足够的硬盘(好象一般情况下会有),可以新创建一个文件夹作为安装的临时目录,之后设置环境变量TEMP和TMPDIR指向相应的位置,例如:
使用bash(基本上都是用的这个)
mkdir /home/temp
TEMP=/home/temp ; export TEMP
TMPDIR=/home/temp ; export TMPDIR
使用csh
mkdir /home/temp
setenv TEMP /home/temp
setenv TMPDIR /home/temp
操作系统:
本文将以RedHat7.3为例介绍oracle9iR2的安装过程。注意:请在安装RedHat7.3的时候选择英文安装方式,不要选择中文,否则在安装oracle的时候会遇到乱码。X-Windows是必需的。如果您不知道哪些东西是安装ORACLE的时候需要的,那么,您不妨选择全部安装。
虚拟x-windows软件:
这个软件不是必要的!所谓虚拟x-windows软件指的是可在远程终端允许服务器x-windows的虚拟软件,现在流行的x-windows软件有exceed、x-win32等软件,如果你嫌在控制台安装oracle系统麻烦,可以使用虚拟x-windows软件在远程终端在图形界面下安装oralce9i,本文将以x-win32 5.0为例介绍用虚拟x-windows安装oracle9i的过程。(其实你也可以用VNC进行远程控制来安装,其原理与用虚拟x-windows软件不太一样,不需要用虚拟x-windows软件那样需要进行环境变量的特殊设置,和直接在本机安装是一样的)
配置内核参数
oracle9iR2使用RedHat7.3的共享内存、交换区等资源进行工作,如果你的内核参数设置不能满足oracle的要求,那在安装oracel9iR2或使用过程就会频频出现问题,因此配置系统内核的参数就显得尤为重要和关键了。
内核参数的配置一般在/proc文件夹下配置:
1. 以root用户允许以下命令;
2. 进入目录/proc/sys/kernel;
3. 用cat命令或more命令查看semaphore当前参数的值:
cat sem
命令运行后将会出现如下的结果:
250 32000 32 128
其中, 250 是参数SEMMSL的值,32000是参数SEMMNS的值, 32是参数SEMOPM的值,而128则是参数SEMMNI的值。
4. 用以下的命令可以对上述参数进行修改(实际安装过程中发现,这一步可以省略)
echo SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value > sem
其中SEMMSL_value、SEMMNS_value、SEMOPM_value、SEMMNI_value分别用相应的值进行替换,并且这些值的顺序不能调换
5. 设置共享内存大小,共享内存大小一般设为物理内存的一半,在这里我们假设物理内存为512M则共享内存的值4294967295以此类推,如果你的物理内存是1G则这里的值则是8589934590:
echo 4294967295 > shmmax(至少从我的安装经历来说,这一步是必须的,否则会出问题)
添加用户
oracle在安装和使用中需要用特定用户(非root用户),按照oracle的标准说明是需要添加三个专门用户和用户组,为了简便大家的安装和使用我们把oracle的安装和使用归到一个特定用户来完成。
首先创建oracle用户组,我们架设这个用户组命名为dba:
以root用户登陆系统;
运行groupadd dba命令添加dba用户组;
添加oracle用户:
以root用户登陆系统;运行如下命令:
useradd –g dba –p password –d /oracle –s /bin/bash oracle
运行后系统创建了一个属于dba用户组的用户oracle,密码为password,主目录为/oracle使用bash
这个用户将作为系统的安装和使用指定用户,因此要妥善保存好!
创建安装点(mount point)
oracle9ir2的典型安装需要至少两个安装点:一个安装基本的运行程序,要求至少要有850M的硬盘空间;一个为存放数据库,至少要求有450M的硬盘空间。为了简化安装我们可以把运行程序和数据库装在同一个安装点下。
在你的文件系统上找到有足够空间的分区,在分区下创建文件夹,我们假设这个文件夹为/oracle。
配置系统环境变量
很多网友安装oracle失败都是因为环境变量没有配置正确,环境变量的配置直接影响到以后oracle9ir2的安装和配置,在配置的时候要尤为小心!
配置x-windows变量
确认oracle9i在安装过程中是否使用本地x-windows安装还是远程虚拟x-windows安装,如果需要远程x-windows安装(虚拟x-windows方式,非VNC),则需要配置DISPLAY变量,这个变量用于告诉系统屏幕的图形将输出到什么位置,默认情况下是本机,如果你使用虚拟x-windows进行安装,则在这里指明远程终端的显示情况,比如你远程终端的IP地址是xxx.xxx.xxx.xxx则DISPLAY的变量应设为“xxx.xxx.xxx.xxx:0”后面的“:0”表示该终端的第一个显示器。
确定安装临时目录
前面我们提到过oracle9ir2的安装需要一个临时的可写空间,我们在这里把/tmp作为临时的可写目录。如果你不是使用/tmp作为临时可写目录则需要配置相应的值TMPDIR=/path。
配置oracle的环境变量
下面提供一个例子可以供大家参照使用
export DISPLAY="192.9.200.24:0.0"
export BASH_ENV= $HOME/.bashrc
ORACLE_HOME=/oracle/product/9.2.0; export ORACLE_HOME
ORACLE_SID=oracle; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
TNS_ADMIN=/oracle/config/9.2.0; export TNS_ADMIN
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
ORA_NLS33= $ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH= $ORACLE_HOME/lib;export LD_LIBRARY_PATH
PATH= $PATH:/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/openwin
PATH= $PATH:/opt/local/bin:/opt/NSCPnav/bin: $ORACLE_HOME/bin
PATH= $PATH:/usr/local/samba/bin:/usr/ucb:
export PATH
CLASSPATH= $ORACLE_HOME/JRE: $ORACLE_HOME/jlib: $ORACLE_HOME/rdbms/jlib
CLASSPATH= $CLASSPATH: $ORACLE_HOME/network/jlib
TMPDIR=/tmp;export TMPDIR
umask 022
其中:
ORACLE_HOME为系统软件的安装目录;
ORACLE_SID 为数据库的SID,这里可以自行设置;
NLS_LANG 为数据库的字符集,为了保证数据库能够输出输入数据库,我们需要在这里把字符集设为american_america.ZHS16GBK,其中american_america英文字符集,ZHS16GBK为中文字符集。
以oracle用户登陆系统,
vi $HOME/.bash_profile
把以上环境变量的设置粘贴到文件中,确认相应的内容并修改,存盘退出。
重新登陆oracle用户
使用set|more命令查看oracle用户的环境变量是否生效
CLASSPATH=/oracle/product/9.2.0/JRE:/oracle/product/9.2.0/jlib:
/oracle/product/9.2.0/rdbms/jlib:
/oracle/product/9.2.0/network/jlib
DISPLAY=192.9.200.24:0.0
LD_LIBRARY_PATH=/oracle/product/9.2.0/lib:/lib:/usr/lib:
NLS_LANG=american_america.ZHS16GBK
ORACLE_HOME=/oracle/product/9.2.0
ORACLE_SID=oracle
ORACLE_TERM=xterm
ORA_NLS33=/oracle/product/9.2.0/ocommon/nls/admin/data
OSTYPE=linux-gnu
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:
/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/openwin:
/opt/local/bin:/opt/NSCPnav/bin:
/oracle/product/9.2.0/bin:/usr/local/samba/bin:/usr/ucb:
TNS_ADMIN=/oracle/config/9.2.0
仔细检查一下以上的几项,确保都设置正确了。
安装Oralce9iR2
配置x-windows
oracle9ir2的安装几乎支持所有的x-windows,也支持远程的虚拟x-windows安装,如果你要在本机安装,在控制台上以我们先前创建的oracle用户登陆(注意要先设置好环境变量,并把DISPLAY的值设为空export DISPLAY=””)运行startx命令进入x-windows。
如果需要在远程终端使用虚拟x-windows进行安装,需要在客户端先安装x-win32软件,x-win32的安装过程我们就不多介绍了,安装完成后运行x-win32命令在你的任务栏会出现一个x的标志。使用netterm等终端工具以oracle用户登陆系统,确认环境变量都已经生效并且DISPLAY变量的值为你终端机的IP地址,运行startkde命令启动x-windows,运行完毕后系统会出现一大堆的出错信息,忽略不管,过了几秒后在你的远程终端上会出现Linux的kde界面。
下载oracle安装软件
oracle网站(http://otn.oracle.com)现在提供oracle Database 9ir2 for Linux软件下载,在下载前请仔细阅读他的Licence,这样在今后的使用中才不会有版权问题。在下载前你需要一个otn的账户,申请是免费的,只要简单回答几个问题就可以,oracle9i的安装程序共有三个文件包分别是:
lnx_920_disk1.cpio.gz (553,607,967 bytes)
lnx_920_disk2.cpio.gz (588,817,480 bytes)
lnx_920_disk3.cpio.gz (442,135,815 bytes)
下载完这三个文件后,把这三个文件上传到服务器/oracle目录下,并保证这三个文件的属主是oracle用户。如果你有oracle9ir2的安装CD那就可以省下大把下载时间了。
安装oracle 9ir2 数据库
以oracle用户登陆系统,启动本地x-windows或虚拟x-windows,打开一个控制台窗口,进入到刚才存放oracle文件的目录下,分别使用
gunzip lnx_920_disk1.cpio.gz
cpio -idmv <lnx_920_disk1.cpio.gz
gunzip lnx_920_disk2.cpio.gz
cpio -idmv <lnx_920_disk2.cpio.gz
gunzip lnx_920_disk3.cpio.gz
cpio -idmv <lnx_920_disk3.cpio.gz
命令解包,把三个文件包解压缩成三个安装文件夹分别为Disk1、Disk2、Disk3。
进入Disk1目录
cd Disk1
在控制台窗口敲入
./runInstaller &
运行后会出现一个OUI的图形界面,如下图所示:
点击小图放大
中间绿色的窗口就是oracle的安装图形界面了。
下面我们来进行oracle9ir2最基本的安装,在进入安装界面后点Next进入下一步:
点击小图放大
Source指的是包含oracle产品信息的文件,一般情况下他会自动识别到,如果找不到可以用Browse按钮来手工指定路径。
Destination指的是9ir2将要安装的路径这里就是我们在环境变量里设的 $ORACLE_HOME,如果这一栏里是空白的则要重新检查环境变量中各值的设定是否有误。确认正确后按Next进行下一步:
点击小图放大
这一步有三个安装选项供选择:
oracle9i Database 9.2.0.1,安装oracle9ir2的数据库服务器版本、管理工具、网络服务以及基本的客户端软件;
oracle9i Client 9.2.0.1 ,企业版的客户端软件,网络服务以及开发工具等。
oracle9i Mangement and Integration 9.2.0.1,安装Management Server,管理工具oracle的网络目录、综合服务、网络服务以及基本的客户端软件。
我们选第一项安装oracle9ir2数据库服务器,接着安Next按钮;
点击小图放大
这一步是选择oracle安装的类型,有三个类型供选择Enterprise Edition企业版,Standstard Edition标致版,Custom自定义安装,我们选择企业版的安装,如果你对oracle这一系列的产品比较熟悉的化可以选择Custom自定义安装,按自己的需求选择组件进行安装,确认后安Next进入到下一步;
点击小图放大
这里可以选择一种适合你的数据库模版,一般我们选第一种通用的数据库模版,如果你需要使用数据仓库,则可以使用选择数据仓库的模版进行安装。确认后按Next进入下一步;
点击小图放大
这一步是确认oracle9ir2的SID和全局数据库的名字,SID的值我们在环境变量中已经设好了,所以这里就自动显示了,全局数据库名(Global Database Name)我们可以也指定成和SID的值相同,确认后按Next进入下一步;
点击小图放大
前面我们提到了,数据库的字符类型在数据库超作中是很关键的,这一步就是设置数据库的字符集,前面我们设置的是NLS_LANG=american_america.ZHS16GBK,所以我们选择Simplifiled Chinese ZHS16GBK,按Next进入下一步;
点击小图放大
因为我们在前面选择了Enterprise的版本进行安装,系统会安装oracle Web Server,安装oracle Web Server需要使用JDK,我们使用Browse按钮把JDK的目录指定好以便系统能在安装过程中找到需要的应用程序,确认按Next进入下一步;
点击小图放大
进行完所有选择后,系统会给出一个安装概要,这里列举了你选择安装的组件,确认你要安装的东西都在列表内后,安Install钮进行安装,如果不需要安装其它的程序,则按Exit退出安装界面。
点击小图放大
oracle的安装速度视服务器的性能一般来说需要装30分钟的时间,在安装过程中可能会有对话框弹出,对话框内会有一些需要root运行的命令要求你执行,这时候另外开一个控制台窗口,su成root并运行提示框内的命令,运行完毕后按确定继续安装;
注意了,各位醒一醒,这里要有错误发生了!!!(好兴奋呀:)),当进行到84%的时候,就会弹出个可恶的小框框,说有错误发生了:"Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk",怎么办呢?好办!打开这个文件: $ORACLE_HOME/ctx/lib/env_ctx.mk,把" $(LDLIBFLAG)dl"加到如下位置:
INSO_LINK = -L $(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath, $(CTXHOME)lib $(CORELIBS) $(COMPEOBJS),然后按重试,就可以继续安装下去了。。。
点击小图放大
安装完数据库后系统会运行配置工具对系统进行网络和数据库的配置。配置完成后,系统会自动启动数据库,并开启oracle Web Server。所有配置完后,按Next完成安装。
点击小图放大
如果一切正常,OUI会出现The Installation Of oracle9ir2 Database Was successful.的字样,这表明你的oracle9i数据库安装正常了,如果需要安装其它的内容按Next Install钮进行其它内容的安装,否则按Exit退出安装。
使用oracle 9ir2 数据库
安装完毕后oracle数据库会自动启动,下面我们用实际超作来说明一下oracle 9ir2数据库的启动和关闭。
以oracle用户登陆数据库,开个控制台窗口;
关闭oracle 9ir2 数据库
[oracle@laozei /oracle] $ sqlplus " / as sysdba" //以sysdba用户登陆数据库
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Jul 11 15:35:31 2001
(c) Copyright 2001 oracle Corporation. All rights reserved.
Connected to:
oracle9i Enterprise Edition Release 9.2..1.0 - Production
With the Partitioning option
JServer Release 9.2.0.1.0 - Production
运行shudown命令关闭数据库
SQL> shutdown
Database closed.
Database dismounted.
oracle instance shut down.
SQL>
启动oracle 9i 数据库
[oracle@laozei bin] $ sqlplus " / as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Jul 11 16:00:59 2001
(c) Copyright 2001 oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup
oracle instance started.
Total System Global Area 336356520 bytes
Fixed Size 279720 bytes
Variable Size 268435456 bytes
Database Buffers 67108864 bytes
Redo Buffers 532480 bytes
Database mounted.
Database opened.
SQL>
启动oracle 9ir2监听程序
oracle的监听程序主要是为客户端的连接提供接口
[oracle@laozei bin] $ lsnrctl
LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 11-JUL-2001 16:12:17
Copyright (c) 1991, 2001, oracle Corporation. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
Starting /oracle/product/9.2.0/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 9.2.0.1.0 - Production
System parameter file is /oracle/product/9.2.0/network/admin/listener.ora
Log messages written to /oracle/product/9.2.0/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=laozei)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 9.2.0.1.0 - Production
Start Date 11-JUL-2001 16:12:58
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /oracle/product/9.2.0/network/admin/listener.ora
Listener Log File /oracle/product/9.2.0/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=laozei)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "oracle" has 1 instance(s).
Instance "oracle", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
关闭oracle 9ir2监听程序
[oracle@laozei bin] $ lsnrctl
LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 11-JUL-2001 16:12:17
Copyright (c) 1991, 2001, oracle Corporation. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
The command completed successfully
LSNRCTL>
关闭oracle Web Server
cd $oracle_HOME/Apache/Apache/bin
./stopJServ.sh
/oracle/product/9.2.0/Apache/Apache/bin/apachectl stop: httpd stopped
启动oracle Web Server
cd $oracle_HOME/Apache/Apache/bin
[oracle@laozei bin] $ ./startJServ.sh
/oracle/product/9.2.0/Apache/Apache/bin/apachectl start: httpd started
启动oracle Web Server后默认的端口号是7777
在客户端浏览器地址栏输入http://xxx.xx.xxx.xxx:7777/
如果浏览器出现以下界面则表示oracle Web Server运行正常
后记:
本来我在RedHat7.3上装oracle9ir2的目的是为了编写PHP,谁知道,当我以为万事大吉的时候,却发现PHP不能与oracle相连!原来RedHat7.3自带安装的php4.2.0是不支持oracle的,没办法,只好重新下载安装非rpm格式的PHP安装包,在编译的时候把对oracle的支持选上。而为了以 DSO 方式安装 PHP,我又重新下载编译了Apache。因此,如果你的组合也是Apache+oracle+php的话,最好在装RedHat7.3的时候先不要装Apache与php....
资料引用:
http://www.puschitz.com/
http://www.ccidnet.com/tech/focus/index-1.php3?specname=oracle
哈哈,一看就是“大同小异”,不要骂我呀,只要能够解决问题就行嘛。。。
欢迎访问Laozei的网站http://laozei.onchina.net/:宣传员老贼 实在不想访问也无妨:)
原文请见:http://202.103.69.250/laozei/laozei2/article/redandor.htm
我目前每天在学Oracle8i和Java2-Oracle DBA和Sun CSA,SCEA是我的奋斗目标-为了DBA和SCEA坚定不疑努力着