Oracle 11g+RAC+RHEL6.5+udev+ASM+PSU

2024-11-07ASM / Linux/AIX / Oracle / RAC / 性能优化

1.安装前准备:

  • 操作系统:RHEL6.5
  • 存储:华为,已配置多路径
  • 业务网卡,心跳网卡绑定,并通过冗余测试
  • YUM源配置
  • BASH/SSL漏洞补丁

2.检查系统要求

A.LINUX版本

cat /etc/issue

B.内存(至少1G)

grep MemTotal /proc/meminfo

C.SWAP分区

当内存为2.5GB-16GB时,Swap等于系统内存大小。

当内存大于16GB时,Swap等于16GB即可。

D.TMP空间

df -h /tmp

lvcreate -L 2G -n lv_tmp vg_temp

mount /dev/vg_temp/lv_tmp /tmp

df -h /tmp

E.检查补丁包

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat

binutils-2.20.51.0.2-5.36.el6.x86_64

compat-libcap1-1.10-1.x86_64

compat-libstdc++-33-3.2.3-69.el6.x86_64

gcc-4.4.7-4.el6.x86_64

gcc-c++-4.4.7-4.el6.x86_64

glibc-2.12-1.132.el6.x86_64

glibc-2.12-1.132.el6.i686

glibc-devel-2.12-1.132.el6.x86_64

ksh-20120801-10.el6.x86_64

libgcc-4.4.7-4.el6.x86_64

libgcc-4.4.7-4.el6.i686

libstdc++-4.4.7-4.el6.x86_64

libstdc++-devel-4.4.7-4.el6.x86_64

libaio-0.3.107-10.el6.x86_64

libaio-devel-0.3.107-10.el6.x86_64

make-3.81-20.el6.x86_64

sysstat-9.0.4-22.el6.x86_64

F.禁用防火墙

service iptables status

service iptables stop

chkconfig iptables off

G. 关闭SELinux

vi /etc/selinux/config

将文件中的SELINUX="" 为 disabled ,然后重启。

如果不想重启系统,使用命令setenforce 0

注:

setenforce 1 设置SELinux 成为enforcing模式

setenforce 0 设置SELinux 成为permissive模式

getenforce/setenforce查看和设置SELinux的当前工作模式

H.核心参数调整

vim /etc/sysctl.conf

Oracle install config

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 270853791744 –设置为物理内存大小(B)

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

2.设置/etc/hosts:

要求:

私有IP地址必需与公网分离,两个节点可互相访问可以ping通,必须在 /etc/hosts里有;

虚拟IP地址同公网IP地址是一个网段的,如果有DNS就注册在DNS中,如果没有DNS就写在/etc/hosts文件里;

公网IP地址,是主机真正的IP地址,主机管理员预先分配,如果有DNS就注册在DNS中,如果没有DNS就写在/etc/hosts文件里),并且保证写入每个客户系统中的hosts文件。

在各个节点的网卡配置必须相同,例如:第一个节点公共IP是用bind0,那么其他节点也得用bind0

3.建立oracle、grid用户和dba组:

创建组

/usr/sbin/groupadd -g 1000 oinstall

/usr/sbin/groupadd -g 1020 asmadmin

/usr/sbin/groupadd -g 1021 asmdba

/usr/sbin/groupadd -g 1022 asmoper

/usr/sbin/groupadd -g 1031 dba

/usr/sbin/groupadd -g 1032 oper

创建用户

/usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba -u 1100 grid

/usr/sbin/useradd -g oinstall -G dba,asmdba,oper -u 1101 oracle

4.设置系统限制:

–在每个节点上执行相同操作

im /etc/security/limits.conf

SETTING for ORACLE

racle soft nproc 2047

racle hard nproc 16384

racle soft nofile 4096

racle hard nofile 65536

racle soft stack 10240

racle hard stack 32768

rid soft nproc 2047

grid hard nproc 16384

grid soft nofile 4096

grid hard nofile 65536

grid soft stack 10240

grid hard stack 32768

5.建立GRID及RAC安装目录:

–分别在2个节点建立以下目录

mkdir -p /oracle/app/11.2.0/grid

mkdir -p /oracle/app/grid

mkdir -p /oracle/app/oracle

chown -R grid:oinstall /oracle

chown grid:oinstall /oracle/app/11.2.0/grid

chown grid:oinstall /oracle/app/grid

chown oracle:oinstall /oracle/app/oracle

chmod -R 775 /oracle/

6.设置NTP服务:

分别在2个节点设置NTP服务

vim /etc/ntp.conf

driftfile /var/lib/ntp/drift

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

server 202.106.5.193 prefer

server 172.16.66.92

restrict 202.106.5.193

restrict 172.16.66.92

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

vim /etc/sysconfig/ntpd

Drop root to id 'ntp:ntp' by default.

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

修改完这两个文件,就可以启动服务了。

rpm -q ntp

ntp-4.2.6p5-1.el6.x86_64

service ntpd start

可以通过下面两条命令查看ntp服务的状态是否正常:

ntpq -p

ntpstat

7.设置用户的环境变量:

grid用户:

vim ~/.bash_profile

.bash_profile

Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export ORACLE_BASE=/oracle/app/grid

export ORACLE_HOME=/oracle/app/11.2.0/grid

export ORACLE_SID=+ASM2

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_TERM=xterm

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

umask 022

export TMOUT=0

oracle用户:

vim ~/.bash_profile

.bash_profile

Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=test

export LANG=en_US.UTF-8

export NLS_LANG=american_america.ZHS16GBK

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin:/home/oracle/run

export ORACLE_TERM=xterm

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

export GI_HOME=/oracle/app/11.2.0/grid

