centos 7.6 安装Oracle 11g r2之一-安装环境设置

centos 7.6 安装Oracle 11g r2之一-安装环境设置

Scroll Down

这个教程想写很久了,而且Oracle让人头疼的地方比较多,因此,在此篇能够十分详细的记录一下!便于自己以后查阅。

绝对是最详细的,适合毫无经验的人查看!

安装这个内容比较多就分成几篇来描写。

第二部分链接如下:

《centos 7.6 安装Oracle 11g r2之二-oracle软件安装》

前期准备工作

1、准备文件

安装是在vm虚拟机上安装的centos7.6 1908版本。系统采用的最小安装,没有图形化!本地可联网。
Oracle11gr2 下载页面:
https://www.oracle.com/database/technologies/112010-linx8664soft.html

linux.x64_11gR2_database_1of2.zip (1,239,269,270 bytes) (cksum - 3152418844)
linux.x64_11gR2_database_2of2.zip (1,111,416,131 bytes) (cksum - 3669256139)

需要登录,没有的注册一个Oracle账户就可以了。

2、硬件条件

2.1、centos7上面硬件

内存2G 硬盘40G CPU4核。

2.2、Oracle11g硬件安装条件

2.2.1、内存

最小1G

2.2.2、swap

swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。

也就是说,当内存不够用时,我们使用 swap 分区来临时顶替。这种“拆东墙,补西墙”的方式应用于几乎所有的操作系统中。

RAWSwap
1G至2G1.5倍
2G至16G同RAW相等
16G以上16G

要是想查看你记得系统能否匹配,可以使用下面命令:

grep MemTotal /proc/meminfo     #查看内存
grep SwapTotal /proc/meminfo    #查看swap
free                            #查看内存及swap 还有利用率

1.JPG

从上面看,我的系统内存2G swap就需要3G,因此需要调整一下。
为了不麻烦我们此次添加2G空间

2.2.2.1、查看内存以及交换空间
free -h

8.JPG

2.2.2.2、创建2G大小的文件
dd if=/dev/zero of=/var/swapfile bs=1G count=2
  • if(即输入文件,input file),dev/zero 是Linux的一种特殊字符输入设备,用来创建一个指定长度用于初始化的空文件。
  • of(即输出文件,output file)。 /data/swapfile 是 swap 文件地址。
  • bs=1024 :单位数据块同时读写块字节大小为1024个字节即。
  • count=2 :数据块数量为2*1024。
  • 计算出swap分区的容量为:1KB21024=2G。

3.JPG

2.2.2.3、设置为swap虚拟交换文件

转换为swap分区

mkswap /var/swapfile

4.JPG

2.2.2.4、激活并使用此交换文件

挂载并激活分区

swapon /var/swapfile

5.JPG

2.2.2.5、设置权限为root可操作
chmod -R 0600 /var/swapfile
2.2.2.6、设置系统启动自动激活虚拟交换文件
vim /etc/fstab

/var/swapfile swap     swap    defaults  0 0   #手动添加

6.JPG

2.2.2.7、再次查看

7.JPG

2.2.3、硬盘要求

这个硬盘基本可以忽略了,目前,实际使用硬盘基本都是1T开始了,我就是测试用了40G也是够用的!

数据库软件硬盘

版本空间
企业版3.95G
标准版3.88G

数据文件要求

版本空间
企业版1.7G
标准版1.5G

3、配置centos7 环境

3.1、更新系统

yum -y update                        #更新centos系统

3.2、修改设备名称,应经习惯了部署啥,就叫啥名字!

hostnamectl set-hostname oracle       #oracle是我修改的名称

image.png!

需要重启生效

还有:

vim /etc/hosts

添加

127.0.0.1 Oracle
::1 Oracle 

9.JPG

修改网络主机名

3.3、修改时区,这个一般在安装的时候就要设置好!

timedatectl              #查看时区

10.JPG

查看时区

