成功安装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了。