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

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

[root@xuegod64 ~]# hostname oracledb

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

 

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

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

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

 

步骤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

 

 

步骤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

 

参数解释:

-g:指定用户所属的组

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

-u:指定用户ID

-d:指定用户主目录

-s:指定用户登录shell

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

 

步骤 5     修改内核参数

[root@oracledb ~]# 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的值,表示系统信号量集合总数。

 

 

 

[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

参数解释:

oracle   soft  nproc   2047

oracle   hard  nproc   16384

oracle   soft  nofile   1024

oracle   hard  nofile   65536

 

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

参数解释:

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

参数解释:

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

 

步骤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

 

开始安装

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

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

 

执行脚本

 /opt/oracle/oraInventory/orainstRoot.sh

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

 

验证

 

   

posted @ 2016-10-19 08:25  生活就是过过看  阅读(5638)  评论(0编辑  收藏  举报