Vmware server1.0 + Linux As4 + Oracle 10g RAC

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Vmware server1.0 + Linux As4 + Oracle 10g RAC

ORACLE 10G RAC for Linux AS4 安裝
作者:秋風no.1,學習測試所用,歡迎轉載。

由於本人的硬體條件所限,所以採用的是虛擬機技術,虛擬機軟體採用的是vmware server 1.0
宿主機,dell 2850,配置如下
_____________________________________
Intel(R) Xeon(TM) CPU 2.80GHz 兩顆
內存2G
硬碟144G
os linux as 3

虛擬伺服器 2台,配置如下
______________________________________
Intel(R) Xeon(TM) CPU 2.80GHz 1顆
內存1G
硬碟15G
os linux as 4

1.安裝vmware server軟體
        從www.vmware.com下載vmware server 1.0 for linux軟體,安裝過程很簡單,基本上是一路Enter.只是需要sn,在這裡提供幾個使用
928WH-Y65AW-21394-4C70J,92EY4-Y4NAT-23L07-4U7CH,9AWPN-Y400W-2179N-4K5HM
        安裝vmware server console,以便遠程管理vmware server
2.安裝虛擬伺服器操作系統
        我用的是OS是Redhat AS4,kernel 2.6.9-22,虛擬出兩塊網卡,開始安裝操作系統,主機名叫ha1pub,eth0:10.1.250.17,eth1:192.168.100.100.具體過程省略.安裝結束后,使用ntsysv命令,關閉掉一些不常使用的進程,只留下一下一些需要的,如ssh,ftp等等.然後關機!
        然後cp ha1pub的所有配置文件到一個新的目錄,在虛擬機console裡面打開,就會出現一個新的系統,但是由於裡面的ip信息和第一台機器的重複,進入系統后修改一下
        編輯/etc/sysconfig/network文件,將ha1pub修改為ha2pub,然後修改ip,eth0:10.1.250.18,eth1:192.168.100.200.
        注意,redhat系統裡面,ip的配置文件ifcfg-eth文件裡面,有可能包含mac地址的信息,需要刪除掉,否則會mac地址重複的錯誤.ha2pub也關機
3.設置共享存儲
        由於安裝RAC需要共享存儲,所以必須為兩台機器設置共享存儲,我使用vmware-vdiskmanager命令創建一些虛擬硬碟
________________________________________________________________________
vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "/vmware/share/ocfs.vmdk" |用於Oracle集群註冊表文件和CRS表決磁碟
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm1.vmdk" |用於Oracle的數據文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm2.vmdk" |用於Oracle的數據文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm3.vmdk" |用於Oracle的數據文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm4.vmdk" |用於Oracle的閃回恢復區
____________________________________________________________________      
        
然後分別在兩個虛擬伺服器的的配置文件,ha1.vmx和ha2vmx文件裡面添加如下信息
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "/vmware/share/ocfs.vmdk"
scsi1:1.deviceType = "disk"

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "/vmware/share/asm1.vmdk"
scsi1:2.deviceType = "disk"

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "/vmware/share/asm2.vmdk"
scsi1:3.deviceType = "disk"

scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "/vmware/share/asm3.vmdk"
scsi1:4.deviceType = "disk"

scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "/vmware/share/asm4.vmdk"
scsi1:5.deviceType = "disk"

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
        保存后,打開vmware console就可以看到添加的硬碟,啟動ha1pub和ha2pub!隨便進入一台系統,用fdisk格式化這些新添加的硬碟.
        fdisk -l可以看到如下
__________________________________________________________________
Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         275     2104515   82  Linux swap
/dev/sda3             276        1958    13518697+  83  Linux

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         130     1044193+  83  Linux

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         261     2096451   83  Linux

Disk /dev/sdd: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         261     2096451   83  Linux

Disk /dev/sde: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1         261     2096451   83  Linux

Disk /dev/sdf: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1         261     2096451   83  Linux
____________________________________________________________________

