主節(jié)點設(shè)置完畢之后,下面來到副節(jié)點的設(shè)置。
說點題外話,在沒有看君三思《手把手教你用VMware在linux下安裝oracle10g RAC》這篇文章的時候,我沒有把握好順序,也就是說沒有按照先主后副的順序來進行實驗,完全沒有想到可以在主節(jié)點配置完成之后克隆一個副節(jié)點出來,稍加修改,就成了一個完備的系統(tǒng)。
我最初做實驗的時候,同時配置兩個虛擬機,同時安裝兩套linux操作系統(tǒng)。在安裝操作系統(tǒng)的時候,我的電腦基本就不動了,CPU占用率居高不下。正常情況下兩個小時就完工了,我同時安裝兩套操作系統(tǒng)用去了足足三個半小時,后來因為不符合要求還是其他什么原因,我又刪去一個。這樣的傻事我連續(xù)干了兩次,在看到三思文章里面系統(tǒng)克隆大法的時候我心都要碎了,我想的是為什么沒有早一些看到這篇美文。在即將隆重介紹的就是系統(tǒng)克隆大法之前再說點題外話,這個題外話尤為重要,因為這個地方卡殼,導(dǎo)致我重裝系統(tǒng)三次有余,累計起來,我重裝系統(tǒng)的次數(shù)已經(jīng)達到了十次。不過也是在最后一次重裝系統(tǒng)的時候,找到了其中的奧妙所在。
先獻上一副美圖:
![]() 這副圖里面展示了三個文件夾,其中RAC1文件夾包含了主節(jié)點的配置文件、RAC2文件夾包含了副節(jié)點的配置文件(這個文件夾里面的內(nèi)容實際是從RAC1里面克隆過來的)、raw_disk文件夾里面存放的便是裸設(shè)備文件。而在這之前實際存在的文件夾只有兩個:RAC1和RAC2。至于raw_disk里面的文件是和RAC1里面的文件放置在一起的。自然,經(jīng)過克隆之后,RAC2文件夾里面也有了裸設(shè)備文件。看上去很美,因為克隆把包括裸設(shè)備文件在內(nèi)的所有文件都給弄過來了,但實際不是這么回事,這么做恰恰為之后創(chuàng)建共享磁盤這一實驗步驟埋下了劇毒,具體原因?qū)懙絼?chuàng)建共享磁盤的時候再點明,那樣會印象更加深刻一些。這里先按照正確的方法往下做:
1,關(guān)閉主節(jié)點(shutdown -hy 0掉linux操作系統(tǒng)),然后在和RAC1、raw_disk文件夾相同目錄下創(chuàng)建目錄RAC2,然后將RAC1目錄下所有文件運用操作系統(tǒng)復(fù)制粘貼技術(shù)原模原樣的給弄到RAC2下來:
![]() ![]() ![]() 這里根據(jù)各自系統(tǒng)分配空間而定,因為我前期給用來創(chuàng)建linux操作系統(tǒng)的本地虛擬磁盤指定了25GB大小,所以復(fù)制的時候時間稍長,有七分鐘左右。
2,復(fù)制完畢之后,可以看到RAC2下的文件和RAC1無論大小以及文件名完全相同:
![]() 3,使用文本編輯器打開RAC2下的vmx文件進行修改,將凡是命為RAC1的地方改為RAC2,如下圖所示:
![]() 這里需要更改的只有兩處,改完之后我們退回到RAC2目錄下,將RAC1.VMDK這個文件改為RAC2.VMDK:
![]() 4,改完之后,我們在虛擬機中按照RAC2的路徑對vmx文件做open操作,這樣,另一個活生生的系統(tǒng)又出現(xiàn)在人民大眾面前:
![]() 5,點擊綠色啟動按鈕進行對RAC2的啟動,在彈出來的對話框中選擇“CREATE”:
![]() 6,啟動到系統(tǒng)后,因為保留了RAC1的所有參數(shù),所以我們要略做一些修改,首當其沖的,自然是系統(tǒng)名稱,修改過程如下:
![]() 7,然后將網(wǎng)卡的MAC地址修改為正確形式,首先通過ifconfig命令記錄正確的網(wǎng)卡MAC地址,注意這個地方我們用ifconfig觀察到的MAC地址是正確的,而存在于/etc/sysconfig/network-scripts目錄下諸如ifcfg-eth0、ifcfg-eth1、ifcfg-eth2等文件下的MAC地址是錯誤的,我們要做的就是用ifconfig命令記錄下來正確的MAC地址去替換ifcfg-ethx文件中錯誤的MAC地址:
![]() ![]() 有一點要引起注意,在我們克隆過來的系統(tǒng)剛啟動時,所有之前設(shè)置的網(wǎng)卡,不管是動態(tài)的、靜態(tài)的,這個時候都會作為動態(tài)獲取IP地址去獲得一個和本機處于同一網(wǎng)段的IP地址,所以除了MAC地址之外,還需要我們將動態(tài)獲得的IP地址還原為/etc/hosts文件中為RAC2定義的IP地址,然后重啟網(wǎng)絡(luò),如下圖所示:
![]() 8,除此之外,還要切換到oracle用戶下修改ORACLE_SID這個環(huán)境變量:
![]() 9,值得一提的是,興許有很多人會在這個過程中忽略一點,也包括我。這一點如非仔細觀察不易發(fā)現(xiàn),而忽略這一點導(dǎo)致的后果就是在啟動系統(tǒng)到sendmail的時候會停留很久,短則三五分鐘,長則十二、三分鐘,讓人誤解系統(tǒng)死機。好心好意的重啟系統(tǒng),到這個地方又很自然的放慢了春天的腳步,這就很讓人郁悶了。經(jīng)過多次觀察,我終于發(fā)現(xiàn)了癥結(jié)所在。原來在系統(tǒng)啟動到sendmail這個模塊的時候會去檢查環(huán)回地址loopback ip,如果這個地方設(shè)置有問題或者跟系統(tǒng)自身不符,那么就會花時間去不斷的檢測,檢測到最后也沒有結(jié)果系統(tǒng)就主動放棄,跳過這一環(huán)節(jié)去執(zhí)行剩余的啟動進程。這就是為什么系統(tǒng)久久停留在sendmail這里揮之不去的原因,弄清這點之后,這個問題也就迎刃而解了:
![]() 至此,副節(jié)點的設(shè)置完畢,我們需要做的,就是重啟系統(tǒng),讓新的主機名、IP地址等生效。 下面開始配置clusterware:
1,設(shè)置ssh
設(shè)置ssh是整個實驗過程不可或缺的環(huán)節(jié),簡單說就是配置主節(jié)點和副節(jié)點之間的信任機制,讓兩臺機器能夠相互通信。這點跟在三大unix平臺hp/aix/solaris下建立.rhosts文件然后添加各節(jié)點IP地址跟主機名到文件中類似。首先在主節(jié)點RAC1上ping副節(jié)點RAC2上的不同網(wǎng)段地址看是否能ping通:
![]() 2,在主節(jié)點上以oracle用戶身份生成用戶的公匙和私匙:
![]() 3,在副節(jié)點RAC2上執(zhí)行相同的操作,確保通信無阻:
![]() ![]() 4,在主節(jié)點RAC1上執(zhí)行以下操作:
![]() ![]() 5,主節(jié)點上執(zhí)行檢驗:
![]() 要注意觀察返回時間誤差不要相差太大,否則需要執(zhí)行時間同步。
6,在副節(jié)點上執(zhí)行類似操作:
![]() ![]() 7,接下來要配置共享磁盤,這一步非常之關(guān)鍵,我很多次都在這里遭遇滑鐵盧,但也因為碰到的、解決的問題的增多,這一步執(zhí)行起來也越來越順利。下面演示具體過程,首先在主節(jié)點上配置共享磁盤:
![]() 8,在副節(jié)點RAC2上執(zhí)行類似操作:
![]() 9,在主節(jié)點RAC1上創(chuàng)建卷組VOL1/VOL2,分別對應(yīng)/dev/sdd和/dev/sde:
![]() 10,在主節(jié)點上配置,在副節(jié)點上掃描,如果能掃描出主節(jié)點上創(chuàng)建的VOL1/VOL2,那表示成功:
![]() 到這里,clusterware的配置完成,下一節(jié)要花點時間介紹創(chuàng)建共享磁盤中可能遇到的不少問題以及解決方案。
clusterware的配置在整個實驗過程中是最為核心的步驟,而ASM磁盤的創(chuàng)建過程又是核心中的核心。如果這一步走對了,接下來就輕松很多。反之,如果這一步始終過不去,那不僅后面的實驗沒法進行,而且很打擊人的積極性。我就在這一步躑躅了很長時間,因為所遭遇的故障久久無法解決,比如無法創(chuàng)建VOL1/VOL2的問題,比如在主節(jié)點上創(chuàng)建了VOL1/VOL2,但是在副節(jié)點上無法識別到的問題等等。還好,搜索引擎足夠強大,很多問題我碰到的,人家也碰到了,而且也給出了解決方案,順著一個個的解決方案總算是過了這一關(guān),下面來具體探討一下所遭遇的故障們。
1,同樣的,為了跟前面的文章首尾呼應(yīng),這里先貼出一副圖:
![]() 這幅圖所透露出來的一個強烈的信息就是,裸設(shè)備文件和系統(tǒng)文件一定要隔離開,分別存放于不同的文件夾。為什么要這樣做前面沒有提,這里詳細解釋一下。我剛開始做實驗的時候就是把系統(tǒng)文件跟裸設(shè)備文件全置放在一個文件夾內(nèi),到克隆操作系統(tǒng)的時候,這些文件也跟著一起到了副節(jié)點。到了創(chuàng)建共享磁盤的時候,潛伏的毒藥就釋放出來。比如我在RAC1上面創(chuàng)建了VOL1/VOL2,但是在RAC2上執(zhí)行/etc/init.d/oracleasm scandisks后再執(zhí)行/etc/init.d/oracleasm listdisks,沒有任何顯示,也就意味著在RAC2節(jié)點上識別不到RAC1節(jié)點上使用裸設(shè)備文件所創(chuàng)建的卷VOL1/VOL2。
造成這種現(xiàn)象的原因是此刻在RAC1和RAC2之間已經(jīng)不存在任何聯(lián)系,大家各自為政。在RAC1中存在實驗所需裸設(shè)備文件,但是在系統(tǒng)克隆階段,這些裸設(shè)備文件又隨之涌入到了RAC2中,成了RAC2所獨有的裸設(shè)備。舉個簡單的例子,政府規(guī)定低保戶可以享受每月500圓人民幣的補貼用來維持生活,甲因為家境貧困(沒有裸設(shè)備),每月都靠政府發(fā)放的500圓人民幣過日子。突然有一天,甲買福利彩票中了500萬人民幣(得到了裸設(shè)備),突然一躍成為富人階級,那么他當然無權(quán)繼續(xù)享受每月500圓的補貼了。
理解了這一點,就比較好解決了,按照之前給出的正確方法,將系統(tǒng)文件和裸設(shè)備文件隔離開,分別存放在不同的文件夾,這樣系統(tǒng)克隆的時候就把裸設(shè)備文件排除在外。RAC1創(chuàng)建了VOL1/VOL2之后,RAC2再一掃描,就能夠順利的看到VOL1跟VOL2的身影了,這也就代表著共享磁盤創(chuàng)建成功。
2,針對另外一個問題再給出一幅圖片:
![]() 這幅圖前面已經(jīng)單獨給過一次,而且也就為什么這樣做給出了詳細的解釋,這里再啰嗦一下。除去系統(tǒng)磁盤之外的四塊磁盤不能在安裝操作系統(tǒng)的時候捆綁在一起,否則后期磁盤分區(qū)的時候系統(tǒng)會提示你分區(qū)信息已經(jīng)存在,如果你刪去已經(jīng)存在的分區(qū)再重新格式化磁盤并重新分區(qū),在系統(tǒng)還沒有重啟的時候興許感覺不出來,但只要系統(tǒng)一重啟,就再也無法正常進入到系統(tǒng)了,因為作為系統(tǒng)一個組成部分遭到了毀滅性的破壞,系統(tǒng)也隨之灰飛煙滅了。如果在沒有重啟的情況下,再使用這重新分區(qū)的磁盤來創(chuàng)建ASM磁盤,這時系統(tǒng)會認為這塊盤還處于繁忙狀態(tài),并不是一塊干凈的磁盤,所以就無法創(chuàng)建可用的ASM磁盤。
碰到這樣的問題,我還沒有發(fā)現(xiàn)比較好的解決辦法,唯有從頭再來,這實在是一件讓人痛苦不堪的事,這樣的事,經(jīng)歷過一次也就夠了。
3,在給出一張很有代表性的圖片:
![]() 我看很多人在網(wǎng)上都貼出了類似這樣的圖片,問創(chuàng)建ASM磁盤不成功跟這個有沒有關(guān)系,因為較之官方給出的配置過程不太一樣,似乎少了些步驟:
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Fix permissions of Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: [ OK ] Loading module "oracleasm": [ OK ] Mounting ASMlib driver filesystem: [ OK ] Scanning system for ASM disks: [ OK ] 看到了吧,官方給出的配置過程和我實驗中的配置過程還真不一樣,乍看上去是少了一些步驟。很奇怪,我每次ASM磁盤配置過程都和我貼圖上面一樣,從來沒有一次與官方這個配置雷同。在我還沒有找到為什么不能創(chuàng)建ASM磁盤時我還真懷疑大概跟配置過程不完整有關(guān)系,也導(dǎo)致我一怒之下關(guān)了虛擬機,刪去所有系統(tǒng)文件,從頭來過(算上這一次,重裝操作系統(tǒng)次數(shù)達到11次),但讓人氣餒非常的是到配置ASM磁盤的時候仍然和之前所顯示一模一樣。在我發(fā)現(xiàn)不能創(chuàng)建ASM磁盤的原因竟然跟安裝操作系統(tǒng)時犯下的錯誤有關(guān)之后,我跳過這一步不去管它,繼續(xù)創(chuàng)建VOL1跟VOL2,然后再RAC2節(jié)點上scandisks、listdisks,發(fā)現(xiàn)也能成功識別到VOL1跟VOL2,這說明我的配置也是沒有問題的,雖然跟官方仍然存在那么一點點不同。
這段文字寫完,希望所有對ASM磁盤配置過程心存疑慮的人們放心大膽的朝前邁,一點問題沒有。
|
|