Redhat7.2(7.1)下oracle8.17的安装手册

    技术2022-05-11  75

    Redhat7.2(7.1)下oracle8.17的安装手册 一. 软件配置过程1. 安装glibc 2.1包 glibc2.1版本(GNU C Library,18M)下载地址: ftp://ftp.kernel.org/pub/software/libs/glibc/hjl/sdk/2.1/i386-glibc-2.1-linux.tar.gz 下载后都放到了/backup目录 从RedHat7.0以后的版本,安装的是glibc2.2。Oracle 8I不能使用glibc 2.2进行编译,而需要glibc2.1的SDK。 #su - root #cd / #tar zxvf /backup/i386-glibc-2.1-linux.tar.gz 隐藏/usr/bin 目录下的gcc,cc,ld,避免被Oracle installer使用 #cd /usr/bin #mkdir saved #mv gcc cc ld saved #ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc #ln -s gcc cc #ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld 隐藏/usr/lib目录下的libc.so,libdl.so,libm.so和libpthread.so文件,避免被Oracle installer使用 #cd ../lib #mkdir saved #mv libc.so libdl.so libm.so libpthread.so saved #mv libc.a libdl.a libm.a libpthread.a saved 不要忘了安装完成后把文件恢复回来。(不恢复也可以)。

    2. 创建用户和组  以root用户进入系统 #groupadd sysdba#groupadd sysoper#groupadd oinstall#useradd oracle –d /usr/oracle –g oinstall –G sysdba,sysoper#passwd oracle输入oracle用户口令,输入二次。#chmod 755 /usr/oracle#cd /usr#mkdir oraInventory#chown oracle.oinstall oraInventory  3. 配置环境变量以oracle用户进入系统 编辑注册文件:vi .bash_profile 在该文件最后添加:DISPLAY=local:0.0export DISPLAYORACLE_BASE=/usr/oraInventoryexport ORACLE_BASEORACLE_HOME=/usr/oracleexport ORACLE_HOMEORACLE_SID=testdb注意:ORACLE_SID在每个工程点都使用当地的地名,再加上序号。例如,上面就是为杭州建立第一个系统使用的SID:hangzhou1。export ORACLE_SIDPATH=$PATH:$ORACLE_HOME/binexport PATH export LD_ASSUME_KERNEL=2.2.5  注意:只要小于2.4即可编辑好文件后存储,退出系统。4. 拷贝介质:以oracle用户进入系统,将包含Oracle V8.17的光盘放到光驱中,键入命令:$mount /mnt/cdrom$cp /mnt/cdrom/oracle.tar ./注意:这里假定Oracle V8.17的文件名是oracle.tar$tar xvf ./oracle.tar

    5. 安装数据库 在XWindows以oracle用户进入系统,如果Xwindows没有启动,输入命令:$startx以启动Xwindows.在Xwindows中开出一个终端,输入命令:$cd Disk1$./runInstaller进入安装程序。 二、安装过程

    1、runInstaller启动安装界面有的时候runInstaller,安装界面不出来,这主要还是因为Oracle的字符集设为了简体中文,但OS是英文的,所以有时候出不来,用Java写的程序经常出现字符集的问题。此时临时销毁$NLS_LANG变量,Java会用默认的字符集,就好了。所以:

    unset $NLS_LANG

    也可以试试

    unset $LANG× 其实dbassist也是有时候出不来的,这样做就可以出来了,但是netasst始终出不了,不清楚为什么,不过可以自己修改lisener.ora和tnsnames.ora,所以netasst也不是必须的。

    另一个可能的原因就是glibc没有替换好,我发现直到JDK1.3.1_01,才支持glibc2.2,之前的版本,包括JDK1.3.0都不支持glibc2.2,只要在glibc2.2下运行,就会出现没有任何反应,进程好像死亡了一样的毛病,Oracle安装程序用的还是JRE1.1.8,所以只要glibc用的还是2.2版的,安装窗口总不会出来的。 2、下面一路点击下一步,在Unix Group Name: oinstall提示在root用户下运行/usr/oracle/orainstRoot.sh,使用ALT-F1(或F2,F3等)进入其他终端,以root用户登入系统,运行该文件。然后使用ALT-F7返回安装界面。在Available Products: 选择Oracle 8i Enterpise Edition 8.1.7.0.1

    3. 到填写安装oracle软件的属组的时候,Database Administaor Group: 填写sysdbaDatabase Operator Group: 填写sysoper在Database Identification:Global Database Name: TestDB就好了SID:testdb,在Database File Locations文件位置处:目的地址:/usr/oracle开始拷贝文件。然后提示用root运行/usr/oracle/root.sh,以root登录运行。

    4、还是选择安装组件的列表这个界面,有个选择语言的按钮,增加“简体中文”

    5、询问是否创建数据库,“是”,添上安装数据库的SID。数据库数据文件的存放目录,是“/usr/oracle“。

    6、开始安装Oracle,安装程序拷贝文件。有很多人说,拷贝文件完后,联接系统库函数的时候,出现make错误,我想这多半还是替换glibc不成功导致的吧,我安装的时候确实没有出现过这样的问题。我想按照我写的步骤来,应该不会出现这样的问题的。

    7、自动启动netasst,配置监听器,一般如果为了省事,选典型配置就可以了,只不过典型配置打开了一个2481端口,是JServer用的,如果不用JServer的话,也可以不要它,现在可以不用管它,回头再改listener.ora好了。

    8、自动启动dbassist,安装数据库,按照提示做就是了,根据自己的情况可以适当的调整安装数据库时的参数,最后开始创建数据库,此时也可以选择先保存创建的脚本,再退出dbassist,单独运行创建脚本,这样更灵活一些,可以自己改创建脚本,也可以自己研究一下脚本,会有收获的。

    三、安装后配置

    1、以root登录,修改/etc/oratab,将最后的:orcl:/u01/app/oracle/product/8.1.7:N改为:orcl:/u01/app/oracle/product/8.1.7:Y这样就可以用dbstart和dbshut来启动和关闭数据库了,不用自己写脚本调svrmgrl。

    2、将数据库启动命令和修改内核命令放在系统启动脚本中(这一不可以不做)

    修改/etc/rc.d/rc.local,加入:

    #modify kernel parameterecho 134217728 > /proc/sys/kernel/shmmax echo -e "250 32000 100 128" > /proc/sys/kernel/sem

    #start Oracle8.1.7su - oracle -c 'lsnrctl start'su - oracle -c 'dbstart'

    我比较懒,没有另外写脚本联接进rc3.d,rc0.d.rc5.d,rc6.d了,而是直接放在rc.local中了,呵呵注意的是修改内核参数必须在启动数据库实例之前,启动数据库后,用ipcs 命令看看共享内存的使用情况,如果没有分段就行了。

    另外一个特别要说明的事情是一定要注意,凡是读写数据库的进程,必须取得oracle的环境变量,否则无法联接数据库。上面的脚本中su - 中的这个"-"非常讲究,它的意思是切换到oracle用户,并取得oracle的环境变量。再例如,如果还要启动apache来读写数据库的话,rc.local加入的命令就一定要这样写:#start apache httpd server. /etc/profile/usr/local/apache/bin/apachectl start

    因为我把oracle的环境变量放在/etc/profile里了,在启动apache之前要先强制它读/etc/profile,取得oracle的环境变量,这样apache的ServerAPI程序就可以读写数据库了。

    3、修改Net8配置,可以用netca,或者自己修改$ORACLE_HOME/network/admin下的listener.ora和tnsnames.ora,netasst好像出不来。

    4、如果创建第二个实例,用dbassist就好了,如果dbassist出不来的话,临时销毁$LANG,$NLS_LANGunset $NLS_LANGunset $LANG就可以出来了。


    最新回复(0)