vm7+openfiler2.3+rhel 5.4+ocfs2+oracle 11g rac配置過程初步記錄(2)

jinqibingl發表於2012-10-04

vmware workstation 7+openfiler2.3+rhel 5.4+ocfs2+oracle 11g rac配置過程初步記錄(第二階段)  

二、第二階段:在完成兩臺機器預準備工作後,就進入第二階段。我們需要把配置好的兩個系統都啟動起來了。先用ping測試一下連通性。1.  配置oracle使用者的同等性(需使用oracle使用者登陸)

在兩臺機器中都執行如下操作:

[oracle@rac1 ~]$ mkdir .ssh

[oracle@rac1 ~]$ chmod 700 .ssh

[oracle@rac1 ~]$ 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:

29:88:60:b7:47:8f:32:d7:b6:cf:8a:6a:7f:d6:9b:1b

然後,在rac1上,執行如下操作:

[oracle@rac1 .ssh]$

The authenticity of host 'rac1 (192.168.56.132)' can't be established.

RSA key fingerprint is e6:7e:fc:49:c0:32:d5:12:a6:3c:3b:92:c5:44:be:f6.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'oracle1,192.168.162.138' (RSA) to the list of known hosts.

oracle@rac1 's password:

[oracle@oracle1 .ssh]$ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys

password:

 [oracle@rac1 .ssh]$scp authorized_keys rac2:/home/oracle/.ssh/

然後到rac2上,把authorized_keys的許可權也改為600.

最後以oracle使用者在兩個節點上分別執行如下操作:

$ssh rac1 date

$ssh rac2 date

$ssh rac1.test date

$ssh rac2.test date

$exec /usr/bin/ssh-agent $SHELL

$/usr/bin/ssh-add

注意:目錄.ssh的許可權一定要是700,而.ssh目錄下的所有檔案許可權一定要是600,否則會出現Permission denied (publickey).的錯誤,這也是我花了一個晚上才解決的問題。

好了,先在兩臺機器之間oracle使用者的同等性建立完成。發現了嗎,ssh到對方機器時不再需要密碼。

2、接下來就是重要的iscsi磁碟雙機同時掛載,這個同時掛載是需要兩機能互相通訊才能同時掛載。

(1)  這裡需要用到ocfs2,所以要下載下來,如果是oracle redhat linux的話,則可能在作業系統光碟中找到。

OCFS2(Oracle Cluster File System 2)所需的核心包和工具包的下載地址為:

切忌,核心包一定要裝跟你係統相匹配的。我這裡用的是RHEL5 。注意一定要ocfs2的版本一定要和核心版本相匹配。

[root@rac1 ~]# uname -r

2.6.18-8.el5xen 

[root@rac1 opt]# ls -l

total 1576

-rw-r--r-- 1 root root  278783 Sep 22 21:48 ocfs2-2.6.18-8.el5xen-1.2.9-1.el5.i686.rpm

-rw-r--r-- 1 root root  169193 Sep 22 21:48 ocfs2console-1.2.7-1.el5.i386.rpm

-rw-r--r-- 1 root root 1144294 Sep 22 21:48 ocfs2-tools-1.2.7-1.el5.i386.rpm

  直接用#rpm -Uvh * 安裝就行了。

  (2)連線上iscsi。

在rac1或者rac2上

用root許可權執行:iscsiadm -m discovery -t sendtargets -p 10.0.0.140:3260

發現iscsi目標後

執行 iscsiadm -m node -l

注意:實際中發現,只要iscsiadm 命令發現iscsi目標後,這個目標就被儲存起來了,以後啟動的時候,只要iscsi服務啟動,這個就能自動登入。也有可能是我之前已經將iscsi配置為自動啟動,這個忘記了。

