磁盘空间与虚拟内存检查:
[root@node1 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              11G  5.0G  4.6G  53% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                 296M     0  296M   0% /dev/shm
[root@node1 /]# free
             total       used       free     shared    buffers     cached
Mem:        604324     591956      12368          0      15628     327772
-/+ buffers/cache:     248556     355768
Swap:      1534196        196    1534000
检查操作系统版本号:
[root@node1 /]# uname -a
Linux node1 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux
[root@node1 /]# vi /etc/redhat-release
Red Hat Enterprise Linux Server release 4.5 (Tikanga)
----------------------------------------------------------------------------
配置主机名:
[root@node1 /]# vi /etc/sysconfig/network
HOSTNAME=node1
配置主机名HOSTS 文件:
[root@node1 /]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.62.240  node1
192.168.62.241  node1-vip
10.0.0.1        node1-priv

192.168.62.235  node2
192.168.62.236  node2-vip
10.0.0.2        node2-priv
配置完后,重启才能生效.
------------------------------------------------------------------------------------
配置ORACLE 用户,组 安装目录:
[root@node1 opt]# groupadd -g 1001 oinstall
[root@node1 opt]# groupadd -g 1002 dba
[root@node1 opt]# useradd -u 1001 -g oinstall -G dba oracle
[root@node1 opt]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@node1 opt]# mkdir -p /u01/app/oracle/product/10.2.0/crs
[root@node1 opt]# mkdir -p /u01/app/oracle/product/10.2.0/rac_db
[root@node1 opt]# chown -R oracle:oinstall /u01/
-----------------------------------------------------------------------------------
配置系统内核参数:
root@node1 /]# vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 536870912  //此参数应配置物理内存1半,安装时不能小于当前值,否则检查会报错.
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
让配置即使生效:
[root@node1 /]# sysctl -p
-------------------------------------------------------------------------------
配置系统用户资源限制:
[root@node1 /]# vi /etc/security/limits.conf
--使用HugePage 内存技术,添加下面2行
Oracle soft memlock 5242880
Oracle  hard    memlock 524280
--进程句柄数量
oracle soft nproc 2047
oracle  hard    nproc   16384
-- 文件句柄
oracle soft nofile  1024
oracle  hard    nofile  65536
-------------------------------------------------------------------------------
配置ORACLE 用户环境变量:
[root@node1 /]# vi /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/rac_db
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export ORACLE_SID=oradb1    节点1实例名
export PATH=$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export LC_CTYPE=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export TMPDIR=/tmp
export TMP=/tmp
让配置即使生效:
[root@node1 /]# source /home/oracle/.bash_profile
----------------------------------------------------------------------------------
设置会话屏保:
[root@node1 orapacht]# vi /etc/pam.d/login
session    required     pam_limits.so

设置用户访问端口限制:
[root@node1 orapacht]# vi /etc/profile
if [ $USER = "oracle" ]; then
  ulimit -u 16384
  ulimit -n 65536
fi
------------------------------------------------------------------------------
配置 hangcheck-timer 模块
Hangcheck-timer 是Linux 提供的一个内核级的IO-Fencing 模块, 这个模块会监控Linux 内核运行状态, 如果长时间挂起, 这个模块会自动重启系统。 这个模块在Linux 内核空间运行, 不会受系统负载的影响。 这个模块会使用CPU的Time Stamp Counter(TSC) 寄存器,这个寄存器的值会在每个时钟周期自动增加, 因此使用的是硬件时间,所以精度更高。
配置这个模块需要2个参数: hangcheck_tick 和 hangcheck_margin。
hangcheck_tick用于定义多长时间检查一次,缺省值是30秒。 有可能内核本身很忙, 导致这个检查被推迟, 该模块还允许定义一个延迟上限,就是hangcheck_margin, 它的缺省值是180秒。
Hangcheck-timer 模块会根据hangcheck_tick 的设置,定时检查内核。只要2次检查的时间间隔小于 hangcheck_tick + hangchec_margin, 都会认为内核运行正常,否则就意味着运行异常,这个模块会自动重启系统。
CRS本身还有一个MissCount 参数,可以通过crsctl get css miscount 命令查看。
当RAC结点间的心跳信息丢失时, Clusterware 必须确保在进行重构时,故障结点确实是Dead 状态,否则结点仅是临时负载过高导致心跳丢失,然后其他结点开始重构,但是结点没有重启,这样会损坏数据库。 因此MissCount 必须大于 hangcheck_tick+hangcheck_margin的和。
查看模块位置:
[root@node1 /]# find /lib/modules -name "hangcheck-timer.ko"
/lib/modules/2.6.18-194.el5/kernel/drivers/char/hangcheck-timer.ko
修改以下配置:
[root@node1 orapacht]# vi /etc/modprobe.conf
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

配置系统启动时自动加载模块:
[root@node1 orapacht]# vi /etc/rc.d/rc.local
/sbin/modprobe hangcheck_timer
加载模块:
[root@node1 orapacht]# modprobe hangcheck_timer
确认模块加载成功:
[root@node1 orapacht]# grep hangcheck /var/log/messages |tail -2
Sep 20 12:40:28 node1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 30 seconds, margin is 180 seconds).

安装ASM实例软件包:
[root@node1 opt]# rpm -qa |grep oracleasm
[root@node1 opt]# ls
oracleasm-2.6.18-194.el5-2.0.5-1.el5.i686.rpm  oracleasm-support-2.1.7-1.el5.i386.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
[root@node1 opt]# rpm -ivh oracleasm*.rpm
warning: oracleasm-2.6.18-194.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:oracleasm-support      ########################################### [ 33%]
   2:oracleasm-2.6.18-194.el########################################### [ 67%]
   3:oracleasmlib           ########################################### [100%]
配置ASM 设置用户与属组 随系统自启动:
[root@node1 opt]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [  OK  ]
Scanning the system for Oracle ASMLib disks:               [  OK  ]