redhat6.5部署oracle 11G R2 (参考配置)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redhat6.5部署oracle 11G R2 (参考配置)相关的知识,希望对你有一定的参考价值。

安装过程中遇到的问题:

1.创建oracle用户时,最好指定家目录,常规的为/opt/oracle,默认的/home/oracle也是可以的。

2.在"添加主机名与IP地址对应"一步中,一定要配置对IP,不然安装过程中会出现"Oracle Net Configuration Assisant failed"的错误

 

RHEL6.5安装部署Oracle 11g R2数据库

 

 

  • 实验环境

    

虚拟机版本

VM12 pro

操作系统

RedHat-6.5-x86_64

主机名

oracledb

内存

4G官方建议最低1G

硬盘

30G依据自己的实际需求及配置而定

Oracle数据文件

linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

 

 

  • 系统调整步骤

 

步骤1-修改主机名

[[email protected] ~]# sed -i "s/HOSTNAME=xuegod64/HOSTNAME=oracledb/" /etc/sysconfig/network

[[email protected] ~]# hostname oracledb

[[email protected] ~]# cat /etc/sysconfig/network

技术分享

 

步骤2-添加主机名与IP对应记录

[[email protected] ~]# vim /etc/hosts

[[email protected] ~]# more /etc/hosts

技术分享

 

步骤3-安装依赖包

[[email protected] ~]# yum -y install gcc gcc-c++ make binutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-commonglibc-devel libaio libaio-devel libgcclibstdc++ libstdc++-devel unixODBC unixODBC-devel

技术分享

 

 

步骤4-创建用户和组

[[email protected] ~]# groupadd -g 251 oinstall

[[email protected] ~]# groupadd -g 252 dba

[[email protected] ~]# useradd -u 256 -g oinstall -G dba -d /opt/oracle -s /bin/bash -m

    [[email protected] ~]# echo oracle | passwd --stdin oracle

技术分享

技术分享

 

参数解释:

-g:指定用户所属的组

-G:指定用户所属的附加组

-u:指定用户ID

-d:指定用户主目录

-s:指定用户登录shell

-m:若用户主目录不存在,则自动创建。

 

步骤 5     修改内核参数

[[email protected] ~]# vim /etc/sysctl.conf

技术分享

参数解释:

kernel.msgmax = 65536 #从一个进程发送到另一个进程的消息的最大长度。进程间的消息传递是在内核的内存中进行,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。缺省设置:8192

 

net.ipv4.ip_local_port_range= 9000 65500 #表示应用程序可使用的IPv4端口范围。

fs.file-max = 6815744 # 该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

kernel.shmmni = 4096 #该参数是共享内存段的最大数量。shmmni缺省值4096.

 

net.core.rmem_default=262144 # 表示套接字接收缓冲区大小的缺省值。

net.core.wmem_default=262144 #表示套接字发送缓冲区大小的缺省值。

net.core.rmem_max=4194304     #表示套接字接收缓冲区大小的最大值。

net.core.wmem_max=1048576 #表示套接字发送缓冲区大小的最大值。

fs.aio-max-nr = 1048576 # 此参数限制并发未完成的请求,应该设置避免I/O子系统故障。

kernel.shmall = 10523004

#kernel.shmall:

    该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)

kernel.shmmax = 6465333657

用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。官方建议值:

32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。 

kernel.sem = 250 32000 100 128

#以kernel.sem = 250 32000 100 128为例:

       250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

       32000是参数semmns的值,表示系统内可允许的信号量最大数目。

       100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

       128是参数semmni的值,表示系统信号量集合总数。

 

 

 

[[email protected] ~]# sysctl -p #立即生效

 

 

########################################################################

内核参数:

shmmax:

共享内存段的最大字节数,建议设大点,甚至可以大过物理内存的字节数。该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。

shmmin:

共享内存段的最小尺寸。这个参数的设置一般不会出问题。

shmmni:

共享内存段的最大数目。这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是4096 。通常不需要更改。

shmseg:

每个进程可分配的最大共享内存段数目

shmall:

最大的并发共享内存段数目,比SGA还要大。该参数表示系统一次可以使用的共享内存总量(以页为单位,一个页大小为4KB)。缺省值就是2097152,通常不需要修改。

   

sem:

