一、安裝環境
1、實驗環境
虛拟機:VMware Workstation 8.0.3_64bit
ORACLE:Oracle Database11g11.2.0.3.0-64bit
作業系統:Red HatEnterprise Linux 6.5
2、節點配置
描述 | 節點一 | 節點二 | 節點三 | ISCSI存儲 |
主機名稱 | note1 | note2 | note3 | iscsi-asm |
Public IP | 172.16.1.7(vlan3) | 172.16.1.8(vlan3) | 172.16.1.9(vlan3) | 172.16.1.20(vlan3) |
Private IP | 192.168.1.11(vlan5) | 192.168.1.12(vlan5) | 192.168.1.13(vlan5) | |
Virtual IP | 172.16.1.17 | 172.16.1.18 | 172.16.1.19 | |
Scan IP | 172.16.1.10、172.16.1.11、172.16.1.12 | |||
執行個體名 | racdb1 | racdb2 | racdb3 | |
/etc/hosts | 127.0.0.1 localhost.localdomain localhost #Public IP 172.16.1.7 note1 172.16.1.8 note2 172.16.1.9 note3 #Virtual IP 172.16.1.17 note1-vip 172.16.1.18 note2-vip 172.16.1.19 note3-vip #Private IP 192.168.1.11 note1-priv 192.168.1.12 note2-priv 192.168.1.13 note3-priv #Scan IP (scan ip為奇數,推薦3個) 172.16.1.10 cluster-scan 172.16.1.11 cluster-scan 172.16.1.12 cluster-scan | 172.16.1.20 iscis-asm |
以上環境配置過程略,可通過VM的Clone功能克隆多台機器之後變更IP和主機名即可。
二、系統基本配置
1、搭建存儲伺服器
A、添加磁盤建立軟體RAID5

