操作系統版本RHEL5.5-64bit,oracle10g,vmware workstation6.5,clusterware10.0.2版本的
兩臺虛擬機雙網卡,本地磁盤40G,共享磁盤9G,共享磁盤選擇立即分配所有磁盤空間,兩臺虛擬機內存都是1.5G
1.配置hosts文件可以讓兩臺虛擬機可以通過名稱互相解析
- 192.168.183.131 node1
- 192.168.183.132 node2
- 192.168.183.141 node1-vip
- 192.168.183.142 node2-vip
- 172.16.1.1 node1-priv
- 172.16.1.2 node2-priv
2.給虛擬機添加共享磁盤,首先在node1上面添加一塊共享磁盤,選擇分配全部的空間(虛擬機下一定要這麼設置,否則會導致共享存儲配置不成功)
node1添加共享磁盤(sharedisk.vmdk)-開機-關機,然後編輯node1的虛擬機配置文件,添加如下選項:
- scsi1.present = "TRUE"
- scsi1.virtualDev = "lsilogic"
- scsi1.sharedBus = "VIRTUAL"
- scsi1:1.present = "TRUE"
- scsi1:1.mode = "independent-persistent"
- scsi1:1.fileName = "sharedisk.vmdk"
- scsi1:1.deviceType = "disk"
- disk.locking = "FALSE"
- diskLib.dataCacheMaxSize = "0"
- diskLib.dataCacheMaxReadAheadSize = "0"
- diskLib.dataCacheMinReadAheadSize = "0"
- diskLib.dataCachePageSize = "4096"
- diskLib.maxUnsyncedWrites = "0"
然後編輯node2的虛擬機配置文件,添加如下選項:
- scsi1.present = "TRUE"
- scsi1.virtualDev = "lsilogic"
- scsi1.sharedBus = "VIRTUAL"
- scsi1:1.present = "TRUE"
- scsi1:1.mode = "independent-persistent"
- scsi1:1.fileName = "D:\vmware workstation\node1\sharedisk.vmdk"
- scsi1:1.deviceType = "disk"
- disk.locking = "FALSE"
- diskLib.dataCacheMaxSize = "0"
- diskLib.dataCacheMaxReadAheadSize = "0"
- diskLib.dataCacheMinReadAheadSize = "0"
- diskLib.dataCachePageSize = "4096"
- diskLib.maxUnsyncedWrites = "0"
關閉虛擬機軟件,然後分別打開兩臺虛擬機的電源,共享磁盤配置完畢
3.oracle安裝環境準備
這裏參照我以前的文章,oracle安裝前期準備工作的設置
http://lymrg.blog.51cto.com/1551327/754136
在兩個節點上面創建對應文件夾
- [root@node1 oracle]# ll
- 總計 12
- drwxr-xr-x 2 oracle oinstall 4096 03-08 16:08 oraasm
- drwxr-xr-x 2 oracle oinstall 4096 03-08 16:08 orabase
- drwxr-xr-x 2 root oinstall 4096 03-08 16:08 oracrs
這裏oracle的變量設置做下更改
- PATH=$PATH:$HOME/bin
- export ORACLE_BASE=/home/oracle/orabase
- export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
- export ORA_CRS_HOME=/home/oracle/oracrs/product/10.2.0/crs
- export ORA_ASM_HOME=/home/oracle/oraasm/product/10.2.0/asm
- export ORACLE_SID=orcl1 PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$ORA_ASM_HOME/bin
- export PATH
4.建立hangcheck模塊加載(在兩個節點上面操作)
- [root@node1 ~]# find /lib/modules -name "hangcheck-timer.ko"
- [root@node1 ~]# vi /etc/modprobe.conf
- options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
- [root@node1 ~]# vi /etc/rc.local
- /sbin/modprobe hangcheck_timer
- 啓動 /sbin/modprobe hangcheck_timer
- 查看啓動是否成功
- [root@node1 ~]# grep hangcheck /var/log/messages|tail -2
- Mar 12 15:25:47 node1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 30 seconds, margin is 180 seconds).
5.配置兩臺機器無密碼訪問,這裏的配置要在兩個節點上面進行
(1)以oracle 用戶登錄
(2)在oracle 用戶的主目錄內創建.ssh 目錄並設置正確的權限
- [oracle@node1 ~]$ mkdir ~/.ssh
- [oracle@node1 ~]$ chmod 700 ~/.ssh
- [oracle@node1 ~]$ ssh-keygen -t rsa
- Generating public/private rsa key pair.
- Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /home/oracle/.ssh/id_rsa.
- Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
- The key fingerprint is:
- 17:e4:7c:79:8d:a0:00:3b:d9:f7:7a:56:f3:ac:54:4d oracle@node1
- [oracle@node1 ~] $ cd ~/.ssh
- [oracle@node1 .ssh]$ ssh node1 cat /home/oracle/.ssh/id_rsa.pub >>
- authorized_keys
- [oracle@node1 .ssh]$ ssh node2 cat /home/oracle/.ssh/id_dsa.pub
- >>authorized_keys
- [oracle@node1 .ssh]$ scp authorized_keys node2:/home/oracle/.ssh/
- [oracle@node1 .ssh]$ chmod 600 ~/.ssh/authorized_keys
完成後,在node1 上執行:
- [oracle@node1 ~]$ ssh node1 date
- [oracle@node1 ~]$ ssh node2 date
如果不需要輸入密碼就出現系統日期,說明SSH 配置成功。
6.磁盤規劃
這裏我把共享磁盤分成6個區,sdb1和sdb2配製成裸設備,作爲OCR鏡像,sdb5,6,7也配置成裸設備,作votedisk鏡像,sdb配置成ASM用來存放數據庫
- fdisk -l
- Disk /dev/sdb: 9663 MB, 9663676416 bytes
- 255 heads, 63 sectors/track, 1174 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/sdb1 1 63 506016 83 Linux
- /dev/sdb2 64 126 506047+ 83 Linux
- /dev/sdb3 127 1174 8418060 5 Extended
- /dev/sdb5 127 189 506016 83 Linux
- /dev/sdb6 190 252 506016 83 Linux
- /dev/sdb7 253 315 506016 83 Linux
- /dev/sdb8 316 1174 6899886 83 Linux
配置裸設備
- vi /etc/udev/rules.d/60-raw.rules
- ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
- ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
- ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw3 %N"
- ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw4 %N"
- ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw5 %N"
- ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw6 %N"
- KERNEL=="raw1", OWNER="root", GROUP="oinstall", MODE="660"
- KERNEL=="raw2", OWNER="root", GROUP="oinstall", MODE="660"
- KERNEL=="raw3", OWNER="root", GROUP="oinstall", MODE="660"
- KERNEL=="raw4", OWNER="root", GROUP="oinstall", MODE="660"
- KERNEL=="raw5", OWNER="root", GROUP="oinstall", MODE="660"
- KERNEL=="raw6", OWNER="oracle", GROUP="oinstall", MODE="664"
- [root@node1 ~]# start_udev
- 啓動 udev: [確定]
- [root@node1 ~]# ll /dev/raw/raw*
- crw-rw---- 1 root oinstall 162, 1 03-11 22:43 /dev/raw/raw1
- crw-rw---- 1 root oinstall 162, 2 03-11 22:43 /dev/raw/raw2
- crw-rw---- 1 root oinstall 162, 3 03-11 22:43 /dev/raw/raw3
- crw-rw---- 1 root oinstall 162, 4 03-11 22:43 /dev/raw/raw4
- crw-rw---- 1 root oinstall 162, 5 03-11 22:43 /dev/raw/raw5
- crw-rw-r-- 1 oracle oinstall 162, 6 03-11 22:43 /dev/raw/raw6
在node2上面執行 partprobe,然後同樣建立裸設備
7.在兩個節點上面安裝,注意要下載和自己內核版本對應的包
- rpm -ivh oracleasm-support-2.1.7-1.el5.x86_64.rpm
- rpm -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
- rpm -ivh oracleasmlib-2.0.4-1.el5.x86_64.rpm
在兩個節點上面執行/etc/init.d/oracleasm configure
分別輸入oracle,dba,y,y
在node1上面配置ASM
- [root@node1 ~]#/etc/init.d/oracleasm createdisk VOL1 /dev/sdb8
- [root@node1 ~]#/etc/init.d/oracleasm scandisks
- [root@node1 ~]#/etc/init.d/oracleasm listdisks
- VOL1
在node2上面執行掃描(不需要配置)
- /etc/init.d/oracleasm scandisks
- /etc/init.d/oracleasm listdisks
- VOL1
8.開啓安裝進程,在兩個節點上面以root用戶身份運行
然後切換到oracle用戶,開始安裝clusterware
1)選擇CRS的安裝目錄
2)兩個集羣節點的配置
3)選擇eth0網卡爲公網IP
4)配置OCR存儲位置
5)配置votedisk存儲位置
6)安裝
7)執行最後的安裝腳本
在節點node1上面執行
- [root@node1 oracrs]# /home/oracle/orabase/oraInventory/orainstRoot.sh
- Changing permissions of /home/oracle/orabase/oraInventory to 770.
- Changing groupname of /home/oracle/orabase/oraInventory to oinstall.
- The execution of the script is complete
在節點node2上面執行
- [root@node2 oracrs]# /home/oracle/orabase/oraInventory/orainstRoot.sh
- Changing permissions of /home/oracle/orabase/oraInventory to 770.
- Changing groupname of /home/oracle/orabase/oraInventory to oinstall.
- The execution of the script is complete
在節點node1上面執行
- [root@node1 oracle]# /home/oracle/oracrs/product/10.2.0/crs/root.sh
在節點node2上面執行
- [root@node2 oracle]# /home/oracle/oracrs/product/10.2.0/crs/root.sh
安裝結束,查看節點狀態
- [root@node2 bin]# ./crs_stat -t
- Name Type Target State Host
- ------------------------------------------------------------
- ora.node1.gsd application ONLINE ONLINE node1
- ora.node1.ons application ONLINE ONLINE node1
- ora.node1.vip application ONLINE ONLINE node1
- ora.node2.gsd application ONLINE ONLINE node2
- ora.node2.ons application ONLINE ONLINE node2
- ora.node2.vip application ONLINE ONLINE node2