一、 实验环境:

  • 操作系统:RedHat 7.2 x64
  • 软件版本:Oracle 12c R1

二、系统要求:

  1. Oracle 12C R1 对系统内存的最低要求为1G,推荐2G或更大的内存。
  2. Oracle对交换分区(Swap Space)的推荐设置如下:
  3. Oracle 12c 企业版需要6.4G大小的磁盘空间,标准版需要6.1G大小的磁盘空间。/tmp 需要至少1G的大小。

三、修改系统配置

系统配置的修改已编写成脚本,执行以下脚本:

#!/bin/bash
# Author:YUjichang
# install oracle 12c database

yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++-devel libstdc++-devel.i686 compat-libstdc++-33 compat-libstdc++-33.i686 libXi libXi.i686 libXtst libXtst.i686 make sysstat unixODBC unixODBC-devel xterm xorg-x11-xauth unzip tigervnc-server.x86_64

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

HOSTNAME=$(hostname)
#read -p "ip address: " IP
version=$(cat /etc/centos-release | awk -F' ' '{print $(NF-1)}' | cut -d '.' -f 1)
if [ $version -eq 6 ];then
    IP=$(ifconfig eth0 | awk -F'[ :]+' 'NR==2{print $4}')
elif [ $version -eq 7 ];then
    IP=$(ifconfig eth0 | awk '/inet /{print$2}')
fi
echo "$IP $HOSTNAME" >> /etc/hosts

MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')
SHMMAX=$(expr $MEMTOTAL \* 4 / 5)
SHMMNI=4096
SHMALL=$(expr $MEMTOTAL / \( 4 \* 1024 \))
sed -i.bak 's/kernel.shmmax/#kernel.shmmax/' /etc/sysctl.conf
sed -i 's/kernel.shmall/#kernel.shmall/' /etc/sysctl.conf
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = $SHMMAX
kernel.shmall = $SHMALL
kernel.shmmni = $SHMMNI
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
kernel.panic_on_oops = 1
EOF
sysctl -p

cp /etc/security/limits.conf /etc/security/limits.conf.bak
cat >> /etc/security/limits.conf << EOF
oracle  soft  nproc   2047
oracle  hard  nproc   16384
oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  stack   10240
oracle  hard  stack   32768
EOF

if [ -f /etc/security/limits.d/20-nproc.conf ] ;then
    sed -i "s/^\*/#\*/" /etc/security/limits.d/20-nproc.conf
    echo "*       -       nproc   16384" >> /etc/security/limits.d/20-nproc.conf
elif [ -f /etc/security/limits.d/90-nproc.conf  ];then
    sed -i "s/^\*/#\*/" /etc/security/limits.d/90-nproc.conf
    echo "*       -       nproc   16384" >> /etc/security/limits.d/90-nproc.conf
fi

sed -i.bak '14asession    required     pam_limits.so' /etc/pam.d/login

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo 'oracle' | passwd --stdin oracle
mkdir -p /oracle/app/oracle/product/12.1.0/db_1
mkdir -p /oracle/app/oraInventory
chown -R oracle:oinstall /oracle/
chmod -R 775 /oracle

if [ ! -d /data ];then
    mkdir /data
    chown -R oracle /data
else
    cd /data/
    unzip linuxamd64_12102_database_1of2.zip
    unzip linuxamd64_12102_database_2of2.zip
    chown -R oracle /data
fi

cat >> /home/oracle/.bash_profile << EOF
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/12.1.0/db_1  
ORACLE_SID=orcl
PATH=\$PATH:\$HOME/bin:\$ORACLE_HOME/bin  
LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib  
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
export NLS_LANG=american_america.AL32UTF8

if [ \$USER = "oracle" ]; then
    if [ \$SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi
EOF

四、安装oracle

执行完系统配置修改脚本后,安装oracle有两种方式,一是图形化界面安装,二是静默安装。

本文首先介绍图形化界面安装,linux服务器一般没有图形化界面,所以需要借助XSERVER,可以通过xmanger软件或者vnc软件提供图形化界面。

本文采用vnc软件,脚本已安装好tigervnc软件包,进入到oracle用户,开启vnc

su - oracle
vncserver

然后打开vnc-view客户端,连接到vnc-server服务端。 远程到服务器后,执行相关安装命令就会弹出图形界面,安装根据提示一步步安装就行。

1、安装软件
 运行./runInstaller命令
 根据提示下一步,到最后,会提示以root身份执行以下两个脚本,需要注意的是,先执行完脚本再点 OK 按钮:

/oracle/app/oraInventory/orainstRoot.sh
/oracle/app/oracle/product/12.1.0/db_1/root.sh

2、安装监听
 运行netca命令

3、安装实例
 运行dbca命令