是semaphores的缩写,该参数表示设置的信号量。它包含四个值:semmsl、semmns、semopm、semmni。

# sysctl -a|grep sem

kernel.sem = 250        32000   100     128

semmns:

信号灯的最大数量,跟ORACLE的PROCESS数有关。SEMMSL * SEMMNI

semopm:

系统调用允许的信号量最大个数。至少100;或者等于SEMMSL

semmni:

系统信号量set最大个数。最少128

semmsl:

每个信号灯集合中最多的信号灯数目。最小250;对于processes参数设置较大的系统建议设置为processes+10。

   

msgmni:

指定消息队列标识的最大数目。缺省设置:16

msgmax:

从一个进程发送到另一个进程的消息的最大长度。进程间的消息传递是在内核的内存中进行,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。缺省设置:8192

msgmnb:

一个消息队列中最大的字节数。缺省设置:16384

   

optmem_max:每个socket的最大缓存大小

rmem_default:接收socket的缺省缓存大小(字节)

rmem_max:接收socket的最大缓存大小(字节)

wmem_default:发送的socket缺省缓存大小(字节)

wmem_max:发送的socket最大缓存大小(字节)

   

p_local_port_range:表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为10000到65000。(注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口!

file-max:表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。如果设置过小,Oracle将无法启动,或运行不正常。

########################################################################

 

步骤 5 -修改系统资源限制

[[email protected] ~]# vim /etc/security/limits.conf

技术分享

参数解释:

oracle   soft  nproc   2047

oracle   hard  nproc   16384

oracle   soft  nofile   1024

oracle   hard  nofile   65536

 

[[email protected] ~]# vim /etc/pam.d/login

技术分享

参数解释:

session required pam_namespace.so

session required pam_limits.so

 

步骤 6 -创建安装目录及设置权限

[[email protected] ~]# mkdir -p /opt/oracle/app/

[[email protected] ~]# mkdir -p /opt/oracle/oradata

[[email protected] ~]# chmod 755 /opt/oracle/app/

[[email protected] ~]# chmod 755 /opt/oracle/

[[email protected] ~]# chown oracle:oinstall -R /opt/oracle/

 

步骤 7-设置oracle环境变量

su – oracle 切换到oracle用户

[[email protected] ~]$ vim .bash_profile

技术分享

参数解释:

export ORACLE_BASE=/opt/oracle/app

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_SID=orcl

 

[[email protected] ~]$ source ./.bash_profile #立即生效

 

步骤 8 -关闭Selinux

[[email protected] ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

[[email protected] ~]# setenforce 0

[[email protected] ~]# getenforce

技术分享

 

步骤9- 关闭防火墙

[[email protected] ~]# service iptables stop

[[email protected] ~]# chkconfig iptables off

 

 

 

  • 安装Oracle

 安装步骤

 (1)    上传Oracle安装包

 首先linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip上传至Oracle家目录/opt/oracle

   

(2)    利用Oracle用户登录并解压安装包

利用oracle用户登录图形界面,解压文件,并执行安装(如果不用oracle用户登录安装,例如从root用户切换到oracle,可能会出现一些异常)

   

解压

[[email protected]~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_1of2.zip

[[email protected]~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_2of2.zip

[[email protected] ~]# mv database/ /opt/oracle/

[[email protected] ~]#xhost+

[[email protected] ~]#su – oracle

[[email protected] ~]$ ./database/runInstaller

 

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

开始安装

技术分享

技术分享

技术分享

 安装完成后,会提示执行下面两个脚本

 利用root用户登录,到下面的两个目录下执行脚本即可

 

技术分享

执行脚本

 /opt/oracle/oraInventory/orainstRoot.sh

/opt/oracle/app/product/11.2.0/dbhome_1/root.sh

 

验证

技术分享

 

   

以上是关于redhat6.5部署oracle 11G R2 (参考配置)的主要内容,如果未能解决你的问题,请参考以下文章

redhat6.5安装oracle 11g

[转帖]Oracle 11G RAC For Windows 2008 R2部署手册

oracle 11g r2 rac for windows 2003 求个下载地址?先谢了!

如何在redhat6.5下安装oracle11gr2

RHEL 6.5 + Oracle 11g安装

Oracle数据库11g基于rehl6.5的配置与安装