一、 实验环境:
- 操作系统:RedHat 7.2 x64
- 软件版本:Oracle 12c R1
二、系统要求:
- Oracle 12C R1 对系统内存的最低要求为1G,推荐2G或更大的内存。
- Oracle对交换分区(Swap Space)的推荐设置如下:
- 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
命令