这不是一个完整的安装教程,仅仅探讨在64位CentOS 5.8系统上安装64位Oracle 10gR2,到底需要装哪些RPM包.
实验环境
VMWare Workstation 8.0
Linux发行版: CentOS 5.8 x86_64
Kernel版本: 2.6.18-308.el5
Oracle Database版本: 10201_database_linux_x86_64.cpio.gz
为了避免受其他rpm包的干扰,笔者在安装Linux的时候选择了最小化安装,即文字模式下安装,去掉所有可选的包,结果总共仅安装了232个rpm包.算是一个很小的Linux系统了;
装过ORACLE的人都知道,在装ORACLE之前要先装一些RPM包,在官方安装指南中,ORACLE并没有告知在RHEL 5.x系列下应该装哪些包;如果参照RHEL 4.x系列来装,必出错;
网上搜一下也有很多在RHEL 5.x系列上安装ORACLE的教程,但大多都是32位的平台;若照抄到64位平台也必出错;
经过笔者反复测试,发现以下10个RPM包是必装的:
这里我省略了RPM包的主、次版本号,因为我相信现在的Linux发行版中的RPM包的版本号绝对会比ORACLE 10g要求的版本号高;
binutils.x86_64
compat-libstdc++-33.x86_64
gcc.x86_64
glibc-devel.x86_64
glibc-devel.i386
libaio.x86_64
libXp.i386
libXt.i386
libXtst.i386
make.x86_64
为什么说是必装的呢?下面分别说明一下:
binutils.x86_64
gcc.x86_64
libaio.x86_64
make.x86_64
这4个包是OUI预检时必查的,少了任何一个都会预检不通过;
compat-libstdc++-33.x86_64
如果少了这个包,则安装过程中会报以下错:
Error in invoking target 'all_no_orcl' of makefile '/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk'
glibc-devel.x86_64
如果少了这个包,则安装过程中会报以下错:
Error in invoking target 'ntcontab.o' of makefile '/u01/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'
如果少了这个包,则安装过程中会报以下错:
Error in invoking target 'install' of makefile '/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'
补装后又报Error in invoking target 'agent nmo nmb' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_sysman.mk'
退出,重装ORACLE就OK了;
libXp.i386
libXt.i386
libXtst.i386
如果少了这3个包,则OUI起不来,分别报如下错:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-07-16_12-22-25PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-07-16_12-26-27PM/jre/1.4.2/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-07-16_12-29-27PM/jre/1.4.2/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
笔者在仅安装了这10个包以后,顺利的装上了ORACLE软件,并用DBCA顺利的创建了数据库;
可能需要的依赖包:
如果用rpm命令装的话,可能还需要手动装以下的依赖包;
如果用yum命令来装的话就可以忽略以下的依赖包了,因为yum会自动安装这些依赖包;
glibc-headers.x86_64 //glibc-devel.x86_64,glibc-devel.i386都依赖它;
kernel-headers.x86_64 //glibc-headers.x86_64依赖它;
cpp.x86_64 //gcc.x86_64依赖它;
libgomp.x86_64 //gcc.x86_64依赖它;
libICE.i386 //libXt.i386依赖它;
libSM.i386 //libXt.i386依赖它;
最后想补充一点的是,某些教程中喜欢用./runInstaller -ignoreSysPrereqs命令来跳过操作系统检查,笔者测试了一下,这样做虽然可以顺利启动OUI,但在后续的安装过程中会出现一些莫名的错误,所以不建议这么做.
笔者的解决方法是修改/etc/redhat-release文件,清空该文件里的内容(注意是清空,而不是注释掉),并加入 redhat-4 这句即可.
ins_emdb_mk报错直接点continue 装完oracle后使用oracle用户输入命令:relink all
Oracle Linux Server release 5.7 x86_64
数据库版本 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
在安装Oracle安装过程中,dbca 建instance的,遇到如下错误:ORA-27125: unable to create shared memory segment
分析解决:
以前遇到安装ORACLE成功后,启动过程中遇到ORA-27125错误, 也在博客ORA-27125: unable to create shared memory segment和博客ORA-27125里面记录过,于是按照解决方法做了如下操作:
1: [root@DB-Server cdrom]# id oracle
2:
3: uid=502(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
4:
5: [root@DB-Server cdrom]# more /proc/sys/vm/hugetlb_shm_group
6:
7: 0
8:
9: [root@DB-Server cdrom]# echo 502 >/proc/sys/vm/hugetlb_shm_group
10:
11: [root@DB-Server cdrom]#
然后在/etc/sysctl.conf 里面添加参数vm.hugetlb_shm_group = 502,就可以在下次启动时不报ORA-27125错误。
如果在安装过程需要重新安装的,需删除之前安装的一些目录和文件
rm -rf /u01/oracle/*
rm /tmp/ 带ora的目录和文件
rm /usr/lib/ 带ora的目录和文件