曾经在几个月前写了一篇《RHEL 6 (x86_x64)安装oracle 11g r2》的文章。有朋友反映说安装不了,也有朋友说应该再讲得详细点。这几天有点空,加上CentOS 6.0也发布了,然后用U盘全新安装其liveCD,这回我还是选择64位版本,因为这样可以使用KVM虚拟化功能。把系统内核更新至2.6.32-71.29.1。本文同样适用于RHEL 6.0。 我的分区方案: swap 2GB /boot 200M / 25G /home 20G 这是懒人分区法。不建议这样分区,我因为磁盘不够才这样分的,至少应划出一个/opt来安装Oracle 11g,不然如果根分区不够的话系统死掉就不好了。提供一个方案(如果你的磁盘足够大): swap 4G(可以是内存的1.5-2倍) /boot 200M /usr 10G / 10G(其实5G就很够了) /var 5G /opt 20G /home 至于用于生产环境的话要/opt要大或者将数据分到另一个区。 安装程序所需的依赖包: yum install libaio mksh unixODBC unixODBC-devel libstdc++ libstdc++-devel libgcc yum install compat-db yum install compat* yum install unixODBC-devel yum install libaio-devel yum install sysstat 下面的安装过程分为两步,一是修改系统参数,二是软件及数据库安装。 (1)vim /etc/sysctl.conf, 在末尾添加如下参数: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1073741824 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 保存并使之生效: /sbin/sysctl -p 如果有如下提示错误,忽略,因为即使未修改参数也提示有这个错误 error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key 注意: kernel.shmmax's 的值是物理内存的一半。 我的是2G内存,所以是1073741824 (2)对oracle帐号进行资源限制。vim /etc/security/limits.conf,添加: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 (3) vim /etc/pam.d/login,登录认证配置pam模块。添加参数: session required pam_limits.so (4) 为oracle用户在bash和ksh中设定资源限制编辑文件 /etc/profile。添加至末尾。vim /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 (5)C shell 登录配置。 vim /etc/csh.login,添加: if( $USER == "oracle" ) then limit maxproc 16384 limit descriptors 65536 umask 022 endif (6)因为RHEL 6.0未经认证,所以修改为如下值,成功安装数据库后在修改回来。但这一步并非是必须的,但为了 避免安装中途出现问题,还是改好了。 vim /etc/redhat-release: CentOS Linux release 6.0 (Final) Red Hat Enterprise Linux Server release 5.0 (Tikanga) (7)添加相关用户及用户组: #groupadd dba #groupadd oinstall #useradd oracle -g oinstall -G dba #passwd oracle (8) 创建安装路径及修改权限: mkdir -p /opt/11g/oracle chown -R oracle:oinstall /opt/11g/oracle chmod -R 775 /opt/11g/oracle mkdir -p /opt/11g/oraInventory chown -R oracle:oinstall /opt/11g/oraInventory chmod -R 775 /opt/11g/oraInventory (9) vim /home/oracle/.bash_profile, 其中ORACLE_SID的值可以自己定,我的设为orcl。 TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_BASE=/opt/11g/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME ORACLE_SID=orcl; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi umask 022 使环境变量生效: source ~/.bash_profile (9)切换到oracle解压11G的安装包,这样就不用再修改权限了。重启后以oracle登录开始安装。 (10)为避免错误,关闭防火墙: service iptables stop 登录oracle(建议选择英语语言登录,防止安装时界面中文空格乱码)安装开始: ./ runInstaller
注意,此时数据库并没有设置为随机启动,在windows下是以服务方式随机启动的。手动方式如下: 启动监听程序:lsnrctl start 启动OEM:emctl start dbconsole 附: (1) 使用sqlplus时无法使用上下键翻看历史记录, 现在有一个工具rlwrap可以在linux下实现翻看历史命令功能: 下载地址是: http://utopia.knoware.nl/~hlub/uck/rlwrap/ 解压缩:tar zxvf rlwrap-0.36.tar.gz 安装: ./configure&&make;make install 用户配置文件配置 # echo 'alias sqlplus="rlwrap sqlplus"'>> /home/oracle/.bash_profile # echo 'alias rman="rlwrap rman"'>> /home/oracle/.bash_profile (2) 分区时注意应考虑单独分/opt 大于6G,不信请看 [root@localhost ~]# du -sm /opt/11g 5541 /opt/11g 交换分区也应大点,但如果不是用于生产环境,忽略它也行。真正用到的不是很大。 [root@localhost ~]# free -m total used free shared buffers cached Mem: 2005 1932 73 0 33 821 -/+ buffers/cache: 1077 928 Swap: 4095 20 4075 (3)对于使用RHEL 6的朋友更有更改至CentOS 6的yum源。至于一些动态库文件所需的软件包,可以到rpmfind.net等网站查找。
转载于:https://blog.51cto.com/xunzhang/1298060