MAC Vmware Fusion+OracleLinux+Oracle11gRAC

snowdba發表於2014-09-13
本文獻給剛剛使用mac系統,並且正在學習怎樣在虛擬機器下安裝oracle rac的同學。 大量的截圖花費了我好多時間,希望能為您帶來幫助!

環境介紹:
主機作業系統:OS X 10.9.4
虛擬機器軟體:VMware Fusion 專業版6.0.3
虛擬機器系統:Oracle Linux 5.7
資料庫版本:Oracle 11g R2 11.2.0.3

如果您也使用筆記本安裝虛擬機器執行Oracle,並且希望在家裡或者公司無線網路不是同一個網段都能使用的同學,將虛擬網路卡設定host only的方式會減少很多切換的麻煩。如果您不知道虛擬網路卡是什麼,參考本文做就可以了。

啟動Fusion虛擬機器後在終端中輸入ifconfi檢視虛擬網路卡
ifconfig
vmnet1: flags=8863 mtu 1500
ether 00:50:56:c0:00:01
inet 172.16.228.1 netmask 0xffffff00 broadcast 172.16.228.255
vmnet8: flags=8863 mtu 1500
ether 00:50:56:c0:00:08
inet 172.16.150.1 netmask 0xffffff00 broadcast 172.16.150.255

其中vmnet1為host only模式,我們的虛擬機器public IP、vip、scanip要設定該網段內。如果不啟動Fusion軟體的話不會輸出以上資訊。

配置虛擬機器資源



    
              更多選項...

        建立自定義虛擬機器

   RAC1、RAC2、rawdisks目錄需要自己手工建立,名稱隨意

        載入OracleLinux作業系統的iso檔案 - 連線CD/DVD

      
     

       安裝作業系統



為rac1主新增第二塊網路卡

將網路介面卡、網路介面卡2都設定為“僅宿主機模式”,也就是host only方式。注意:如果您的網路環境不會經常變化,不會切換網段可以將第一塊網路介面卡設定為“橋接模式”



       啟動虛擬機器安裝作業系統

       注意:為了快速部署安裝,此處省略了劃分磁碟的步驟



        etho為public IP,和虛擬網路卡一個網段172.16.228.x
        eth0為privateIP,IP地址自定義
        禁用IPv6設定
        Gateway設定為虛擬網路卡地址,方便使用

    冰城哈爾濱Asia/Harbin

       此處不選擇任何專案,後面會採用更好的方法來補充安裝所需的包 yum install oracle-validated

       測試環境關閉防火牆

       測試環境關閉SELinux

       此處不建立使用者,在後面統一建立使用者


克隆虛擬機器

退出當前虛擬機器的光碟 - 建立完整克隆
採用克隆的方法可以大大縮短建立第二臺虛擬機器的時間


        克隆路徑為RAC2

        RAC2克隆完成

        修改rac2主機名、IP地址
        由於rac2是克隆主機,所以主機名和IP地址需要手工改動

建立共享磁碟
rac1主機上新增新硬碟
ocr_vote_disk
ocr_vote_disk2
ocr_vote_disk3
data_disk1
data_disk2
data_disk3
data_disk4
arch_disk

       “預先非配磁碟空間”必須勾選,這是共享磁碟的必要條件之一

          在rac2主機建立新磁碟
                只需要共享剛剛由rac1主機建立好的磁碟就可以了

        與建立此虛擬磁碟的虛擬機器共享此虛擬磁碟

       建立完成後,rac1、rac2的主機配置

   使用FTP工具上傳安裝介質到rac1主機

     設定rac1、rac2 /etc/hosts檔案

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6

172.16.228.101 rac1
172.16.228.201 rac1-vip

172.16.228.102 rac2
172.16.228.202 rac2-vip

172.16.228.91  cluster-scan
172.16.228.92  cluster-scan
172.16.228.93  cluster-scan

182.168.1.101  rac1-priv
182.168.1.102  rac2-priv

建立使用者和組
[root@rac1 ~]# groupadd -g 5000 asmadmin
[root@rac1 ~]# groupadd -g 5001 asmdba
[root@rac1 ~]# groupadd -g 5002 asmoper
[root@rac1 ~]# groupadd -g 6000 oinstall
[root@rac1 ~]# groupadd -g 6001 dba
[root@rac1 ~]# groupadd -g 6002 oper

[root@rac1 ~]# useradd -g oinstall -G asmadmin,asmdba,asmoper grid
[root@rac1 ~]# echo "grid"|passwd --stdin grid

[root@rac1 ~]# useradd -g oinstall -G dba,asmdba oracle
[root@rac1 ~]# echo "oracle"|passwd --stdin oracle

