linux下安装oracle10g

不同于windows的图形化界面操作的便利,linux下安装oracle需要手工做很多的设置,下面是我综合了网上许多文章以及oracle官方文档总结出来,希望对大家有所帮助

一、检查先决条件,以下基本都是我从oracle官方文档中摘录出来的,每一项在安装之前都要仔细检查,否则都有可能在安装时报下面的错误

No pre-requisite checks found in oraparam.ini, no system pre-requisite check

1、  系统内存以及swap检查,oracle10g要求物理内存至少是1Gswap要求如下

物理内存大于1G,小于2Gswap要求至少1.5倍于物理内存

物理内存大于2G,小于8Gswap要求与物理内存相同

物理内存大于8Gswap要求物理内存的0.75

如果物理内存小于1G,请调整,否则安装注定会失败,如果swap空间不够,可以通过类似一下命令调整

root用户下进行

首先先建立一个分区,采用dd命令比如

dd if=/dev/zero f=/home/swap bs=1024 count=512000

这样就会创建/home/swap这么一个分区文件。文件的大小是512000block,一般情况下1block1K,所以这里空间是512M。接着再把这个分区变成swap分区。

/sbin/mkswap /home/swap

再接着使用这个swap分区。使其成为有效状态。

/sbin/swapon /home/swap

现在再用free -m命令查看一下内存和swap分区大小,就发现增加了512M的空间了。不过当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。那我们需要修改/etc/fstab文件,增加如下一行

/home/swap swap swap defaults 0 0

你就会发现你的机器自动启动以后swap空间也增大了

   2/tmp目录检查

      Oracle10g要求/tmp目录至少在400M以上,否则安装时会失败,并且要求oracle用户对该路径可读可写

       通过以下命令,可以查看目录空间打下

       df -k /tmp

2、 操作系统版本检查

Oracle10g要求安装的linux版本必须为以下版本之一

Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2

这一点可以从安装包中的oraparam.ini文件可以看到,一般我们安装的版本都会高于这些版本,但是检查时仍然无法通过,可以修改/etc/redhat-release文件为以上版本中的一种,安装成功之后再改回来

3、  安装包检查

以下包需要检查是否已经安装,如果没有,可以通过yum命令下载,如果因为版权问题没法yum安装,只能从网站下。但是一定要注意操作系统内核版本要与之匹配

binutils-2.15.92.0.2-13.EL4

compat-db-4.1.25-9

compat-libstdc++-296-2.96-132.7.2

control-center-2.8.0-12

gcc-3.4.3-22.1.EL4

gcc-c++-3.4.3-22.1.EL44

glibc-2.3.4-2.9

glibc-common-2.3.4-2.9

gnome-libs-1.4.1.2.90-44.1

libstdc++-3.4.3-22.1

libstdc++-devel-3.4.3-22.1

make-3.80-5

pdksh-5.2.14-30

sysstat-5.0.5-1

xscreensaver-4.18-5.rhel4.2

setarch-1.6-1

libXp-1.0.0-8.1.el5这个包虽然oracle官方没有说,但是在某些版本中缺少,会导致安装失败,建议也安装下。

      可以通过uname –r来查看linux内核版本,以上包仅仅是针对redhat enterprise4的安装包,其他环境如suse请参见oracle官方文档。当然如果有版权的话,推荐用yum,会自动下载安装指定内核的包

4、  确保oracle软件安装的位置在1.5G以上

5、  内核参数设置

vi /etc/sysctl.conf,在文件最后增加如下设置

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

6、  设置oracle用户的shell限制数量

/etc/security/limits.conf这个文件中,增加如下设置

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

7、  网络相关设置

尽量设置IP获取方式为静态获取,如果是DHCP,也没多大关系,一般也不会导致安装失败。

主机设置:

需要修改/etc/sysconfig/network如下

NETWORKING=yes
HOSTNAME=singlenode
GATEWAY=192.168.0.1

同时也需要修改/etc/hosts如下:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost singlenode

 

 

二、创建用户组合用户,设置环境变量

1、  增加用户组oinstall,dba,通过如下命令实现

Groupadd oinstall

Groupadd dba

2、  增加oracle用户

Useradd oracle –g oinstall –G dba

3、  修改oracle用户密码

Passwd oracle

4、  切换到oracle用户

Vi .bash_profile

#oracle environment add for oracle10G
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:ORACLE_HOME/lib
export NLS=ZHS16GBK
export ORA_NLS10=$ORACLE_HOME/nls/data
unset USERNAME
umask 022

三、创建oracle_base路径

mkdir –p /u01/app/oracle

chown –R oracle:oinstall /u01/app/oracle

chmod 755 /u01/app/oracle

由于ORACLE_BASE路径包含数据文件和oracle软件,所以该路径下空闲空间至少应在4G以上

四、安装oracle软件

注销root用户,用oracle用户登录

进入数据库安装路径database

运行如下命令./runInstaller,进入如下路径

进入图形安装界面,注意以下几点:

1、  Select Installation Method界面,需要我们选择UNIX DBA group,这里选择oinstall

2、  Specify Inventory Directory and Credentials,需要我们选择Oracle Inventory directory和操作系统用户组,路径默认即可,用户组选择oinstall.

以下操作都下一步即可

3、  最后需要执行脚本,root用户登录

1)       ORACLE_BASE/oraInventory/orainstRoot.sh

2)       ORACLE_HOME/root.sh

以下是我几次安装过程中遇到的错误以及解决方案

1、关于netca命令创建监听程序失败的解决方案

安装监听程序有时会遇到下面的错误

#

# An unexpected error has been detected by HotSpot Virtual Machine:

