Oracle 11g在Linux上的安装

  1. 创建所需用户和组

vim mk_user.sh

groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
useradd -u 501 -g oinstall -G dba,oper oracle

sh mk_user.sh

  1. 创建所需的目录
    vim mk_dir.sh

mkdir -p /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
mkdir -p /u01/app/oracle
mkdir /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall /u01
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1
chmod -R 775 /u01/app/oracle/product/11.2.0/dbhome_1

sh mk_dir.sh
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  1. 安装所需要的安装包
    a. 将光盘挂载到/mnt中
    mount /dev/cdrom /mnt
    b. 备份原有repo文件,并建立新的repo文件
    mkdir /etc/yum.repo.d/bak
    mv /etc/yum.repo.d/*.repo /etc/yum.repo.d/bak
    vim /etc/yum.repo.d/cdrom.repo

[cdrom]
name=cdrom
baseurl=file:///mnt
enabled=1
gpgcheck=0
multilib_policy=all

保存退出

清理yum缓存并重建新缓存:
yum clean all
yum makecache

c.安装所需的包
yum install binutils compat-libcapl compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5-24 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make-3.81 sysstat-7.0.2


Redhat需要单独安装
compat-libstdc++-33 和pdksh
pdksh是一个老包了,新的oracle都使用ksh包了,但是oracle的check机制里面并没有把这个check去掉,所以在执行界面安装oracle的时候,还会有告警信息,我们可以忽略掉它,然后看看ksh有没有安装,如果没有安装就安装ksh,用ksh就可以。


  1. 修改hosts文件
    vim /etc/hosts
    添加ip和主机名到hosts文件

5.修改/etc/sysctl.conf

vim /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048576

sysctl –p 使当前修改生效

  1. 配置oracle用户的资源限制

vim /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

  1. 修改profile文件

vim /etc/profile
添加以下内容

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

  1. 修改用户环境变量(在oracle用户下操作)
    vim .bash_profile

#!/bin/bash
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=prod; export ORACLE_SID
ORACLE_UNQNAME=prod; export ORACLE_UNQNAME
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$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

保存退出后执行如下命令使以上设置立即生效:
source /home/oracle/.bash_profile

  1. 解压安装包
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip

  2. 安装
    如果操作系统是中文的话,安装时会有乱码可以在执行安装前先执行
    export LANG=en_US.UTF-8
    然后执行./runInstaller

    Redhat 7.4安装时会报
    Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'.

解决:
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk

找到如下一行
$(MK_EMAGENT_NMECTL)

将这一行更改为:
$(MK_EMAGENT_NMECTL) -lnnz11

第一个是字母l,最后两个是数字1