建立目錄
[root@rac1 ~]# mkdir /grid_base
[root@rac1 ~]# mkdir /grid_home
[root@rac1 ~]# chown grid:oinstall /grid_base
[root@rac1 ~]# chown grid:oinstall /grid_home
[root@rac1 ~]# mkdir /oracle
[root@rac1 ~]# chown oracle:oinstall /oracle

關閉ntpd
[root@rac1 ~]# chkconfig ntpd off
[root@rac1 ~]# mv /etc/ntp.conf /etc/ntp.conf.bak

掛載光碟
[root@rac1 ~]# mount /dev/cdrom /mnt
mount: block device /dev/cdrom is write-protected, mounting read-only

安裝作業系統所需的各種包
注意:該操作比圖形化安裝系統依賴包更加方便
echo "[oel5]

name = Enterprise Linux 5.7 DVD

baseurl=file:///mnt/Server/

gpgcheck=0

enabled=1" >> /etc/yum.repos.d/public-yum-el5.repo

[root@rac1 ~]# yum install oracle-validated

補充grid使用者的配置
echo "grid   soft   nofile    131072
grid   hard   nofile    131072

grid   soft   nproc    131072

grid   hard   nproc    131072

grid   soft   core    unlimited

grid   hard   core    unlimited

grid   soft   memlock    50000000

grid   hard   hemlock    50000000" >> /etc/security/limits.conf

關閉rac1、rac2主機
[root@rac1 ~]# init 0
[root@rac2 ~]# init 0

解除VMware Fusion不支援共享磁碟的限制

找到RAC1安裝路徑下的虛擬機器檔案rac1,右鍵點選rac1,選擇”顯示包內容”
用文字工具開啟rac1.vmx,新增下面的配置資訊
#shared disks configure
disk.locking="false"
diskLib.dataCacheMaxSize="0"
diskLib.dataCacheMaxReadAheadSize="0"
diskLib.DataCacheMinReadAheadSize="0"
diskLib.dataCachePageSize="4096"
diskLib.maxUnsyncedWrites="0"
scsi0:1.deviceType="disk"
scsi0:1.mode = "independent-persistent"
scsi0.sharedBus = “VIRTUAL"

同樣在RAC2路徑下找到rac2檔案執行相同的操作
#shared disks configure
disk.locking="false"
diskLib.dataCacheMaxSize="0"
diskLib.dataCacheMaxReadAheadSize="0"
diskLib.DataCacheMinReadAheadSize="0"
diskLib.dataCachePageSize="4096"
diskLib.maxUnsyncedWrites="0"
scsi0:1.deviceType="disk"
scsi0:1.mode = "independent-persistent"
scsi0.sharedBus = “VIRTUAL"


重新啟動rac1、rac2

檢視共享磁碟
[root@rac1 ~]# ls -l /dev/sd*
brw-r----- 1 root disk 8,   0 Sep 11 22:52 /dev/sda
brw-r----- 1 root disk 8,   1 Sep 11 22:53 /dev/sda1
brw-r----- 1 root disk 8,   2 Sep 11 22:52 /dev/sda2
brw-r----- 1 root disk 8,  16 Sep 11 22:52 /dev/sdb
brw-r----- 1 root disk 8,  32 Sep 11 22:52 /dev/sdc
brw-r----- 1 root disk 8,  48 Sep 11 22:52 /dev/sdd
brw-r----- 1 root disk 8,  64 Sep 11 22:52 /dev/sde
brw-r----- 1 root disk 8,  80 Sep 11 22:52 /dev/sdf
brw-r----- 1 root disk 8,  96 Sep 11 22:52 /dev/sdg
brw-r----- 1 root disk 8, 112 Sep 11 22:52 /dev/sdh
brw-r----- 1 root disk 8, 128 Sep 11 22:52 /dev/sdi

udev配置共享磁碟
for i in b c d e f g h i ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u -s %p\", RESULT==\"`scsi_id -g -u -s /block/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""  >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

[root@rac1 ~]# start_udev
Starting udev: [  OK  ]

檢視配置結果
[root@rac1 ~]# ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8,  16 Sep 11 23:08 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8,  32 Sep 11 23:08 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8,  48 Sep 11 23:08 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8,  64 Sep 11 23:08 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8,  80 Sep 11 23:08 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8,  96 Sep 11 23:08 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 Sep 11 23:08 /dev/asm-diskh
brw-rw---- 1 grid asmadmin 8, 128 Sep 11 23:08 /dev/asm-diski

配置rac2主機的udev
[root@rac1 ~]# scp /etc/udev/rules.d/99-oracle-asmdevices.rules rac2:/etc/udev/rules.d/99-oracle-asmdevices.rules