如果,不对的话可以使用下面命令更改过来。

timedatectl set-timezone Asia/Shanghai #设置系统时区为上海

3.4、关闭防火墙

systemctl disable firewalld.service                   #禁止firewall开机启动

11.JPG

关闭防火墙

firewall-cmd --state #查看默认防火墙状态,关闭后显示not running,开启后显示running

3.5、关闭selinux

这个常会引起一些麻烦,当出现问题你不知道怎么解决的话,都可以试着关闭它。

vi /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效

12.JPG

关闭selinux

getenforce #检测selinux是否关闭,Disabled 为关闭

4、安装Oracle依赖

注意:从Oracle 11g 11.2.0.2版本开始,在Linux x86_64上安装时,只需要安装64位的软件包,但是,对于11.2.0.2之前的任何Oracle database 11g,下表中列出的32位和64位的安装包都必须安装

需要安装的依赖包(版本号只能大于规定的版本,不能小于)

binutils-2.27-41.base.el7_7.1.x86_64
compat-libcap1-1.10-7.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.i686
gcc-4.8.5-39.el7.x86_64
gcc-c++-4.8.5-39.el7.x86_64
glibc-2.17-292.el7.x86_64
glibc-2.17-292.el7.i686
glibc-devel-2.17-292.el7.x86_64
glibc-devel-2.17-292.el7.i686
ksh-20120801-139.el7.x86_64
libaio-0.3.109-13.el7.x86_64
libaio-0.3.109-13.el7.i686
libaio-devel-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.i686
libgcc-4.8.5-39.el7.x86_64
libgcc-4.8.5-39.el7.i686
libstdc++-4.8.5-39.el7.x86_64
libstdc++-4.8.5-39.el7.i686
libstdc++-devel-4.8.5-39.el7.x86_64
libstdc++-devel-4.8.5-39.el7.i686
libXi-1.7.9-1.el7.x86_64
libXi-1.7.9-1.el7.i686
libXtst-1.2.3-1.el7.x86_64
libXtst-1.2.3-1.el7.i686
make-3.82-24.el7.x86_64
sysstat-10.1.5-18.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
unixODBC-2.3.1-14.el7.i686
unixODBC-devel-2.3.1-14.el7.x86_64
unixODBC-devel-2.3.1-14.el7.i686

安装命令

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

检查安装命令

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel | grep "not installed"

5、建立Oracle用户

安装Oracle数据库,则需要以下本地操作系统组和用户:

  • Oracle inventory组(通常为 oinstall)
  • OSDBA组 (通常为 dba)
  • OSOPER组 (通常为 oper)
  • Oracle软件所有者(通常为 oracle)

添加命令:

#创建用户组oinstall、dba、oper。
[root@oracle ~]# groupadd oinstall
[root@oracle ~]# groupadd dba
[root@oracle ~]# groupadd oper

#将用户Oracle 添加到oinstall、dba组里面。
[root@oracle ~]#usermod -g oinstall -G dba -d /home/Oracle Oracle

#给Oracle用户添加密码
[root@oracle ~]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符                 #输入密码不符合密码策略,确认后依然可以通过
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

#查看Oracle添加结果
[root@oracle ~]# id oracle
uid=1002(oracle) gid=1000(oinstall) 组=1000(oinstall),1001(dba)

image.png

6、修改系统内核参数和资源限制

6.1、在/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

6.1.1、sysctl.conf参数注释

fs.aio-max-nr

  • 该参数表示最大并发异步I/O请求数量,当系统中存在非常高的I/O请求时,如果该参数配置过低,可能导致数据库报ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O错误,遇到该问题需将fs.aio-max-nr调整为Oracle建议值3145728。

fs.file-max

  • 该参数表示系统级别最大可以打开文件句柄的数量,文件句柄代表系统中可以打开文件的数量。

