1,修改虛擬機的配置
在配置linux 系統(tǒng)之前,首先到主節(jié)點RAC1目錄下,打開.vmx 文件,添加下列內(nèi)容: disk.locking = "false" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.DataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0" scsi1:1.deviceType = "disk" scsi1:2.deviceType = "disk" scsi1:3.deviceType = "disk" scsi1:4.deviceType = "disk" 2,編輯/etc/hosts文件,添加如下內(nèi)容: 192.168.1.100 rac1 192.168.1.101 rac2 192.168.1.200 rac1-vip 192.168.1.201 rac2-vip 192.168.2.100 rac1-priv 192.168.2.101 rac2-priv 這里簡要說一下,192.168.1.100/101是在安裝操作系統(tǒng)時在第一塊網(wǎng)卡上配置好的,192.168.2.100/101是在安裝操作系統(tǒng)時在第二塊網(wǎng)卡上配置好的,至于192.168.1.200/201地址只用在/etc/hosts文件中指定即可,不用編輯到任何網(wǎng)卡,因為它只是作為虛擬IP地址在ORACLE RAC中使用。至于第三塊網(wǎng)卡,因為我設(shè)定的動態(tài)IP獲取方式,所以在這里用不到。 3,創(chuàng)建組oinstall,dba,用戶oracle [root@rac1 ~]# groupadd oinstall [root@rac1 ~]# groupadd dba [root@rac1 ~]# useradd -d /home/oracle -g oinstall -G dba oracle 設(shè)置oracle 用戶密碼(密碼也設(shè)為oracle) [root@rac1 ~]# passwd oracle Changing password for user oracle. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. 4,開通FTP功能(因為系統(tǒng)默認并沒有打開FTP功能,這里需要人為的設(shè)置一番,在這個地方,就要用到我們前面添加的第三塊網(wǎng)卡的動態(tài)獲取IP功能) 4.1,啟用第三塊網(wǎng)卡功能: 通過ifconfig eth2可以看到第三塊網(wǎng)卡自動獲取的IP地址10.10.10.150,和我所使用筆記本的IP地址處于同一網(wǎng)段,且默認路由都設(shè)置為10.10.10.254,ping路由沒有問題,在這種情況下,就能實現(xiàn)從本機到虛擬機的FTP互訪??赡苡腥擞X得奇怪,為什么要設(shè)定為動態(tài)獲取,直接指定10.10.10.0網(wǎng)段的IP地址不就可以了嗎?因為整個實驗進度會很長,實驗環(huán)境會隨時發(fā)生變化,有時候在單位做實驗,有時候在家里做實驗,有時候又是在外面的茶樓、酒吧做實驗,本機的IP地址跟路由都是不斷變化的,有時候是10.10.10.0網(wǎng)段,有時候是192.168.1.0網(wǎng)段,有時候是其他網(wǎng)段,為了每次跟本機自適應(yīng)來實現(xiàn)FTP功能的互訪,所以設(shè)置第三塊網(wǎng)卡為自動獲取IP顯得尤為重要。至于默認網(wǎng)關(guān)也經(jīng)常發(fā)生變化,其實只需要通過一條命令route add/delete default gw x.x.x.x來進行默認路由的修改就可以了。 4.2,通過執(zhí)行service vsftpd start來啟動ftp功能,然后來到/etc/vsftpd目錄,這里我們要編輯兩個文件,分別是ftpusers和user_list: 4.3,下面這幅圖顯示的是/etc/ftpusers的內(nèi)容,我們需要做的是在“root”字樣前面添加注釋符,通過這種手段來打開root用戶對ftp功能的使用。同理,需要編輯的文件還有user_list: 通過編輯這兩個文件,我們就可以在windows下以root用戶登陸到虛擬機里同一網(wǎng)段的linux系統(tǒng)下,第三塊網(wǎng)卡的使命就在于此。 4.4,F(xiàn)TP功能演示,這里我們簡單上傳一個文本文件: 1,修改oracle用戶的初始化參數(shù)文件 [root@rac1 ~]# vi /home/oracle/.bash_profile 增加如下內(nèi)容: export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/opt/ora10g export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=RACDB1 export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/ export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib umask 022 2,創(chuàng)建/opt/ora10g目錄,要注意該目錄所有者或oracle用戶的權(quán)限 [root@rac1 ~]# mkdir /opt/ora10g 由于該目錄主要由oracle 用戶操作,因此我們將其所有者改為oracle [root@rac1 ~]# chown oracle.oinstall /opt/ora10g 3,配置內(nèi)核參數(shù) [root@rac1 ~]# vi /etc/sysctl.conf 增加或修改下列內(nèi)容 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144
[root@rac1 ~]# sysctl -p 讓設(shè)置生效 4,提高Oracle用戶的shell限制 設(shè)置oracle 使用的文件數(shù)權(quán)限 [root@rac1 ~]# vi /etc/security/limits.conf 增加下列內(nèi)容 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
修改安全限制 [root@rac1 ~]# vi /etc/pam.d/login 增加: session required /lib/security/pam_limits.so 配置Hangcheck 計時器 [root@rac1 ~]# vi /etc/rc.local 增加: modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180 5,磁盤分區(qū) 通過fdisk -l可以看看所有磁盤的狀態(tài),如果前期裸設(shè)備規(guī)劃正確的話,在諸如/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde下面是看不到任何分區(qū)信息的,這也表明這些磁盤都是干凈的磁盤,不像/dev/sda那樣不干凈(有了文件系統(tǒng))。下面我們要對/dev/sdb到/dev/sde的四塊磁盤進行分區(qū),分區(qū)過程如下圖所示(這里以/dev/sdb為例,其他磁盤操作類似): 經(jīng)過這樣的步驟,裸設(shè)備就創(chuàng)建好了。之所以稱之為裸設(shè)備,就是因為自身不帶任何文件系統(tǒng),如下圖所示: 到這個地方,要跟前面的文章首尾呼應(yīng)一下了。把前面的那副圖片專門提出來說明一下: 在這個地方,我取消了/dev/sdb到/dev/sde前面小方框里面的勾,之所以這樣做,就是為這個地方的磁盤分區(qū)做準(zhǔn)備的。取消那個地方的勾和不取消是有著很大關(guān)系的,如果不取消的話,在磁盤分區(qū)的時候會出現(xiàn)什么狀況?系統(tǒng)會提示你這塊盤上面已經(jīng)分好區(qū)不用你再分了!如果你強行要分區(qū),那么就必須把之前的分區(qū)信息給刪除掉重新分配。如果這時采取這樣的動作,那么危險就來了,在下一刻你關(guān)閉系統(tǒng)、重新啟動的時候系統(tǒng)會報告一個嚴重錯誤,說系統(tǒng)磁盤所屬卷組受到了嚴重破壞,然后系統(tǒng)無法啟動。
分析一下為什么會出現(xiàn)這樣的情況,如果我們在系統(tǒng)安裝的時候沒有取消掉/dev/sdb到/dev/sde前面小方框里面的勾,那么相當(dāng)于我們用于安裝操作系統(tǒng)的磁盤從一個變成了五個,雖然/dev/sdb到/dev/sde沒有直接參與操作系統(tǒng)部分的安裝,但是他們已經(jīng)和/dev/sda這塊盤被一起劃分到了同一個卷組,因此也自動的獲得了分區(qū)信息。在磁盤分區(qū)這個階段,如果再對包括/dev/sdb到/dev/sde這幾塊盤進行分區(qū)信息的重建,那么就破壞了原有卷組信息。舉個簡單的例子,一個銀行有一個金庫,打開這個金庫大門需要五把鑰匙,五把鑰匙分別放在五個人手里,這五個人都是銀行的核心職工,這樣做當(dāng)然是為了提高安全性。試想假如有一天同時丟了四把鑰匙,那僅剩的一把鑰匙自然是不能打開金庫大門的。在安裝linux操作系統(tǒng)的時候我們本來只需要一塊硬盤來與之發(fā)生關(guān)聯(lián),但是現(xiàn)在我們讓其他四塊磁盤也參與了進來,在實驗過程中又變相的毀掉了那四塊磁盤,自然系統(tǒng)就發(fā)生紊亂了。 磁盤分區(qū)過程完畢之后,下面要來到主節(jié)點設(shè)置的最后一個步驟:打補丁。之所以把這部分單獨羅列出來,因為打補丁在整個實驗過程中的重要地位不容忽視。很多時候,無論是windows操作系統(tǒng)還是unix操作系統(tǒng),我們在進行某項重要實驗的時候,總是發(fā)生一些莫名其妙的錯誤,讓你不明白到底疏漏了什么地方。其實每到這種情況,尤其是在ORACLE RAC或者HA環(huán)境部署情況下,關(guān)注系統(tǒng)補丁是否安裝完整變得很重要。
工作中接觸UNIX多一些,所以這方面的感觸也多一些,補丁,無論是操作系統(tǒng)補丁還是軟件補丁,對生產(chǎn)或者應(yīng)用,對安全性或者功能性都很重要。為什么要做到面面俱到,尤其是在打補丁方面更不能忽略每一個細節(jié),這對整個實驗過程的順利進行實在太過重要,因此下面專門用完整的篇幅來介紹vmware+linux+oracle rac環(huán)境下系統(tǒng)補丁或者數(shù)據(jù)庫補丁的安裝。
滿足linux操作系統(tǒng)下ORACLE RAC的搭建,主要要打兩種類型的補丁,一種是系統(tǒng)內(nèi)核補丁,一種是滿足于ORACLE數(shù)據(jù)庫的補丁。對于本次實驗而言,所需的大部分補丁可以在以下兩個鏈接上下載:
http://www.oracle.com/technology/software/tech/linux/asmlib/rhel5.html
http://oss.oracle.com/projects/compat-oracle/files/Enterprise_Linux/ 除此之外,我們還需要額外的下載兩、三個補丁,否則從鏈接地址上下載的補丁不能完全安裝好。值得注意的是,在linux下安裝補丁,補丁一定要嚴格對應(yīng)操作系統(tǒng)版本,否則有可能導(dǎo)致系統(tǒng)全面紊亂。我就遇到不止一次,一次在linux5.2的操作系統(tǒng)下打了一個linux5.1操作系統(tǒng)的字符方面的補丁,導(dǎo)致圖形界面啟動不來。這個還好辦一些,直接在系統(tǒng)啟動的時候中斷掉,然后到命令行模式下手工刪除之前安裝的補丁包,再重新啟動系統(tǒng),就ok。更倒霉的一次,因為錯誤打了一個其他版本操作系統(tǒng)的補丁,導(dǎo)致系統(tǒng)啟動直接黑屏,連單用戶模式都進不去了。這兩次都是在實驗進行過程中出現(xiàn)的,究其原因就是因為沒有引起足夠的重視,也是因為還不熟悉linux操作系統(tǒng)下打補丁,一次解決了,一次無法解決,結(jié)果很無奈的重裝操作系統(tǒng),累計到這里就已經(jīng)重復(fù)安裝操作系統(tǒng)七次了。
下面介紹一下本實驗過程中打補丁的全過程:
1,將下載所有補丁壓縮到一個zip包里,以ftp方式上傳到linux系統(tǒng)的“ly_media”目錄下:
![]() 2,在“ly_media”文件系統(tǒng)用unzip命令解壓縮補丁包,我們可以看到實驗所需所有補丁:
![]() 以上圖片就是此次實驗所需所有補丁包,這里簡單的介紹一下,其中:
oracleasm打頭的六個補丁包是從http://www.oracle.com/technology/software/tech/linux/asmlib/rhel5.html上下載的。
compat打頭的四個補丁包、openmotif21打頭的兩個補丁包,以及xorg-x11打頭的一個補丁包是在http://oss.oracle.com/projects/compat-oracle/files/Enterprise_Linux/上下載的。
剩下三個補丁(kernel打頭的兩個補丁包和libXp打頭的補丁包)是我額外單獨下載的,為什么要下載這幾個補丁包,那是大有來頭。因為在linux下的補丁包,很多都是相互關(guān)聯(lián)的,比如我在打oracleasm-2.6.18-53.el5debug-2.0.4-1.el5.i686這個補丁包的時候,系統(tǒng)提示無法安裝,缺乏kernel-debug補丁包;在打oracleasm-2.6.18-53.el5PAE-2.0.4-1.el5.i686補丁包的時候,系統(tǒng)提示需要kernel-PAE補丁包,否則操作無法繼續(xù)進行。
遇到這種情況的時候,就需要我們單獨下載匹配的、和操作系統(tǒng)版本相符合的補丁包,像本實驗中的kernel-debug-2.6.18-53.el5.i686、kernel-PAE-2.6.18-53.el5.i686這兩個補丁包就是單獨從外網(wǎng)下載的。除了這兩個,我還用到了libXp-1.0.0-8.1.el5.i386這個補丁包,這就牽涉出了打補丁的第二個要點:先后順序,這也是我?guī)捉?jīng)折騰之后方才發(fā)現(xiàn)的。在我打補丁包compat-oracle-el5-1.0-5.i386的時候,系統(tǒng)提示我需要安裝openmotif21-2.1.30-11.EL5.i386補丁包,我心里一樂,有啊。于是樂不可支的去安裝這個補丁包,豈料系統(tǒng)又出一提示:請先安裝libXp,這就涉及到了我額外下載的第三個補丁包libXp-1.0.0-8.1.el5.i386,到我下載好這個補丁包,再按照前后反復(fù)多次打補丁的經(jīng)歷,總結(jié)出了在本實驗過程中,應(yīng)該按照這樣的細則打補?。合泉毩ⅰ⒃訇P(guān)聯(lián)。也就是先把不依賴于其他補丁包存在的補丁打好,然后再打前后關(guān)聯(lián)那些補丁包,這樣一來,就不存在任何問題了。
在打補丁這個環(huán)節(jié),我多次嘗試,才總結(jié)出其中的規(guī)律,現(xiàn)將本實驗打補丁包順序羅列如下:
1,compat-binutils215-2.15.92.0.2-24.i386
2,compat-libcwait-2.1-1.i386
3,compat-libstdc++-egcs-1.1.2-1.i386
4,openmotif21-debuginfo-2.1.30-11.EL5.i386
5,xorg-x11-libs-compat-6.8.2-1.EL.33.0.1.i386
6,oracleasm-support-2.1.2-1.el5.i386
7,oracleasm-2.6.18-53.el5-2.0.4-1.el5.i686
8,oracleasm-2.6.18-53.el5xen-2.0.4-1.el5.i686
這八個補丁,安裝無先后順序,因為他們都是相互獨立的,下面就有些講究了:
1,kernel-debug-2.6.18-53.el5.i686
2,oracleasm-2.6.18-53.el5debug-2.0.4-1.el5.i686
其中1、2相互關(guān)聯(lián)
3,kernel-PAE-2.6.18-53.el5.i686
4,oracleasm-2.6.18-53.el5PAE-2.0.4-1.el5.i686
其中3、4相互關(guān)聯(lián)
5,libXp-1.0.0-8.1.el5.i386
6,openmotif21-2.1.30-11.EL5.i386
7,compat-oracle-el5-1.0-5.i386
其中5、6、7相互關(guān)聯(lián)
8,oracleasmlib-2.0.3-1.el5.i386
這個補丁之所以放到最后打,是因為他跟oracleasm打頭的補丁整體有個先后順序,先安裝oracleasm打頭的補丁,再安裝這個,才滿足要求。
3,下面繼續(xù)本次實驗的補丁安裝過程:
![]() ![]() 4,配置裸設(shè)備:
由于RHEL5 中取消了rawdevices,如果不想將映射命令放到rc.local 中的話,我們就需要將其配置到/etc/udev/rules.d/文件夾中 修改文件 [root@rac1 ~]# vi /etc/udev/rules.d/60-raw.rules,添加內(nèi)容如下圖所示: ![]() 5,重啟服務(wù)以及驗證: ![]() 這樣,主節(jié)點的設(shè)置過程完畢,下面就要開始副節(jié)點的設(shè)置了。 |
|