[root@rac2 ~]# start_udev
Starting udev: [  OK  ]
[root@rac2 ~]# ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8,  48 Sep 11 23:10 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8,  32 Sep 11 23:10 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8,  16 Sep 11 23:10 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8, 112 Sep 11 23:10 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8,  96 Sep 11 23:10 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8,  80 Sep 11 23:10 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8,  64 Sep 11 23:10 /dev/asm-diskh
brw-rw---- 1 grid asmadmin 8, 128 Sep 11 23:10 /dev/asm-diski

配置grid使用者bash_pofile
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ vi .bash_profile

CRS_HOME=/grid_home/11.2.0/grid
ORACLE_BASE=/grid_base
ORACLE_SID=+ASM1
stty erase ^h
alias s="sqlplus / as sysasm"
PATH=$CRS_HOME/bin:$PATH:$HOME/bin

[grid@rac1 ~]$ scp .bash_profile rac2:~/

[root@rac2 ~]# su - grid
[grid@rac2 ~]$ vi .bash_profile
CRS_HOME=/grid_home/11.2.0/grid
ORACLE_BASE=/grid_base
ORACLE_SID=+ASM2
stty erase ^h
alias s="sqlplus / as sysasm"
PATH=$CRS_HOME/bin:$PATH:$HOME/bin
export PATH CRS_HOME ORACLE_BASE ORACLE_SID


解壓縮叢集軟體安裝包
[grid@rac1 ~]$ cd /grid_base
[grid@rac1 grid_base]$ mkdir 11203_grid_install
[grid@rac1 grid_base]$ cd 11203_grid_install/
[grid@rac1 11203_grid_install]$ unzip /tmp/p10404530_112030_Linux-x86-64_3of7.zip


啟動工具Xquartz
Xquartz在啟動圖形安裝時不需要export DISPLAY
連線grid使用者
ssh -X grid@172.16.228.101
/grid_base/11203_grid_install/grid/runInstaller


    推薦使用圖形化SSH互信,省去很多手工配置的時間


  grid的base目錄和home目錄要分開



  Task.resolv.conf Integrity錯誤可以忽略,不影響安裝


順序執行以下指令碼,執行完畢點選ok
[root@rac1 ~]# /grid_home/oraInventory/orainstRoot.sh
[root@rac2 ~]# /grid_home/oraInventory/orainstRoot.sh
[root@rac1 ~]# /grid_home/11.2.0/grid/root.sh
[root@rac2 ~]# /grid_home/11.2.0/grid/root.sh
 
   以下錯誤提示不影響安裝



安裝ASM磁碟組

在Xquartz輸入asmca後配置如下
OCRVOTE:
ocr_vote_disk
ocr_vote_disk2
ocr_vote_disk3

DATA:
data_disk1
data_disk2
data_disk3
data_disk4

ARCH:
arch_disk



設定Oracle使用者bash_profile
[oracle@rac1 ~]$ vi .bash_profile
ORACLE_BASE=/oracle
ORACLE_HOME=/oracle/product/11.2.0/dbhome_1
ORACLE_SID=PROD1
PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH:$HOME/bin
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID

[oracle@rac2 ~]$ vi .bash_profile
ORACLE_BASE=/oracle
ORACLE_HOME=/oracle/product/11.2.0/dbhome_1
ORACLE_SID=PROD2
PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH:$HOME/bin
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID

su - oracle
cd /oracle
mkdir 11203_db_install
cd 11203_db_install
unzip /tmp/p10404530_112030_Linux-x86-64_1of7.zip
unzip /tmp/p10404530_112030_Linux-x86-64_2of7.zip

安裝資料庫軟體
重新開啟XQuartz,使用oracle使用者連線
ssh -X oracle@172.16.228.101
/oracle/11203_db_install/database/runInstaller


  推薦使用SSH互信安裝,省去手工配置的過程

  此處的驗證錯誤可以忽略,不影響安裝



按照提示執行指令碼
[root@rac1 ~]# /oracle/product/11.2.0/dbhome_1/root.sh
[root@rac2 ~]# /oracle/product/11.2.0/dbhome_1/root.sh



建立資料庫
  叢集資料庫


資料庫安裝成功!

SQL> select INST_ID,INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME,STATUS,THREAD# from gv$instance;

   INST_ID INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME  STATUS          THREAD#
---------- --------------- ---------------- ---------- ------------ ----------
         1               1 PROD1            rac1       OPEN                  1
         2               2 PROD2            rac2       OPEN                  2

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20674423/viewspace-1286043/,如需轉載,請註明出處,否則將追究法律責任。

相關文章