修改/etc/hosts文件,如下所示
127.0.0.1            localhost(這裡必須這樣修改,否則RAC節點名出現在回送地址中,安裝RAC期間可能會報錯)
10.1.250.17   ha1pub
10.1.250.18   ha2pub

192.168.100.100 ha1prv
192.168.100.200 ha2prv

10.1.250.19 ha1vip
10.1.250.20 ha2vip
        
4.調整網路設置,設置共享內存和信號參數
        分別在ha1pub和ha2pub上,編輯/etc/sysctl.conf文件,添加如下信息,這些信息可以根據自己的機器實際情況來調整
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

5. 配置 hangcheck-timer 內核模塊
        該模塊是用來監控集群的狀態情況,linux as4中已經安裝了此模塊,使用下面的命令確認
        find /lib/modules -name "hangcheck-timer.o" 看看有沒有,如果有,配置並載入該模塊
        #echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local
        #modprobe hangcheck-timer
        #grep Hangcheck /var/log/messages | tail -2
        Jul 31 15:01:49 ha2pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).
        如果看到上面的信息,說明模塊的設置工作正確
6. 在兩個節點上創建oracle用戶和目錄
        groupadd oinstall
        groupadd dba
        useradd -g oinstall -G dba oracle
        passwd oracle
        以oracle用戶登陸,分別建立兩個目錄
        mkdir /home/oracle/app 用於安裝oracle 資料庫
        mkdir /home/oracle/orcl 用於Oracle 集群文件系統 (OCFS) 的掛載點

        修改oracle用戶的.bash_profile文件如下所示
        __________________________________________________________________
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=/home/oracle/app/oracle/product/10.2.0/crs/
export ORACLE_SID=orcl1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
________________________________________________________________________
注意,在第二個節點上,修改SID=orcl2

7.建立節點之間的互信
        我採用的是ssh,具體過程有很多文檔說明,這裡省略.分別要建立root用戶,oracle用戶的互信.
        然後在分別以root用戶,oracle在兩個節點上執行如下命令
       ssh localhost
           ssh ha1pub
           ssh ha2pub
           ssh ha1prv
           ssh ha2prv
8.安裝配置ocfs2
        從http://oss.oracle.com/projects/ocfs2/下載與自己操作系統版本相符合的ocfs,ocfs console
        比如我的內核是2.6.9-22.EL,於是我下載的就是ocfs2-2.6.9-22.EL-1.2.2-1.i686.rpm,這點非常重要
        安裝很簡單,把該下載的包都下載了rpm安裝就ok了
8.1 ocfs2的配置
        先使用下面命令禁用SElinux
        #system-config-securitylevel &
        然後在集群中的每個節點上生成和配置 /etc/ocfs2/cluster.conf
        可以使用ocfs2console命令調出圖形界面,將ha1pub和ha2pub兩個節點都加入,點擊apply,然後退出.
        在/etc/ocfs2/目錄下面將有cluster.conf文件,內容應該如下
        ______________________________________________________
        node:
                ip_port = 7777
                ip_address = 10.1.250.17
                number = 0
               name = ha1pub
                cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 10.1.250.18
        number = 1
        name = ha2pub
        cluster = ocfs2

cluster:
        node_count = 2
        name = ocfs2
        ________________________________________________________
     接著編輯 /etc/init.d/o2cb, 刪除開始帶 #的配置行
然後 /etc/init.d/o2cb offline ocfs2
/etc/init.d/o2cb unload ocfs2
/etc/init.d/o2cb configure ocfs2  輸入y就ok了        
8.2 創建ocfs2文件系統
        mkfs.ocfs2 -b 4k -C 32k -L oradatafiles /dev/sdb1
        然後掛載ocfs2文件系統
        mount -t ocfs2 -o datavolume /dev/sdb1 /home/oracle/orcl  
        修改/etc/fstab,添加
        /dev/sdb1               /home/oracle/orcl       ocfs2   _netdev,datavolume      0 0        
8.3 調O2CB的心跳閥值
        修改文件/etc/sysconfig/o2cb將O2CB_HEARTBEAT_THRESHOLD 設置為 301
        修改文件 /etc/sysconfig/o2cb 后,需要更改 o2cb 配置。同樣,應在集群的所有節點上執行以下操作。
