基於 VMware vCenter Server 搭建 Linux RedHat 6.4 雙節點集群,安裝 Oracle 11.2.0.4 RAC。本文為三部曲第一部分,覆蓋網絡規劃、OS 配置、共享存儲、Grid Infrastructure 安裝前所有先決條件。
# /etc/hosts 統一規劃
10.2.13.80 zracnode1 # Public
10.2.13.81 zracnode2
10.2.13.82 zracnode1-vip # Virtual IP
10.2.13.83 zracnode2-vip
10.2.12.140 zracnode1-priv # Private Interconnect
10.2.12.141 zracnode2-priv
10.2.13.142 zrac-scan # SCAN IP (3個)
10.2.13.143 zrac-scan
10.2.13.144 zrac-scan
Public/Private 必須不同網段,保證心跳網絡隔離。
| 掛載點 | 大小 |
|---|---|
| / | 30 GB |
| swap | 16 GB |
| /u01 | 100 GB (Grid + Database Home) |
SCSI(1:0),模式 Independent-Persistent

mount -o loop /u01/software/rhel-server-6.4-x86_64-dvd.iso /u01/iso
cat > /etc/yum.repos.d/rhel-source.repo <<EOF
[Server]
name=Server
baseurl=file:///u01/iso
gpgcheck=0
EOF
yum install tigervnc-server
vncserver # 設置密碼
# 編輯 ~/.vnc/xstartup: 註釋 twm&, 添加 startkde&
groupadd -g 500 oinstall
groupadd -g 501 dba
groupadd -g 502 oper
groupadd -g 503 asmadmin
groupadd -g 504 asmoper
groupadd -g 505 asmdba
useradd -g oinstall -G dba,asmdba,oper oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
# 設置密碼
mkdir -p /u01/app /u01/app/oraInventory /u01/app/grid /u01/app/oracle
chown -R grid:oinstall /u01/app /u01/app/oraInventory /u01/app/grid
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app /u01/app/oraInventory /u01/app/grid /u01/app/oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2147483648
kernel.shmmax = 68719476736
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
# sysctl -p 生效
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
同步修改 /etc/pam.d/login 添加 session required pam_limits.so,/etc/profile 為 oracle/grid 設置 ulimit。
service iptables stop; chkconfig iptables off
setenforce 0; sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel \
gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh \
libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC
grid 用戶
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/grid/11.2
export PATH=$PATH:$ORACLE_HOME/bin
oracle 用戶
export ORACLE_SID=racdb1
export ORACLE_UNQNAME=$ORACLE_SID
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/11.2/db_1
export PATH=$PATH:$ORACLE_HOME/bin
fdisk /dev/sdb
# sdb1~sdb3: CRS 組 (各 900M)
# sdb5~sdb7: DATA 組 (各 30G)
# sdb8~sdb9: REC 組 (各 30G)
安裝 ASMLib RPM:kmod-oracleasm、oracleasm-support、oracleasmlib
配置 ASM:/etc/init.d/oracleasm configure(用戶 grid,組 asmadmin,開機自動掃描)
節點 1 創建磁盤:oracleasm createdisk CRS1 /dev/sdb1 ...
節點 2 掃描:oracleasm scandisks → oracleasm listdisks 驗證
# 各節點生成密鑰對
ssh-keygen -t rsa; ssh-keygen -t dsa
# 節點 1 收集所有公鑰 → authorized_keys → scp 到節點 2
# 驗證:ssh node1 date && ssh node2 date
# ssh-agent $SHELL && ssh-add
# /etc/ntp.conf 指向內部 NTP 服務器
# /etc/sysconfig/ntpd: OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
chkconfig ntpd on; service ntpd start
ntpdate -u
chkconfig --level 35 nscd on; service nscd restart
下部將覆蓋 Grid Infrastructure 安裝 與 Database 軟件安裝,敬請期待。