export PATH=${PATH}:$GI_HOME/bin

export ORA_NLS10=$GI_HOME/nls/data

umask 022

export TMOUT=0

8.配置UDEV:

以下操作需要2个节点都执行:

cd /etc/udev/rules.d

vim 99-oracle-asmdevices.rules

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name", RESULT=="364862761000560eb82f364f700000014", NAME="asmdisk001", OWNER="grid", GROUP="asmadmin", MODE="0660"

其中RESULT的值为磁盘的UUID

获取磁盘UUID的命令如下:

scsi_id –whitelisted –replace-whitespace –device=/dev/sdb

建议使用脚本将所有磁盘的UUID输出到x.log,然后使用列编辑搞定所有asm磁盘

./test.sh > x.log

执行并核对完99-oracle-asmdevices.rules后,便可以执行命令启动udev了:

./sbin/start_udev

ls -al /dev/asm*

brw-rw—- 1 grid asmadmin 8, 16 Aug 7 14:57 /dev/asmdisk001

9.安装cvudisk包

cd $INSTALL_MEDIA/grid/rpm/

CVUQDISK_GRP=oinstall;export CVUQDISK_GRP –可以在此处自定义安装用户组

rpm -ivh cvuqdisk-1.0.9-1.rpm

Preparing… ########################################### [100%]

Using default group oinstall to install package

1:cvuqdisk ########################################### [100%]

10.配置SSH互信

cp $INSTALL_MEDIA/grid/sshsetup/sshUserSetup.sh /home/grid

cd /home/grid

chown grid:oinstall sshUserSetup.sh

su – grid

$ ./sshUserSetup.sh -user grid -hosts "test1 test1-priv test2 test2-priv" -advanced -noPromptPassphrase

$ date;ssh test2 date; ssh test1-priv date; ssh test2-priv date

cp $INSTALL_MEDIA/grid/sshsetup/sshUserSetup.sh /home/oracle

cd /home/oracle

chown oracle:oinstall sshUserSetup.sh

su – oracle

$ ./sshUserSetup.sh -user oracle -hosts "test1 test1-priv test2 test2-priv" -advanced -noPromptPassphrase

$ ./date;ssh test date; ssh test1-priv date; ssh test2-priv date

11.运行GI的安装前检查

su – grid

$ cd $INSTALL_MEDIA/grid/

$ ./runcluvfy.sh stage -pre crsinst -n test1,test2 -fixup -verbose

12.安装GI软件

su – grid

$ cd $INSTALL_MEDIA/grid

$ ./runInstaller

后面的就略了,不想贴图…累…

13.安装Database软件

su – oracle

$ cd $INSTALL_MEDIA/database/

$ ./runcluvfy.sh stage -pre dbcfg -n test1,test2

后面同略,点点点的操作请自己琢磨着选。

PS:官方建议GI和Database都把中文语言包装上去,以后可能会用到。

14.Opatch补丁更新

首先需要替换更新/u01/app/11.2.0/grid/和$ORACLE_HOME下的OPatch文件,记得停crs。

然后执行以下程序:

root用户执行:

/oracle/app/11.2.0/grid/crs/install/rootcrs.pl -unlock

grid用户执行:

$ /oracle/app/11.2.0/grid/OPatch/opatch napply -oh /oracle/app/11.2.0/grid -local /oracle/app/11.2.0/grid/OPatch/20996923/20831122

$ /oracle/app/11.2.0/grid/OPatch/opatch napply -oh /oracle/app/11.2.0/grid -local /oracle/app/11.2.0/grid/OPatch/20996923/20299019

$ /oracle/app/11.2.0/grid/OPatch/opatch apply -oh /oracle/app/11.2.0/grid -local /oracle/app/11.2.0/grid/OPatch/20996923/20760982

oracle用户执行:

$ /oracle/app/11.2.0/grid/OPatch/20996923/20831122/custom/server/20831122/custom/scripts/prepatch.sh -dbhome /oracle/app/oracle/product/11.2.0/dbhome_1

$ /oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch napply -oh /oracle/app/oracle/product/11.2.0/dbhome_1 -local /oracle/app/11.2.0/grid/OPatch/20996923/20831122/custom/server/20831122

$ /oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch apply -oh /oracle/app/oracle/product/11.2.0/dbhome_1 -local /oracle/app/11.2.0/grid/OPatch/20996923/20760982

$ /oracle/app/11.2.0/grid/OPatch/20996923/20831122/custom/server/20831122/custom/scripts/postpatch.sh -dbhome /oracle/app/oracle/product/11.2.0/dbhome_1

root用户执行:

/oracle/app/11.2.0/grid/rdbms/install/rootadd_rdbms.sh
/oracle/app/11.2.0/grid/crs/install/rootcrs.pl -patch

安装完成后运行一下命令检查版本是否更新:

$ opatch lsinventory

Oracle Interim Patch Installer version 11.2.0.3.11

Copyright (c) 2015, Oracle Corporation. All rights reserved.

15.ASM参数设置

alter diskgroup DATA set attribute 'disk_repair_time'='2400h';

alter diskgroup ARCH set attribute 'disk_repair_time'='2400h';

alter diskgroup OCRDG set attribute 'disk_repair_time'='2400h';

alter system set asm_diskgroups='DATA','ARCH' SCOPE=SPFILE sid='*';

alter system set memoey_max_target=4096M scope=spfile;

alter system set memoey_target=4096M scope=spfile;

16.创建数据库

此处也略了…大家懂得。

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-12/125860.htm ![1756814797587-7ff17101-6b86-427b-80b7-d64f1c92ff1b.gif](http://www.linuxidc.com/)