1) 首先要安装 Redhat AS3_U6,而且一般来说请选择"完全安装",即使有些功能你不打算使用,装完了再禁止掉就可以了。不选"完全安装"的后果是,真正要用的时候缺这缺那,你要到处找安装包,自找苦吃。目前不少安装指南都要求用户检查软件包的完整性,我认为那样做很浪费时间。
2) 建立帐户。以root用户运行下列命令:
# groupadd dba # groupadd oinstall # useradd oracle - g oinstall - G dba # passwd oracle
# rm - Rf / uxdb / ora9i # cd / usr / bin # rm - f dbhome oraenv coraenv # rm - f / etc / oratab
# mkdir - p / uxdb / ora9i / product / 9.2 # chown - R oracle.dba / uxdb / ora9i # mkdir / var / opt / oracle # chown oracle.dba / var / opt / oracle
4) 把事先下载好的文件用 WinSCP 通过 ssh 或者 FlashFxp 通过 ftp 上传。由于空间的关系,压缩文件放到 /uxdb/ora9i,解压完毕再删掉。最近这段时间OTN上的Linux版一般是9204了,因此我们以这个版本为准。
Oracle 9201的用户可以去参考其他升级文档,或者干脆全新安装9204。同 时,在9204版里至少有两个重要补丁(3095277和3119415),在9206升级版里,也有至少一个重要补丁(4193295)。metalink注册用户的补丁更多更全。
$ pwd / home / oracle $ mkdir setup $ ln - s / uxdb / ora9i ora9i $ cd setup $ gzip - dc ~/ ora9i / ship_9204_linux_disk1.cpio.gz | cpio - idmv $ gzip - dc ~/ ora9i / ship_9204_linux_disk2.cpio.gz | cpio - idmv $ gzip - dc ~/ ora9i / ship_9204_linux_disk3.cpio.gz | cpio - idmv $ mkdir .. / up926 $ cd .. / up926 $ unzip ~/ ora9i / p3948480_9206_LINUX.zip $ mkdir .. / up927 $ cd .. / up927 $ unzip ~/ ora9i / p4163445_92070_LINUX.zip $ rm - f ~/ ora9i /**/ /*.gz $ rm -f ~/ora9i/*.zip
现在要检查交换空间,通常交换空间必须是内存的0.5倍到1.5倍,内存越大对交换空间要求越低。考虑到性能,我们不建议512M内存以下的机器安装Oracle。
内存在 512M到1024M之间,建议交换空间是1.5倍,内存在1024M到2048M之间,建议交换空间是1.0倍。内存等于或者超过 2048M,建议交换空间是0.5倍。如果不够就需要到 WinXp 里利用 Acronis 来重新调整分区大小,或者手工制造一个swap文件,用swapon来激活这个文件,这里不再赘述,读者自己查资料。
# cat / proc / meminfo | grep - e Mem: - e Swap: # / sbin / swapon - s
修改 / etc / sysctl.conf 这个文件,加入以下的语句: kernel.shmmax = 1006632960 ... {包含了虚拟内存的最大共享内存,详情见备注} kernel.shmmni = 4096 ... {最小内存数,一般都是4k的大小,也就是4096} kernel.shmall = 655360 ... {内存640M的数值,公式 shmmax=内存(M)*1024} kernel.sem = 250 32000 100 128 fs.file - max = 65536 net.ipv4.ip_local_port_range = 1024 65000
之间系数为1.5,内存达到或超过2048M系数为1就可以了。sysctl -p 立刻生效。
在 Linux 下的快速计算:
# export RAMSIZE = 640 # echo - n " shmall= " ; echo " $RAMSIZE * 1024 " | bc # echo - n " shmmax= " ; echo " $RAMSIZE * 1024 * 1.5 * 1024 " | bc
编辑文件:在 / etc / security / limits.conf 加入以下语句,然后重启Linux主机。 oracle soft nofile 65536 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384
这里我要补充说明的是,在英文环境下安装是很容易的,大不了在安装过程中的Language里加多一项Chinese就可以了。在中文环境下安装,关于字体设置方面要做一些准备,请参考"中文显示"的内容,安装tlc字体或修改zys配置。
关于LD_ASSUME_KERNEL=2.4.1的问题,这是出于兼容性的考虑,否则可能会链接时报错,也可能会链接后内容有偏差。如果用户需要安装自己的Java开发包,可以到 Sun 公司网站下载 rpm 并安装,然后做个符号链接到 /usr/j2sdk。
很多安装指南都没提到 ORACLE_NAME 这个变量,或许大家误以为数据库的名称必须跟 ORACLE_SID 一样,这是非常错误的。在这个安装例子里,我把 SID 设置为 ora9i,而 NAME 设置为 turbo,将来访问数据库的时候再详细解释。
重要提示:由于 Oracle 9i 本身的开发环境是在 gcc 2.96 下的,所以我们必须把当前的 gcc 降版本,否则将来链接会大量出错。请运行脚本 mc 296。
# mc 296 <----- lrwxrwxrwx 1 root root 6 4月 6 22 : 50 g ++ -> g ++ 296 - rwxr - xr - x 3 root root 81864 2004 - 03 - 24 g ++ 296 - rwxr - xr - x 4 root root 88836 2005 - 07 - 19 g ++ 323 lrwxrwxrwx 1 root root 6 4月 6 22 : 50 gcc -> gcc296 - rwxr - xr - x 2 root root 81864 2004 - 03 - 24 gcc296 - rwxr - xr - x 2 root root 88836 2005 - 07 - 19 gcc323 - rwxr - xr - x 1 root root 84808 2004 - 08 - 04 gcc - ssa - rwxr - xr - x 1 root root 86200 2004 - 08 - 04 g ++- ssa ----->
1) 你可以选择在 Linux 本机安装,或通过 Xman 登录安装,或通过 Vnc 安装。 在本机安装和 Xman 安装,不用修改配置,Vnc 安装要增加一句配置字体的。 export JAVA_FONTS=/usr/share/fonts/zh_CN/TrueType 否则,中文环境下缺乏字体会导致出现"口口"乱码。如果你喜欢使用英文的 安装界面,可以设置 export LC_ALL=C 来达成你的愿望。
2) 现在开始安装了。准备工作做好了,真正安装是很容易的,只是等待比较久。
首先要运行一个对于 Redhat Enterprise 3 的补丁,以 oracle 帐号登录。
$ cd setup / Opatch / rhe3 $ unzip p3006854_9204_LINUX.zip $ su - # cd / home / oracle / setup / Opatch / rhe3 / 3006854 # sh rhel3_pre_install.sh <----- Applying patch... Patch successfully applied ----->
以oracle用户登录系统,进行Oracle的安装:
$ cd setup / Disk1 $ . / runInstaller
3) 安装完后打补丁。首先你要安装 Opatch,高版本的可以向下兼容,但低版本的却不能识别新的补丁。如果是9204的Opatch对应9204的补丁,那样也可以。
很关键的问题,开始动手打补丁之前,首先要以 root 的身份做这件事情:
# chown oracle.root / sbin / fuser
$ cd $ORACLE_BASE $ unzip ~/ setup / Opatch / 9206 / p2617419_10102_GENERIC.zip $ cd / tmp $ mkdir ora $ cd ora $ unzip ~/ setup / Opatch / 9204 / p3119415_9204_LINUX.zip $ unzip ~/ setup / Opatch / 9204 / p3238244_9204_LINUX.zip $ unzip ~/ setup / Opatch / 9206 / p4193295_9206_LINUX.zip $ cd $ORACLE_BASE / oui / bin / linux $ ln - s libclntsh.so. 9.0 libclntsh.so
所以,如果你决定用9204+9204补丁,那就打补丁。如果你决定要升级9206或9207,那就不需要装补丁了,系统会删除旧补丁。当然,如果你想做实验,检验补丁的效果再决定是否升级,那也是可以理解。
安装9204的补丁,它用来修复angentctl启动dbsnmp时的segment溢出问题。
$ cd / tmp / ora / 3119415 $ opatch apply $ cd / tmp / ora / 3238244 $ opatch apply
$ cd / tmp / ora / 4193295 $ opatch apply $ opatch lsinventory
$ cd $ORACLE_HOME / network / lib $ make –f ins_oemagent.mk install
$ agentctl start $ agentctl status
$ cd $ORACLE_HOME / ldap / lib $ make - f ins_ldap.mk install
$ cd / tmp / ora / 4193295 $ sqlplus / nolog connect / as sysdba spool . / logfile @catcpu.sql
$ dbstat ... {首先检查系统状态} $ dbshut ... {关闭数据库再修改} $ dbstat ... {确认数据库已关闭} $ vi / etc / oratab <----- * : / uxdb / ora9i / product / 9.2 :N ora9i: / uxdb / ora9i / product / 9.2 :Y -----> $ dbstart <----- Can ' t find init file for Database "ora9i". Database " ora9i " NOT started. -----> $ vi $ORACLE_HOME / bin / dbstart ... {在vi用/PFILE来搜索,添加SPFILE部分} <----- PFILE = $ ... {ORACLE_HOME} / dbs / init$ ... {ORACLE_SID} .ora SPFILE = $ ... {ORACLE_HOME} / dbs / spfile$ ... {ORACLE_SID} .ora ...... if [ - f $PFILE ] || [ - f $SPFILE ]; then ----->
$ mo <----- / uxdb / ora9i / admin / turbo / pfile / initora9i.ora. 33200616611 # copy to: dbs ----> / uxdb / ora9i / product / 9.2 / dbs / initora9i.ora # check spfile ----> / uxdb / ora9i / product / 9.2 / dbs / spfileora9i.ora ----->
$ dbstart $ dbstat
1) 如果你已经装好了9204,现在想升级到9206或9207,还会碰到中文乱码问题。首先是要停止Oracle的所有服务,否则安装程序会提示文件无法覆盖。
$ dbshut $ lsnrctl stop $ agentctl stop $ stopJServ.sh $ cd up926 $ find - name all_except_bin.jar <----- . / Disk1 / stage / Components / oracle.swd.jre / 1.4 . 2.02 . 0 / 1 / DataFiles / all_except_bin.jar -----> $ cd . / Disk1 / stage / Components / oracle.swd.jre / 1.4 . 2.02 . 0 / 1 / DataFiles $ cp - pf all_except_bin.jar all_except_bin.jar.eng $ unzip all_except_bin.jar.eng $ find - name font * zh * <----- . / jre / 1.4 . 2 / lib / font.properties.zh.Turbo . / jre / 1.4 . 2 / lib / font.properties.zh_CN.Redhat8. 0 . / jre / 1.4 . 2 / lib / font.properties.zh_TW.Redhat8. 0 . / jre / 1.4 . 2 / lib / font.properties.zh_CN.Sun . / jre / 1.4 . 2 / lib / font.properties.zh_CN_UTF8.Sun . / jre / 1.4 . 2 / lib / font.properties.zh_TW.Sun . / jre / 1.4 . 2 / lib / font.properties.zh_TW_UTF8.Sun -----> $ cd jre / 1.4 . 2 / lib $ rm - f font. * .zh font. * .tlc font. * .zys $ ln - s font.properties.zh_CN.Redhat8. 0 font.properties.zh.zys $ ln - s font.properties.zh.Turbo font.properties.zh.tlc $ ln - s font.properties.zh.zys font.properties.zh $ ls - la * zh * ... {说明:font.properties.zh.zys,此选项保证Redhat AS3_U6显示中文} ... {说明:font.properties.zh.tlc,如果安装了tlc字体,可以显示中文} $ cd .. / .. / .. $ rm - f all_except_bin.jar $ zip - r all_except_bin.jar jre / $ rm - Rf jre /
2) 安装9207升级版没碰到什么问题。但安装9206升级版的时候有个小问题当它提示运行root.sh时最好先修改 root.sh,否则会有下面这个告警:
/ bin / rm: lstat‘ / uxdb / ora9i / product / 9.2 / rdbms / filemap’失败: 没有那个文件或目录 # cd $ORACLE_HOME # vi root.sh ... {在vi里用/RM=来搜索,一共有两个地方需要替换} <----- RM = " /bin/rm -f " ...... RM = " /bin/rm -f " -----> # sh root.sh
1) 现在是享受成果的时候了。如果有问题请参考"常见错误",看看是否有答案。
$ perl - V $ ln - s $ORACLE_HOME / jdk $ORACLE_HOME / Apache / jdk $ cd $ORACLE_HOME / Apache / Apache / bin $ vi apachectl <----- PERL5LIB =/ uxdb / ora9i / product / 9.2 / Apache / perl / lib / 5.00503 : / uxdb / ora9i / product / 9.2 / Apache / perl / lib / site_perl / 5.005 / i686 - linux; export PERL5LIB -----> $ vi startJServ.sh <----- $ ... {APACHE_HOME} / bin / apachectl startssl -----> $ dbstart $ lsnrctl start $ agentctl start $ startJServ.sh
$ tnsping 192.168 . 100.60 $ dbstat $ lsnrctl status $ agentctl status $ apachectl status $ apachectl fullstatus
http: // 192.168.100.60:7777/ http: // 192.168.100.60:7778/ https: // 192.168.100.60:4443/
在重装 Oracle 的时候,如果你忘了注释掉 oraweb/orassl/oraSSL 三项,那么装好后的 Apache 端口会跟上面的不同,但很容易就调整回正常。
$ vi $ORACLE_HOME/Apache/Apache/conf/httpd.conf {在vi用/444和/777查找}
<-----
Port 7777
Listen 7777
......
<IfModule mod_ssl.c>
Port 7778
Listen 7778
Listen 4443
</IfModule>
......
<IfModule mod_oprocmgr.c>
ProcNode rebeca 7777
<IfModule mod_ssl.c>
ProcNode rebeca 7778
</IfModule>
......
##
## SSL Virtual Host Context
##
<VirtualHost _default_:4443>
......
Port 4443
----->
$ vi $ORACLE_HOME/Apache/Apache/bin/apachectl {在vi用/:77查找}
<----
STATUSURL="http://localhost:7778/server-status"
----->
$ apachectl restart
$ apachectl fullstatus
3) 如果你想让Oracle在开机和关机的时候以服务方式运行,请参考"脚本精选"。如果手工启动和关闭已经足够,那么现在就在WinXp上装个客户端访问ora9i。
例如:ORACLE_SID=ora9i, ORACLE_NAME=turbo, IP=192.168.100.60。那么,配置 Net Config 时,填写 turbo 和 192.168.100.60,在 oemapp cosole访问时,可以使用本地 tnsname 的 TURBO,或者写主机名(填IP或域名)以及SID,然后网络服务名就会自动变成 ORA9I_192.168.100.60。
--------------------
参考文献:
好几年前就使用 Oracle 8i,安装过程很复杂,不看文档根本做不下去。现在Oracle 9i 比较好一点,问题少一些,但别人的经验总是有帮助的。在我动手安装和整理文档的时候,主要是参考以下内容,随后进行了比较大的补充。
1) http://www.chinaunix.net/jh/19/365977.html
[原创] RedHatLinux AS3 U2 安装 oracle9204 成功 笔录
2) http://www.linuxmine.com/3494.html
在RedHat EL AS 3上安装Oracle9.2.0
3) http://www.cublog.cn/opera/showart.php?blogid=10337&id=80972
Oracle for AS3 安装教程
4) http://oracle.chinaitlab.com/install/365186.html
在DELL pe800下安装linux AS3.0+ora 9i 成功经验
5) http://www.gbunix.com/htmldata/2004_08/2/5/article_643_1.html
在Redhat9上安装Oracle 9.2
6) http://www.chinaunix.net/jh/19/650937.html
[原创] 红旗高级服务器Linux 4.1 最新安装Oracle9204 改记