安装过程中遇到的问题:

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-修改主机名

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

[root@xuegod64 ~]# hostname oracledb

[root@xuegod64 ~]# cat /etc/sysconfig/network

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

 

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

[root@oracledb ~]# vim /etc/hosts

[root@oracledb ~]# more /etc/hosts

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

 

步骤3-安装依赖包

[root@oracledb ~]# 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

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

 

 

步骤4-创建用户和组

[root@oracledb ~]# groupadd -g 251 oinstall

[root@oracledb ~]# groupadd -g 252 dba

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

    [root@oracledb ~]# echo oracle | passwd --stdin oracle

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

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

 

参数解释:

-g:指定用户所属的组

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

-u:指定用户ID

-d:指定用户主目录

-s:指定用户登录shell

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

 

步骤 5     修改内核参数

[root@oracledb ~]# vim /etc/sysctl.conf

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

参数解释:

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的值,表示系统信号量集合总数。

 

 

 

[root@oracledb ~]# 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 -修改系统资源限制

[root@oracledb ~]# vim /etc/security/limits.conf

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

参数解释:

oracle   soft  nproc   2047

oracle   hard  nproc   16384

oracle   soft  nofile   1024

oracle   hard  nofile   65536

 

[root@oracledb ~]# vim /etc/pam.d/login

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

参数解释:

session required pam_namespace.so

session required pam_limits.so

 

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

[root@oracledb ~]# mkdir -p /opt/oracle/app/

[root@oracledb ~]# mkdir -p /opt/oracle/oradata

[root@oracledb ~]# chmod 755 /opt/oracle/app/

[root@oracledb ~]# chmod 755 /opt/oracle/

[root@oracledb ~]# chown oracle:oinstall -R /opt/oracle/

 

步骤 7-设置oracle环境变量

su – oracle 切换到oracle用户

[oracle@oracledb ~]$ vim .bash_profile

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

参数解释:

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

 

[oracle@oracledb ~]$ source ./.bash_profile #立即生效

 

步骤 8 -关闭Selinux

[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

[root@oracledb ~]# setenforce 0

[root@oracledb ~]# getenforce

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

 

步骤9- 关闭防火墙

[root@oracledb ~]# service iptables stop

[root@oracledb ~]# 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,可能会出现一些异常)

   

解压

[root@oracledb~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_1of2.zip

[root@oracledb~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_2of2.zip

[root@oracledb ~]# mv database/ /opt/oracle/

[root@oracledb ~]#xhost+

[root@oracledb ~]#su – oracle

[oracle@oracledb ~]$ ./database/runInstaller

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

开始安装

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

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

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

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

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

 

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

执行脚本

 /opt/oracle/oraInventory/orainstRoot.sh

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

 

验证

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

 

   

相关文章: