磁盘空间与虚拟内存检查:
[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 ]