建立軟體RAID5,共3塊磁盤,無熱備,具體請查閱相關資料
[root@iscsi-asm ~] # mdadm –Cv /dev/md0 –l5 –n3/dev/sd[bcd]1
B、配置ISCSI磁盤
安裝伺服器端使用的scis-target-utils包,安裝前先确認以下安裝包已安裝:kernel-source、kernel、gcc、perl
[root@iscsi-asm~] # rpm –ivh scsi-target-utils*.rpm
// RedHat 6在CD光牒Packages目錄下
// RedHat 5在CD光牒ClusterStorage目錄下
配置服務端/etc/tgt/targets.conf檔案
[root@iscsi-asm ~] # cat >> /etc/tgt/targets.conf << EOF
> <targetiqn.2016-04.com.iscsi-asm.raid5:target1>
> backing-store /dev/md0
> </target>
> EOF
啟動ISCSI服務
[root@iscsi-asm ~] # service tgtd restart //重新開機iscsi服務
[root@iscsi-asm ~] # chkconfig --level 2345 tgtd on //設定開機自啟動
[root@iscsi-asm ~] # chkconfig --list tgtd //檢視自啟動項
[root@iscsi-asm ~] # tgt-admin --show target1 //檢視tgtd是否配置成功
2、挂載ISCSI磁盤
A、節點一note1 上:
[root@note1 ~] # rpm –ivh iscsi-initiator-utils*.rpm
[root@note1 ~] # service iscsid restart //重新開機iscsi服務
[root@note1 ~] # chkconfig --level 2345 iscsid on //設定開機自啟動
[root@note1 ~] # chkconfig --list iscsid //檢視自啟動項
[root@note1 ~] # iscsiadm –m node –p 172.16.1.20 –l //登入iscsi存儲
B、節點二note2 上:
[root@note2 ~] # rpm –ivh iscsi-initiator-utils*.rpm
[root@note2 ~] # service iscsid restart //重新開機iscsi服務
[root@note2 ~] # chkconfig --level 2345 iscsid on //設定開機自啟動
[root@note2 ~] # chkconfig --list iscsid //檢視自啟動項
[root@note2 ~] # iscsiadm –m node –p 172.16.1.20 –l //登入iscsi存儲
C、節點三note3 上:
[root@note3 ~] # rpm –ivh iscsi-initiator-utils*.rpm
[root@note3 ~] # service iscsid restart //重新開機iscsi服務
[root@note3 ~] # chkconfig --level 2345 iscsid on //設定開機自啟動
[root@note3 ~] # chkconfig --list iscsid //檢視自啟動項
[root@note3 ~] # iscsiadm –m node –p 172.16.1.20 –l //登入iscsi存儲
D、劃分ISCSI磁盤
[root@note1 ~] # fdisk /dev/sdb //挂載iscsi存儲後的磁盤,請勿格式化
2、UDEV配置ASM
A、ASM磁盤的規劃
ASM磁盤組 | 磁盤組大小 | ASM備援 | ASM磁盤 | ISCSI磁盤路徑 | 存儲存放規則 |
+CRS | 20G | EXTERN | /dev/asm-crs1 | /dev/sdb1 | OCR、表決磁盤 |
+DATA | 60G | /dev/asm-db1 | /dev/sdb2 | 資料檔案 | |
+ARCH | 40G | /dev/asm-db2 | /dev/sdb3 | 歸檔檔案 |
若表決磁盤所在磁盤組屬性為EXTERNAL,為一塊,若為NORMAL,則需要三塊,若為HIGH,則需要五塊,需要為奇數,這是為了發生腦裂時,用于表決。
B、配置UDEV
[root@note1 ~] # scsi_id –g –u –d /dev/sdb //擷取磁盤UUID
1IET_00010001
[root@note1 ~] #vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL==”sdb1“, BUS==”scsi”,PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”,RESULT==” 1IET_00010001”,NAME=”asm-crs″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″
KERNEL==”sdb2“, BUS==”scsi”, PROGRAM==”/sbin/scsi_id-g -u -d /dev/$parent”,RESULT==” 1IET_00010001”, NAME=”asm-db1”, OWNER=”grid”,GROUP=”asmadmin”, MODE=”0660″
KERNEL==”sd?1″, BUS==”scsi”,PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”,RESULT==” 1IET_00010001”,NAME=”asm-db2″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″
将UDEV配置檔案傳到其他節點
[root@note1 ~] # rsync –r /etc/udev/rules.d/99-oracle-asmdevices.rules 172.16.1.8: /etc/udev/rules.d/
[root@note1 ~] # rsync –r /etc/udev/rules.d/99-oracle-asmdevices.rules 172.16.1.9: /etc/udev/rules.d/
C、啟動UDEV
[root@note1 ~] #start_udev
[root@note2 ~] #start_udev
[root@note3 ~] #start_udev
三、配置ORACLE軟件安裝環境
1、安裝oracle RAC所需的linux軟件包
[root@note1~] # yum –y install binutils* compat-libstdc++* elfutils-libelf* elfutils-libelf-devel* compat-libcap1 * elfutils-libelf-devel-static* gcc* gcc-c++* glibc* glibc-common* glibc-devel* glibc-headers* ksh* libaio* libaio-devel* libgcc*libgomp* libstdc++* libstdc++-devel* make* sysstat* unixODBC * unixODBC-devel*
節點二和節點三上執行相同的指令,将所需的包安裝上。
2、配置叢集時間同步服務
這裡使用叢集時間同步服務(CTSS),需要解除安裝網絡時間協定(NTP)
[root@note1 ~] #service ntpd stop
[root@note1 ~] #chkconfig –level 2345 ntpd off
[root@note1 ~] #rm –rf /etc/ntp.conf
節點二和節點三上執行相同的指令,解除安裝NTP
在叢集安裝完後,要确認ctssd是否處于活動狀态
[grid@note1 ~] #crsctl check ctss
1、 配置核心參數
三個節點執行如下腳本:
#!/bin/bash
prepareSystem(){
# Set SElinux to disabled mode regardless of its initial value
sed -i -e's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
# stop iptables
/etc/init.d/iptables stop
chkconfig --level 0123456 iptables off
chkconfig --level 0123456 ip6tablesoff
}
Configure1(){
cat >> /etc/sysctl.conf<<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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
EOF
}
Configure2(){
cat >>/etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
EOF
}
Configure3(){
cat >> /etc/pam.d/login<<EOF
session required pam_limits.so
EOF
}
prepareSystem
Configure1 && sysctl -p
Configure2
Configure3
[root@note1 ~] # sh configure.sh
[root@note2 ~] # sh configure.sh
[root@note3 ~] # sh configure.sh
2、 建立RAC相關權限組,使用者和目錄
A、 建立相關組(三個節點上執行)
[root@note1 ~] # groupadd oinstall
[root@note1 ~] # groupadd asmadmin
[root@note1 ~] # groupadd asmdba
[root@note1 ~] # groupadd asmoper
[root@note1 ~] # groupadd dba
[root@note1 ~] # groupadd oper
B、 建立grid使用者:
節點一ORACLE_SID=+ASM1
[root@note1 ~] # useradd -g oinstall -G asmadmin,asmdba,asmoper grid
[root@note1 ~] # passwd grid
節點二ORACLE_SID=+ASM2
[root@note2 ~] # useradd -g oinstall -G asmadmin,asmdba,asmoper grid
[root@note2 ~] # passwd grid
節點三ORACLE_SID=+ASM3
[root@note3 ~] # useradd -g oinstall -G asmadmin,asmdba,asmoper grid
[root@note3 ~] # passwd grid
編輯grid使用者的環境配置檔案(~/.bash_profile),加入如下内容
export PS1="`/bin/hostname -s`-> "
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1 #節點二為+ASM2,節點三為+ASM3
export ORACLE_BASE=/u/app/grid
export ORACLE_HOME=/u/app/11.2.0/grid
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
C、 建立ORACLE使用者
節點一:ORACLE_SID=racdb1
[root@note1 ~] # usermodd -g oinstall -G dba,oper,asmdba oracle
[root@note1 ~] # passwd oracle
節點二:ORACLE_SID=racdb2
[root@note2 ~] # usermodd -g oinstall -G dba,oper,asmdba oracle
[root@note2 ~] # passwd oracle
節點三:ORACLE_SID=racdb3
[root@note3 ~] # usermodd –g oinstall -G dba,oper,asmdba oracle
[root@note3 ~] # passwd oracle
編輯oracle使用者的環境配置檔案(~/.bash_profile),加入如下内容
export ORACLE_SID=racdb1 #節點二為racdb2,節點三為racdb3
export ORACLE_BASE=/u/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_UNQNAME=racdb
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/jdbc/lib
5、建立軟體安裝目錄
在三個節點上執行以下指令:
[root@note1 ~] # mkdir -p/u/app/grid
[root@note1 ~] # mkdir -p/u/app/11.2.0/grid
[root@note1 ~] # chown -Rgrid:oinstall /u/app
[root@note1 ~] # mkdir -p/u/app/oracle
[root@note1 ~] # chown oracle:oinstall/u/app/oracle
[root@note1 ~] # chmod -R775 /u
四、安裝RAC叢集軟體
1、 安裝cvuqdisk包
Cvuqdisk rpm包在grid的rpm目錄中
三個節點上執行:
[root@note1 ~] # CVUQDISK_GRP=oinstall;export CVUQDISK_GRP
[root@note1 ~] # rpm -ivh cvuqdisk-1.0.9-1.rpm
[root@note2 ~] # CVUQDISK_GRP=oinstall;export CVUQDISK_GRP
[root@note2 ~] # rpm -ivh cvuqdisk-1.0.9-1.rpm
[root@note3 ~] # CVUQDISK_GRP=oinstall;export CVUQDISK_GRP
[root@note3 ~] # rpm -ivh cvuqdisk-1.0.9-1.rpm
2、 安裝Grid軟體
許多文檔都在安裝之前配置了各節點之間oracle和grid使用者的SSH信任關系,這裡使用軟體配置選項進行配置。其實就是使用了grid軟體包中sshsetup目錄下的sshUserSetup.sh腳本。
[root@note1 ~]#export display=0.0
[root@note1 ~]#xhost +
[root@note1 ~]#su - grid
[grid@note1 grid]#./runInstaller
SCAN Name要/etc/hosts與裡面scanname一樣,否則報[INS-40718]錯誤
添加其它兩個節點,設定SSH,輸入密碼之後點選設定
因未配置DNS,此錯誤可以忽略。忽略報錯會彈窗,問是否忽略錯誤,确認就好。
第一個腳本,在三個節點上依次執行:
[root@note1~]# sh /u/app/oraInventory/orainstRoot.sh
[root@note2~]# sh /u/app/oraInventory/orainstRoot.sh
[root@note3~]# sh /u/app/oraInventory/orainstRoot.sh
第二個腳本,在三個節點上依次執行
[root@note1~]# sh /u/app/11.2.0/grid/root.sh //執行要一定的時間,
[root@note2~]# sh /u/app/11.2.0/grid/root.sh
[root@note3~]# sh /u/app/11.2.0/grid/root.sh
執行以上的腳本,一定要按照順序來,先在各節點上執行第一腳本,之後再執行第二個,一個節點一個節點執行完之後,再到下個一個節點執行,這個很重要。
接下來還會包一個錯誤,如下圖所示,造成原因是因為沒有配置DNS,在這裡可以忽略。
在節點一grid使用者上:執行crs_stat –t,檢視叢集服務的開啟情況,其中以gsd結尾的為相容9i的服務,可以不啟用。
1、 安裝oracle軟體
為節省篇幅,我隻截了部分較重要的圖
配置ORACLE使用者的SSH信任關系
ORACLE軟體的安裝目錄
造成原因是因為沒有配置DNS,在這裡可以忽略
執行腳本:
[root@note1~]# sh/u/app/oracle/product/11.2.0/db_1/root.sh
[root@note2~]# sh /u/app/oracle/product/11.2.0/db_1/root.sh
[root@note3~]# sh /u/app/oracle/product/11.2.0/db_1/root.sh
五、建立ASM磁盤組
[root@note1~]#xhost +
[root@note1~]#su – grid
[grid@note1 ~]#asmca
六、建立資料庫
[root@note1~]#su – oracle
[oracle@note1~]#dbca
至此,基本設定已經完成,接下來就是下一步,下一步的事,相關的參數自行調整。