成功安装Oracle for Linux

经过几天的折腾,终于安装成功Oracle for linux,开始安装了RS4.0下载了Oracle10g的若干版本,要么出现Oracle和linux不兼容的问题,要么就是找不到inventory目录的问题,要么就是安装过程中不能启动net config的问题,昨天经过大胆尝试终于成功,下面把自己的经验记录下来以做备忘:
1、下载RS5.0企业版,我是在迅雷里面下载的DVD版,不要忘了找个序列号,我找到一个Red Hat Enterprise Linux (Server including virtualization):
2515dd4e215225dd
2、到Oracle官方网站下载Oracle11g
下面我们就开始安装吧:
1。新建用户组
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
2。新建用户并设置密码
# /usr/sbin/useradd -g oinstall -G dba oracle
# passwd oracle
3.设置目录权权限
# chown -R oracle:oinstall /ora10g/app/oracle /ora10b/oradata
# chmod -R 775 /ora10g/app/oracle /ora10b/oradata
4.将下列配置加到 /etc/security/limits.conf 文件中:
               soft    nproc   2047
               hard    nproc   16384
               soft    nofile  1024
               hard    nofile  65536
增加下列配置到 /etc/pam.d/login  文件中:
session    required     /lib/security/pam_limits.so
对于单独使用Oracle用户的shell,增加下列脚本到配置文件/etc/profile 中:
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
设置用户oracle的环境变量
1。以用户oracle登录:
    在配置文件.bash_profile文件中增加: umask 022  设置该用户的默认umask
    执行$ . ./.bash_profile 配置生效。
2。设置临时文件目录
    $ TEMP=/directory
    $ TMPDIR=/directory
    $ export TEMP TMPDIR
4。设置ORACLE_BASE和ORACLE_SID变量
    $ ORACLE_BASE= /ora10g/app/oracle      //这是在前面建立的Oracle的主程序目录
    $ ORACLE_SID=sales
    $ export ORACLE_BASE ORACLE_SID
5。确认ORACLE_HOME和TNS_ADMIN环境变量没有设置,如有设置用 unset ORACLE_HOME 删除

呵呵经过以上设置好像环境变量不太管用,还是直接安装吧

貌似/directory没起作用,还是切换root用户自己建立一个/directory目录吧。

开始吧,前面的活不能白干吧
运行runInstaller开始安装,下面我不用说了,一直Next就OK了

安装成功了,让我们来启动Oracle

启动和停止数据库及工具
用oracle用户登录后设置下列变量
export ORACLE_BASE=/oracle/app/oracle(根据情况自己修改)
export ORACLE_SID=sales
export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1(根据情况自己修改)
export PATH=$PATH:$ORACLE_HOME/bin

启动和停止监听:
    lsnrctl start
    lsnrctl stop

启动和停止Oracle Enterprise Manager:
   emctl start dbconsole
   emctl stop dbconsole

启动和停止iSQL*Plus
    isqlplusctl start
    isqlplusctl stop

启动和停止数据库
  启动:
   sqlplus
   Enter usr-name: / as syadba
   SQL>startup
  停止:
   SQL>shutdown immediate

似乎上面的命令不行,来先让我们做的别的

又是一个11g的bug,在安装完数据库后,启动sqlplus命令,会发现下面的错误:

[oracle@** ~]$ sqlplus "/ as sysdba"
sqlplus: error while loading shared libraries: /data/oracle/product/11.1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

这个问题发生在ORACLE ENTERPRISE LINUX R5上,无论是32位还是64位都存在这个问题。

第一次在安装32位的ORACLE 11G for Linux的时候也碰到了,当时没有记录下来,这次特意查询了一下Metalink,Oracle在metalink的文档:Doc ID: Note:454196.1中对于问题进行了详细的描述。

最简单的解决方法莫过于将SElinux设置位PERMISSIVE状态:

切记:切换用户用su - root

[root@** ~]# getenforce
Enforcing
[root@** ~]# setenforce 0
[root@**  ~]# getenforce
Permissive
[root@** ~]# su - oracle
[oracle@**  ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on Mon Oct 22 13:57:07 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to an idle instance.

貌似还不行,export一下没有ORACLE_HOME变量,我们还是把变量定义

export ORACLE_BASE=/oracle/app/oracle(根据情况自己修改)
export ORACLE_SID=sales
export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1(根据情况自己修改)
export PATH=$PATH:$ORACLE_HOME/bin

放在.bash_profile中吧

然后再启动sqlplus "/ as sysdba"

一切OK了。