# umount /home/oracle/orcl/
# /etc/init.d/o2cb unload
# /etc/init.d/o2cb configure
        reboot兩個節點
9. 安裝,配置自動存儲管理ASM2.0
        可以從http://www.oracle.com/technology ... x/asmlib/rhel4.html這裡下載相關rpm包
        rpm安裝過程省略
        執行/etc/init.d/oracleasm configure
        默認用戶輸入oracle,默認組輸入dba,其他都y,y就可以了
9.1創建ASM磁碟
        在一個節點上執行
        /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
        /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
        /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
        /etc/init.d/oracleasm createdisk VOL4 /dev/sdf1        
        創建好后,執行/etc/init.d/oracleasm listdisks可以看到
        VOL1
        VOL2
        VOL3
        VOL4
        然後在另外一個節點上執行
        /etc/init.d/oracleasm scandisks
        完成後執行
        /etc/init.d/oracleasm listdisks應該可以看到和的一個節點相同的內容
10. 安裝Oracle 10G cluster軟體
        從oracle網站下載10201_clusterware_linux32
        以oracle用戶登錄,unset掉一些環境變數,如下        
        $ unset ORA_CRS_HOME
        $ unset ORACLE_HOME
        $ unset ORA_NLS10
        $ unset TNS_ADMIN
        
        開始安裝cluster軟體
        ./runInstaller -ignoreSysPrereqs
        *確認安裝目錄是/home/oracle/app/oracle/product/10.2.0/crs/
        *如果願意可以將clustername由crs修改成其他的名稱
        *添加兩個節點,如下所示
        ____________________________________________________________________
        Public Node Name        Private Node Name        Virtual Node Name
        ha1pub                        ha1prv                        ha1vip
        ha2pub                        ha2prv                        ha2vip
        ____________________________________________________________________
        *要修改一下eth0的類型,他默認的是private,修改為public
        *指定OCR和mirror的路徑
        Specify OCR Location: /home/oracle/orcl/OCRFile
        Specify OCR Mirror Location:/home/oracle/orcl/OCRFile_mirror
        *指定Voting磁碟路徑
        Voting Disk Location: /home/oracle/orcl/CSSFile
        Additional Voting Disk 1 Location:/home/oracle/orcl/CSSFile_mirror1
        Additional Voting Disk 2 Location:/home/oracle/orcl/CSSFile_mirror2
        *安裝快結束時.會要求以root執行orainsRoot.sh和root.sh腳本,以root用戶打開一個新的終端,一個一個節點順序執行,千萬不要搶時間一起執行
        *執行最後一個root.sh的時候,可能會報""eth0" is not public.Public interfaces should be used to configure virtual IPs."這樣的錯誤.這時候需要以root用戶去執行$ORA_CRS_HOME/bin/vipca,選擇兩個節點,配置一下虛擬ip的信息.
        至此,clusterware安裝就ok了,檢查一下集群節點
        $ORA_CRS_HOME/bin/olsnodes -n
        ha1pub  1
        ha2pub  2

11. 安裝Oracle 10g軟體
        從oracle網站下載10201_database_linux32
        unset掉一些環境變數
        $ unset ORA_CRS_HOME
        $ unset ORACLE_HOME
        $ unset ORA_NLS10
        $ unset TNS_ADMIN
        Oracle的安裝省略,既然敢玩RAC,肯定以前也安裝過oracle,只是有些地方需要注意
        *節點的選擇上,一定要選上所有的節點
        *選擇 "Install database software only",先不要建instance,等資料庫安裝完畢后時候dbca創建
        *安裝完成後,需要執行root.sh腳本,不要著急,一個節點一個節點執行
12. 建立TNS偵聽
        以oracle用戶執行
        $ netca &
        *選擇所有節點
        *選擇Listener configuration
        *其他的都選擇默認即可
        結束后可以驗證一下偵聽是否已經在所有節點上運行
        ps -ef|grep LISTEN
        應該可以看到
        /home/oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_HA1PUB -inherit
        另外一個節點應該是
        /home/oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_HA2PUB -inherit