kernel.shmall

  • shmall表示共享内存总量,以页为单位, 而shmall默认为4294967296 已经足够大了,一般不需要调整,shmall不能低于SGA大小,若shmall低于SGA大小,实例启动时会报:ORA-27123: unable to attach to shared memory segment错误,且无法启动实例。

kernel.shmmax

  • shmmax参数用来定义单个共享内存段的最大值,该值应该配置足够大,能够在一个共享内存段中容下整个的SGA ,如果配置过低可能导致需要创建多个共享内存段,这样可能会导致系统性能下降。
  • 269838450688/1024/1024/1024=252GB。
  • shmmax的单位为Byte(字节)。

kernel.shmmni

  • 该参数为共享内存段的最大数量,缺省值为4096 ,一般情况下无需调整。

kernel.sem

  • sem是semaphores的缩写,进程间通信--信号量,kernel.sem中4个参数分别对应SEMMSL SEMMNS SEMOPM SEMMNI
  • SEMMSL: 每个信号集的最大信号数量 ,一般该参数配置为数据库中最大 PROCESS 参数的设置值加上 10,Oracle 建议 SEMMSL 不低于100。
  • SEMMNS:控制整个系统中信号量的最大数量,使用以下计算公式来确定系统中需要配置的信号的最大数量,(SEMMSL * SEMMNI)=SEMMNS。4096*128=524288。
  • SEMOPM: 该参数表示在一个 semop call中,每个信号量所允许的最大操作数量,一个信号集可以拥有每个信号集当中的最大数量SEMMSL 信号,建议 SEMOPM 等于SEMMSL 。 Oracle 建议SEMOPM的值不低于 100 。
  • SEMMNI:该参数用于控制整个系统中信号集的最大数量。Oracle 建议SEMMNI 的值不低于 100 。

net.ipv4.ip_local_port_range

  • 该参数配置向外连接端口范围,缺省为1024到4999。

net.core.rmem_*

  • net.core.rmem_default默认数据接收窗口大小。
  • net.core.rmem_max最大数据接收窗口大小。
  • net.core.wmem_default默认数据发送窗口大小。
  • net.core.wmem_max最大数据发送窗口大小。
  • 单位均为字节。

保存以后,使用下面命令使其生效!

sysctl -p

14.JPG

6.2、在/etc/security/limits.conf中添加如下参数

之所以对oracle用户做资源的限制,其实主要是出于性能上的考虑,防止oracle用户过渡消耗有限资源,使其系统变得臃肿缓慢。

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

注释:

  • oracle:用户名
  • soft和hard:其实有三种,有 soft,hard 和“-”,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard限制高。用“-”就表明同时设置了soft 和 hard 的值。
  • nofile:打开文件的最大数目
  • stack:最大栈大小
  • noproc:进程的最大数目

15.JPG

6.3、在/etc/pam.d/login文件中,添加下面内容

session required /lib64/security/pam_limits.so
session required pam_limits.so

注释

  • 在/etc/pam.d/login 文件中添加session required /lib64/security/pam_limits.so一行内容来实现/etc/security/limits.conf中定义的各项限制。

注意路径

  • 32位系统 session required /lib/security/pam_limits.so
  • 64位系统 session required /lib64/security/pam_limits.so

16.JPG

6.4、/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

使用/etc/profile文件生效

source /etc/profile

17.JPG

7.禁用使用Transparent HugePages

(启用Transparent HugePages,可能会导致造成内存在运行时的延迟分配,Oracle官方建议使用标准的HugePages)
查看是否启用 如果显示 [always]说明启用了

cat /sys/kernel/mm/transparent_hugepage/enabled

18.JPG

禁用Transparent HugePages,关闭方法有两种,一种为临时关闭,一种为永久关闭

7.1、临时关闭

[root@oracle ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@oracle ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag

20.JPG

7.2、永久关闭

vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

19.JPG

授予执行权限

[root@localhost ~]# chmod +x /etc/rc.d/rc.local

重新启动系统以使更改成为永久更改

22.JPG