#

# SIGSEGV (0xb) at pc=0x00002aaabd6b69f1, pid=9743, tid=47386144937312

#

# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_17-b03 mixed mode)

# Problematic frame.:

# C [libclntsh.so.11.1+0x62a9f1] snlinGetAddrInfo+0x1b1

#

--------------- T H R E A D ---------------

Current thread (0x0000000045296b10): JavaThread "main" [_thread_in_native, id=9743]

siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x0000000000000010

Registers:

RAX=0x0000000000000000, RBX=0x00002aaabf6b17a0, RCX=0x00007fffe6625730, RDX=0x0000000000000000

RSP=0x00007fffe66255c0, RBP=0x00007fffe6625720, RSI=0x00002aaabef5ebce, RDI=0x00007fffe662576a

R8 =0x00007fffe66257a8, R9 =0x0000000000000003, R10=0x00007fffe6625760, R11=0x0000000000000000

R12=0x0000000000000000, R13=0x00007fffe6625730, R14=0x0000000000000000, R15=0x0000000000000000

RIP=0x00002aaabd6b69f1, EFL=0x0000000000010246, CSGSFS=0x0000000000000033, ERR=0x0000000000000004

TRAPNO=0x000000000000000e

Top of Stack: (sp=0x00007fffe66255c0)

0x00007fffe66255c0: 00000000616d6f64 0000000000000000

0x00007fffe66255d0: 0000000000000000 0000000000000000

0x00007fffe66255e0: 0000000000000000 0000000000000000

Instructions: (pc=0x00002aaabd6b69f1)

0x00002aaabd6b69e1: c3 45 31 db e9 f1 fe ff ff 48 8b 83 a8 02 00 00

0x00002aaabd6b69f1: 0f b6 40 10 a8 02 74 0c 4c 8d 15 b0 81 8a 01 4d

Stack: [0x00007fffe642a000,0x00007fffe662a000), sp=0x00007fffe66255c0, free space=2029k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)

C [libclntsh.so.11.1+0x62a9f1] snlinGetAddrInfo+0x1b1

C [libnjni11.so+0x132b5] Java_oracle_net_common_NetGetEnv_getDNSDomain+0x93

j oracle.net.common.NetGetEnv.getDNSDomain()Ljava/lang/String;+0

j oracle.net.ca.ConfigureProfile.setDefaultProfileParams()V+0

j oracle.net.ca.InitialSetup.setupConfigObjects()V+204

j oracle.net.ca.InitialSetup.([Ljava/lang/String;)V+859

j oracle.net.ca.NetCA.main([Ljava/lang/String;)V+96

v ~StubRoutines::call_stub

V [libjvm.so+0x385fe5]

V [libjvm.so+0x56ac99]

V [libjvm.so+0x385df5]

V [libjvm.so+0x3b3785]

V [libjvm.so+0x3a4695]

C [java+0x1fd6] strcmp+0x796

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)

j oracle.net.common.NetGetEnv.getDNSDomain()Ljava/lang/String;+0

j oracle.net.ca.ConfigureProfile.setDefaultProfileParams()V+0

j oracle.net.ca.InitialSetup.setupConfigObjects()V+204

j oracle.net.ca.InitialSetup.([Ljava/lang/String;)V+859

j oracle.net.ca.NetCA.main([Ljava/lang/String;)V+96

v ~StubRoutines::call_stub

根据堆栈分析是由于获取默认的主机名失败导致的

需要修改/etc/sysconfig/network如下

NETWORKING=yes
HOSTNAME=test11g
GATEWAY=192.168.0.1

同时也需要修改/etc/hosts如下:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost test11g

当然主机名test11g可以根据自己的需要修改

Oracle用户推出登录重新启动执行netca命令即可成功安装监听程序。

2、安装数据库,打开OUI报错

While installing Oracle database 10.2.0 on RHEL 5 (Redhat Enterprise Linux) or OEL 5 (Oracle Enterprise Linux), you get the following error before Oracle Universal Installer (OUI) gets invoked.

Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /tmp/OraInstall/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.(Unknown Source)
at java.awt.Component.(Unknown Source)
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.(OiifmGraphicInterfaceManager.java:222)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiic.OiicInstaller.getInterfaceManager(OiicInstaller.java:436)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:926)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Exception in thread "main" java.lang.NoClassDefFoundError
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.(OiifmGraphicInterfaceManager.java:222)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiif.oiifm.OiifmAlert.(OiifmAlert.java:151)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:984)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)

解决:

打开Linux 安装盘, server 找到 libXp-1.0.0-8.1.el5.i386.rpm 安装。。。

最简单的办法yum install libXp即可。

3、在64位linux安装,可能会报下面的错误
Exception in ...... /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
解决方案如下
yum -y install libXp.i686
yum -y install libXt.i686
yum -y install libXtst.i686 

4、linux 64bit环境dbca创建数据库或者命令行启动数据库报了下面错误
 ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 1: Operation not permitted
是由于oracle想使用huge page,但是oracle所在dba用户组没有权限使用hugepage导致
id oracle
查找dba用户组为503,然后
echo 503 > /proc/sys/vm/hugetlb_shm_group
问题解决,但是重启系统之后问题重现,需要增加下面配置
修改/etc/sysctl.conf

vm.hugetlb_shm_group = 503
以上仅仅是针对我几次安装过程中失败的总结,不同环境可能会遇到不同的问题,也仅仅是针对最简单的文件系统作为存储来创建的过程,如果要创建到裸设备或者是ASM上,具体还得参见oracle官方文档。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7483882/viewspace-755698/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7483882/viewspace-755698/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值