在redhat上安装oracle9i的详细过程

    Oracle9i的安装
    花费了周一和周二两天的时间终于装上了oracle,下面是安转步骤,以备以后参考。
    在rh9(2.4.20-8)上安装oracle9i(oracle9201)。


    1在rh的安装过程中要注意四点
    一是硬盘空间要大一些,rh9全部安装大约需要4.5G的空间,oracle9i数据库大约需要2-2.5G的空间,所以文件分区至少7G吧,太小了容易出问题,越大越好哈。
    二是为了执行Oracle9i标准安装和创建原型(simple prototype)数据库,Oracle建议Oracle9i(9.0.1)服务器至少需要 512M 内存,两倍内存或不少于 400M 的交换 (swap) 空间,我强烈建议设在1G左右,如果swap较小,例如512M,在数据库创建阶段会提示“out of memory”的错误。当然也可以通过建立临时交换文件临时增加交换空间,代替使用原始设备(raw device),方法如下:
    su -
    dd if=/dev/zero of=tmpswap bs=1k count=900000 注:约1G左右
    chmod 600 tmpswap
    mkswap tmpswap
    swapon tmpswap
    取消临时交换空间,可以执行以下命令:
    su -
    swapoff tmpswap
    rm -rf tmpswap
    三是rh9要安装英文的,在安装时有两次选择机会,最好是两次都安装英文的。我在安装时第一次选择中文,第二次选择英文,oracle还是有乱码,注销后以英文环境登陆都不行。所以建议第一次选英文,第二次选英文和中文两种,但是安装oracle时必须是英文环境。
    四是要多安装一些开发包,因为后续安装时可能需要,只要你有空间完全可以全部安装。


    2创建oracle用户和组
    su -
    groupadd oinstall # group owner of oracle files
    groupadd dba #group of users to be granted with SYSDBA system privilege
    groupadd -g oinstall -G dba oracle
    passwd oracle


    3准备oracle文件目录
    su -
    mkdir -p /opt/ora9/product/9.2
    mkdir /var/opt/oracle
    chown oracle.dba /var/opt/oracle
    chown -R oracle.dba /opt/ora9
    注:我第一次安装出现问题,就把or9/删除了,又重新mkdir,但是忘了chown,结果再以oracle用户安装时提示没有目录操作权限。


    4安装支持软件包
    su -
    运行以下命令,检查开发包是否安装
    rpm –q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
    如果其中任何一个没有安装,例如package cpp is not installed,则插入rh9的安装盘,cdrom的挂载命令是
    mount -t iso9660 /dev/cdrom /mnt
    在RPMS文件夹中找的cpp时则运行以下命令安装
    rpm –ivh cpp-3.2.2-5.i386.rpm
    注:不同的rh版本中cpp的版本也是不一样的


    5设置内核参数,调节信号灯及共享内存
    打开/etc/sysctl.conf文件,将以下数据写到末尾并保存
    kernel.shmmax = ?
    注:为了安装 oracle9i(9.2.0),需要增加所有rh版本的linux服务器的最大共享内存(maximum shared memeory)。否则oracle数据库配置助手(the Oracle Database Configuration Assistant)会显示如下错误信息:
    ORA-27123: unable to attach to shared memory segment unable to attach to share memory segment
    kernel.shmmni = 4096
    kernel.shmall = 2097152
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024 65000
    建议关于net.ipv4.ip_local_port_range不要改动,可以用cat /proc/sys/net/ipv4/ip_local_port_range看到rh9对这个所定义的范围已经符合,而且端口范围比这个小。
    其中kernel.shmmax是共享内存段的最大尺寸,kernel.shmmin是共享内存段的最小尺寸,进入/proc/sys/kernel可以用以下命令查看其数值。
    cat shmmax
    cat shmmni
    cat shmall
    而kernel.shmmax的计算方法一般是RAM(K)*1024*2,RAM的数值可以用以下命令查看。
    grep MemTotal /proc/meminfo
    MemTotal:        XXXX KB
    关于kernel.sem的数值,其中250是参数SEMMSL的值,32000是参数SEMMNS的值,100是参数SEMOPM的值,128则是参数SEMMNI的值。
    接下来,打开/etc/security/limits.conf文件,将以下数据写入末尾并保存,这是设置oracle对文件的要求。
    oracle soft nofile 65536
    oracle hard nofile 65536
    oracle soft nproc 16384
    oracle hard nproc 16384


    6设置oracle的系统环境
    su - oracle
    编辑/home/oracle/.bashrc文件,加入以下数据
    #oracle9i
    export ORACLE_BASE=/opt/ora9 注:等号前后不要有空格
    export ORACLE_HOME=/opt/ora9/product/9.2
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
    export ORACLE_OWNER=oracle
    export ORACLE_SID=ora9i 注:这个值唯一标示一个数据库,可以更改,建议用大写字母(小写也可)
    export ORACLE_TERM=vt100
    export LD_ASSUME_KERNEL=2.4.1
    注:rh9默认使用本地POSIX线程库(the Native POSIX Thread Library - NPTL),POSIX线程的linux改进实现。但是,由于使用了NPTL,oracle应用程序会引起一些问题,rh9没有通过oracle9i认证。为了修正这些问题,你可以设置环境变量LD_ASSUME_KERNEL=2.4.1,通知系统使用原来的浮点堆栈linux线程(Linuxthreads with floating stacks)。否则会导致oracle安装器runInstaller挂起、数据库配置助手(the Database Configuration Assistant)dbca不能启动等问题。
    export THREADS_FLAG=native
    export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
    export PATH=/opt/ora9/product/9.2/bin:$PATH
    环境变量的配置非常关键,一定要留神。


    7解压安装文件
    将下载的或者光盘上的oracle9i安装文件拷贝到某个目录,例如(光盘)
    su -
    mkdir /mnt/oracle
    mount -t iso9660 /dev/cdrom /mnt
    waiting
    cp /mnt/cdrom/lux_920_disk* /mnt/oracle
    注意一般有三个安装文件lux_920_disk1.cpio.gz,lux_920_disk2.cpio.gz,lux_920_disk3.cpio.gz,还有每次换光盘之前记得
    umount /dev/cdrom
    注:我之所以写得这么详细是因为我是菜鸟哈,经常犯一些弱弱的错误:(
    现在开始解压/mnt/oracle下的文件,linux支持多线程的,打开三个terminal,输入以下指令
    terminal1#zcat lux_920_disk1.cpio.gz | cpio -idmv
    terminal2#zcat lun_920_disk2.cpio.gz | cpio -idmv
    terminal3#zcat lun_920_disk3.cpio.gz | cpio -idmv
    解压过程中,自动在/mnt/oracle下创建了三个包含安装文件的目录
    Disk1
    Disk2
    Disk3
    记住,热身工作到此完毕,reset,一定要重启吗?不太清楚,可能上面设置的某些参数需要重启才能生效。


    8安装及错误处理
    su -
    export DISPLAY=localhost.localdomain:0.0
    xhost +localhost.localdomain
    其中的localhost.localdomain其实就是hostname,可以用命令hostname查看。
    注:上述两项不设置的话会出错,runinstaller无法运行,提示如下错误:
    Xlib:connection to “:0.0” refused by server
    Xlib:Client is not authorized to connect to Server
    上面这个问题好像比较复杂,我没有仔细看。大概是oracle不再支持字符安装模式,为了在远程桌面上显示runinstaller的界面,即X信息,需要做相应的设置。注意,如果不使用Exceed,X显示重链接机制不能工作在NT桌面机器之上。因为我是本地安装,问题就简单了哈:)
    然后切换到oracle用户,开始安装
    su - oracle
    cd /mnt/oracle/Disk1
    ./runinstaller
    你看激动人心的oracle安装界面了吗?嘻嘻
    oh baby,come on!
    刚开始安装时需要输入一些信息,可参考下面几项:
    ---what would you like as the base directory(Inventory Location)
    /opt/ora9/oraInventory
    ---unix group name(permission for updating oracle software)
    oinstall 注:也可以使用dba,但出于安全考虑不推荐使用dba
    ---full path name for oracle home
    /opt/ora9/product/9.2
    等等
    在接下来的安装过程中一般会碰到四个问题。
    第一个问题是安装界面字符乱码,肯定是中文的原因,解决方案
    su - oracle
    export LANG=en_US:LANG
    注:我也碰到了这个问题,但是利用该解决方案没有成功,最后我不得不重装了一遍rh9,全英。如果有更好的办法,请告诉我[email protected],但我还是建议装英文系统。
    第二个问题是提示关于这个文件ins_oemagent.mk的,解决方案,忽略,我们将在下面的步骤中修复它。
    第三个问题是提示"Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk",解决方案,编辑文件$ORACLE_HOME/ctx/lib/env_ctx.mk,在"INSO_LINK ="行(第1365行)加入"$(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)
    按"retry"键即可继续。
    第四个问题是oracle agent configuration assistant启动失败,提示以下错误:
    parameter "nodeinfo"=NO_VALUE
    agent service failed
    该问题的解决方案是---我不知道:(
    因为我没有用到agentctl服务,所以就没有解决该问题,一般用不到吧?解决该问题需要补丁包的。
    最后,还需要根据提示,用root用户执行一次 $ORACLE_HOME/root.sh,Oracle软件就初步安装完了。
    我们回头来解决上边的那个ins_oemagent.mk问题。以oracle用户执行:
    cd $ORACLE_HOME/network/lib
    make -f ins_net_client.mk install
    编辑$ORACLE_HOME/ctx/lib/ins_ctx.mk文件的第13-14行,由:
    ctxhx: $(CTXHXOBJ)
    $(LINK) $(CTXHXOBJ) $(INSO_LINK)
    改为
    ctxhx: $(CTXHXOBJ)
    $(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
    然后执行
    make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install
    现在,Oracle 软件已经完全安装成功,你可以用dbca命令来建立数据库,或者执行其他DBA命令啦。


    9经验总结
    一:动不动就重装不是解决问题的办法,碰到问题去网上查一下,你碰到的问题估计其他人早就碰到了
    二:如果因为其他原因安装未成功,请在再次运行之前,清除以下文件:
    /etc/oraInst.loc /etc/oratab /tmp/<OtherOracleOwnerFile> $ORACLE_BASE/*

你可能感兴趣的:(在redhat上安装oracle9i的详细过程)