13. 創建資料庫實例
        以oracle用戶在任一節點執行
        dbca &
        *選擇 Create a Database
        *選擇所有節點
        *選擇Custom Database
        *全局資料庫名輸入orcl,SID也是orcl
        *選擇使用相同的密碼對所有用戶
        *存儲選項選擇 use ASM
        *修改「Create server parameter file (SPFILE)」為        /home/oracle/orcl/dbs/spfile+ASM.ora。所有其他選項可以保留其默認值。
        *在ASM Disk Groups配置界面,選擇Create New,會顯示之前通過ASMlib創建的4個卷VOL1到VOL4
        選擇前三個,VOL1,VOL2,VOL3,Disk group name輸入DATA,Redundancy,選擇Normal,單擊ok,完成後再次單擊Create New.選擇最後一個VOL4,Disk group name輸入FLASH_RECOVERY_AREA, Redundancy選擇External,單擊ok,完成ASM的磁碟組創建.
        *Database File Locations 選擇DATA
        *Recovery Configuration 選擇FLASH_RECOVERY_AREA
        *Database Content由於是測試,可以取消掉所有選項
        *Service name 可以輸入orcltest,TAF Policy選擇Basic
        *Database Storage 根據自己系統的硬體條件可以更改一些參數.
完成dbca,Oracle RAC就可以所已經完全安裝成功了!

14. RAC的啟動和關閉
        如果都遵循了上面的安裝步驟,那麼每次節點重新啟動的時候,所有服務都會自動啟動,如果需要關閉或者啟動某個節點,如下所示
        *停止RAC
                1.emctl stop dbconsole
                2.srvctl stop instance -d orcl -i orcl1
                3.srvctl stop asm -n ha1pub
                4.srvctl stop nodeapps -n ha1pub
        *啟動RAC        
                和上面的步驟正好相反即
                1.srvctl start nodeapps -n ha1pub
                2.srvctl start asm -n ha1pub
                3.srvctl start instance -d orcl -i orcl1
                4.srvctl start dbconsole

15. RAC的驗證和測試
        有很多文檔寫的都很詳細,本文就不贅述了
        
16. 參考文檔
        在 Linux 和 FireWire 上構建您自己的 Oracle RAC 10g 第 2 版集群
        作者:Jeffrey Hunter
        http://www.oracle.com/technology ... unter_rac10gr2.html
《解決方案》

非常詳細,先謝了
《解決方案》

最近要做測試,留個記號,以後來看
《解決方案》

想體問一下樓主VMWARE的問題,我這裡同時配置了兩台虛擬機,可是在啟動的時候,總是先啟動的機器網卡正常,另外一台網卡死活PING不出去,如果這時候把先啟動的虛擬機shutdown掉,後面那台立刻就可以使用,我猜測應該是VMWARE設置問題,不知道您遇到過沒,能否指點一下
《解決方案》

沒有遇到過, 之前一直用vmware gsx,現在用vmware server.  沒有遇到過. 而且我的環境通常每個guest OS都會配2塊nic.
《解決方案》

原帖由 sunadmin 於 2006-9-7 02:31 發表
想體問一下樓主VMWARE的問題,我這裡同時配置了兩台虛擬機,可是在啟動的時候,總是先啟動的機器網卡正常,另外一台網卡死活PING不出去,如果這時候把先啟動的虛擬機shutdown掉,後面那台立刻就可以使用,我猜測應 ...

你直接複製的兩台虛擬機吧?mac地址衝突了。。
《解決方案》

收藏!!
感謝樓主享。
:(內存跟不上,就不好用虛擬機了。
《解決方案》

:em21: :em02:
《解決方案》

好文章,學習中,有問題來問問。




[火星人 ] Vmware server1.0 + Linux As4 + Oracle 10g RAC已經有522次圍觀

http://coctec.com/docs/service/show-post-6589.html