CentOS 7安装Oracle 11G教程
一、 安装环境和工具
系统环境:CentOS Linux release 7.3.1611 (Core)
Oracle版本:Oracle Database 11g R2
工具:Xshell6和Xftp6
注:系统安装时需安装桌面组件。
二、 安装前准备
1、 关闭selinux
查看selinux状态:getenforce 或者sestatus –v
临时关闭:setenforce 0
永久关闭:vim /etc/selinux/config 设置SELINUX=disabled
注:修改/etc/selinux/config 后需重启服务器才生效(reboot)
2、 关闭firewalld 安装iptables(服务器不建议执行,直接使用firewalld)
systemctl status firewalld.service
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
yum -y install iptables-services
systemctl restart iptables.service
systemctl enable iptables.service
3、 创建用户及安装目录,安装依赖包
创建用户:
[root@hzjz ~]# groupadd oinstall
[root@hzjz ~]# groupadd dba
[root@hzjz ~]# useradd -g oinstall -G dba -m oracle
[root@hzjz ~]# passwd oracle
创建安装目录并解压安装文件:
[root@hzjz ~]# mkdir -p /ora
通过Xftp将
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
上传到/ora目录下
[root@hzjz ~]# unzip -d /ora/ /ora/linux.x64_11gR2_database_1of2.zip
[root@hzjz ~]# unzip -d /ora/ /ora/linux.x64_11gR2_database_2of2.zip
[root@hzjz ~]# chown -R oracle:oinstall /ora
[root@hzjz ~]# chmod 755 -R /ora
[root@hzjz ~]# mkdir -p /u01/app
[root@hzjz ~]# mkdir -p /u01/app/tmp
[root@hzjz ~]# mkdir -p /u01/app/oracle
[root@hzjz ~]# chown -R oracle:oinstall /u01
[root@hzjz ~]# chmod 755 -R /u01
4、 安装oracle所需依赖
[root@hzjz ~]# yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
5、 系统内核修改
说明:
内核参数需要注意,shmall 和shmmax 的值由服务器内存决定:
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取1010241024*1024-1=10737418239。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
4G内存左右服务器配置:
[root@hzjz ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1048576
kernel.shmmax = 3221225471
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
8G内存左右服务器配置:
[root@hzjz ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
16/32G内存左右服务器配置:
[root@hzjz ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 17179869183
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
[root@hzjz ~]# sysctl -p
6、 修改认证模块
[root@hzjz ~]# vim /etc/security/limits.conf
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
7、 修改用户登录认证
[root@hzjz ~]# vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
注:
32位:/lib/security/pam_limits.so
64位:/lib64/security/pam_limits.so
8、 设置环境变量(ORACLE_HOME 设置为安装目录product下默认目录)
[root@hzjz ~]# vim /etc/profile
#oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
9、 修改Oracle用户环境变量
[oracle@hzjz ~]# vim /home/oracle/.bash_profile
export TMP=/u01/app/tmp
export TMPDIR=/u01/app/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export