然後fdisk -l,可以看到,已經有個/dev/sdb了,用fdisk /dev/sdb進行分割槽。

  下面的步驟是很拗口的哈,儘量執行就是了,這裡我建議是分成兩個區好點,就是執行兩次fdisk /dev/sdb,partition number 分別輸入的是第一次是1和第二次是2,至於容量,注意第一次的時候 last cylinder不要輸入預設的,要輸入你需要在第一個分割槽的容量,其他的容量給第二個分割槽,第二次的時候,除了partition number是2之外,其他的都預設。

  [root@oracle1 ~]# fdisk /dev/sdb

The number of cylinders for this disk is set to 1044.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n

Command action

   e extended

p primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-1044, default 1): 回車

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):回車

Using default value 1044

Command (m for help): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot Start End Blocks Id System

/dev/sdb1 1 1044 8385898+ 83 Linux

Command (m for help): w

The partition table has been

Calling ioctl() to re-read partition table.

Syncing disks.

這時候分割槽就做好了,由於我們做的是共享儲存,所以另外一臺機器上,不需要操作了。

(3)現在開始用ocfs2做叢集了。

兩個分割槽做好後

[root@oracle1 ~]ocfs2console  

選擇"Task"選單下的format,更改volume label為ocfs(這個標記是隨便的,自己看的懂就可以了),點選OK,格式化。

檢視一下/etc/ocfs2/下是否有cluster.conf檔案,把裡面的內容清空;如果沒有此檔案,touch一個。

接下來,點選"Cluster"選單下的Node Configuration,把兩個節點都新增上,名字就是Hostname,即rac1.test和rac2.test。 IP部分添私網IP,即10.0.0.138  10.0.0.139。點選Apply儲存,如果啟用,就說明配置正確。點選node configuration下面的那個子選單,Progagate  Configuration。不出錯誤提示,就說明正確了。然後在另外一臺機器上,檢查/etc/ocfs2/cluster.conf檔案是否存在,內容是否和另外一臺機器一致。

以後把圖放上來。

(4)後面的操作涉及,兩個叢集元件o2cb和ocfs2。

用ocfs2console格式化完成後,配置雙機間通訊。據我理解,o2cb主要是用於兩機之間的通訊,其中最關鍵是heartbeat,而ocfs2 主要是掛載共享磁碟,兩個元件相互協調,如果o2cb 沒有成功設定心跳配置,那麼ocfs2只能掛載一個,另外一個掛載的時候會提示錯誤。

首先執行:

在兩臺機器上都執行

 /etc/init.d/o2cb configure

要求的值,全部採用預設值。修改完成後,/etc/init.d/o2cb restart。

然後檢查下兩臺機器的o2cb和ocfs2服務狀態

service o2cb status

service ocfs2 status

ocfs2的操作,相對簡單點:service ocfs2 start   service ocfs2 stop  service ocfs2 restart

o2cb的操作,有好幾個,要看status提取出來的狀態來確定需要執行什麼操作:/etc/init.d/o2cb load   online    service o2cb restart  service o2cb start  service o2cb stop

啟動了ocfs2和o2cb後,開始掛載,掛載命令如下:

mount -t ocfs2 /dev/sdb1 /oracle/home

mount -t ocfs2 -o datavolume,nointr /dev/sdb2 /oracle/data  (註釋:datavolume表明這裡儲存資料,nointr表明不允許中斷)

ocfs2一般沒有問題,掛載不上主要還是考慮o2cb的問題。o2cb服務錯誤,一般主要是心跳問題上,就是兩機的心跳沒連線上,主要考慮三個原因:1、主機名和IP地址不符合,o2cb沒通;2、防火牆沒關;3、 /etc/init.d/o2cb configure的時候,兩臺機器的heartbeat dead threshold不一樣,或者說是 /etc/init.d/o2cb configure後,沒有重新啟動o2cb,沒有應用剛剛設定的配置。

我在試驗中出現的就是防火牆沒關,關閉之後就行了。

到這裡,基本上,叢集檔案系統做完了,可以開始安裝oracle了。

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

相關文章