1、安裝環境node
一、實驗環境linux
虛擬機:VMware Workstation 8.0.3_64bitc++
ORACLE:Oracle Database11g11.2.0.3.0-64bit數據庫
操做系統:Red HatEnterprise Linux 6.5vim
2、節點配置bash
描述 |
節點一 | 節點二 | 節點三 | 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.十、172.16.1.十一、172.16.1.12 |
|||
實例名 | racdb1 | racdb2 | racdb3 | |
/etc/hosts | 127.0.0.1 localhost.localdomain localhost 172.16.1.12 cluster-scan網絡 |
172.16.1.20 iscis-asm |
以上環境配置過程略,可經過VM的Clone功能克隆多臺機器以後變動IP和主機名便可。session
2、系統基本配置oracle
一、搭建存儲服務器
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在光盤Packages目錄下
// RedHat 5在光盤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存儲後的磁盤,請勿格式化
二、UDEV配置ASM
A、ASM磁盤的規劃
ASM磁盤組 |
磁盤組大小 | ASM冗餘 | ASM磁盤 | ISCSI磁盤路徑 | 存儲存放規則 |
+CRS | 20G |
EXTERN |
/dev/asm-crs1 |
/dev/sdb1 | OCR、表決磁盤 |
+DATA | 60G | EXTERN | /dev/asm-db1 | /dev/sdb2 | 數據文件 |
+ARCH | 40G | EXTERN | /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
3、配置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
一、 配置內核參數
三個節點執行以下腳本:
#!/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
二、 建立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 TMP=/tmp
export TMPDIR=$TMP
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
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/jdbc/lib
exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022
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
4、安裝RAC集羣軟件
一、 安裝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
二、 安裝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的服務,能夠不啓用。
一、 安裝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
5、建立ASM磁盤組
[root@note1~]#xhost +
[root@note1~]#su – grid
[grid@note1 ~]#asmca
6、建立數據庫
[root@note1~]#xhost +
[root@note1~]#su – oracle
[oracle@note1~]#dbca
至此,基本設置已經完成,接下來就是下一步,下一步的事,相關的參數自行調整。