RHEL5.4+openfiler2.3+oracle11g rac+asm叢集資料庫配置全過程

jinqibingl發表於2012-10-04

RHEL5.4+openfiler2.3+oracle11g rac+asm叢集資料庫配置全過程  

 

 

一、叢集的系統環境:

1、全部使用虛擬機器,64位win7上,用vmware7配置出2臺RHEL5.4,+1臺openfiler2.3。

2、RHEL5.4:硬碟容量30G,雙虛擬網路卡,分別對應主機上兩張虛擬網路卡。

3、openfiler2.3:硬碟容量60G,單虛擬網路卡,系統佔據10G左右,其他容量空白,不格式化,不掛載。

4、網路配置:(1)、rac叢集需要兩個不同的網路,公有網路和私有網路(public network and private network),我第一次是兩個網路徹底隔離在虛擬系統裡面,第二次公有網路為單位區域網,私有網路為獨立網路,辦法就是公有網路的IP與單位區域網的IP在同一網段,並且公有網路的網路卡連線方式改為橋接;

           (2)考慮還是記錄開放方式下得叢集吧,這樣比封閉方式的詳細一些;

           (3)修改電腦主機上的虛擬網路卡,vmnet1虛擬網路卡對應的虛擬機器裡面的網路卡為橋接方式,直接接入主機物理網路卡,所以vmnet1虛擬網路卡其實沒有用到,vmnet8為私有網路入口,這個ip地址需要更改,我使用的是10.0.0.141,掩碼255.0.0.0。這樣只要虛擬機器裡面的網路卡配置正確,基本上兩個網路就可以正確建立;

           (4)RHEL5.4內,識別的網路卡名稱一般式eth0和eth1,虛擬系統內,網路卡配置:eth0為橋接方式,eth1連結到vmnet8,所以進入系統後,ip地址分別是:eth0  100.XXX.XXX.150,255.255.255.0;eth1  10.0.0.138,255.0.0.0。第二臺RHEL5.4,ip地址分別是:eth0  100.XXX.XXX.151,255.255.255.0;eth1  10.0.0.139,255.0.0.0。

            (5)關於儲存連結,我還是習慣於附加在私有網路上,所以openfiler2.3系統的那張虛擬網路卡地址:10.0.0.140,255.0.0.0。這樣做法,也有好處,附加的位置是私有網路,具有一定的資料安全保密性,這樣就不需要在iscsi  target設定上新增登入控制了,配置更簡單。

             (6)檢測網路連通性,兩臺RHEL5.4需要檢測兩臺RHEL5.4之間是否連通,與電腦主機之間是否連通,與openfiler2.3是否連通。

二、配置儲存機

1、根據的教材是:vmware 華南技術中心出的openfiler2.3 iscsi設定圖文教程。

2、因為這個教程網上肯定會有的,所以我這裡的記錄的比較簡單。

3、第一步:建立physical volume分割槽,選擇 上方的volumes>右邊的block devices,然後出現create a partition in /dev/sdb,注意選擇physical volume,容量大小一般預設,也就是所有的空餘容量,然後點選create。

4、第二步:建立卷組,選擇 上方的volumes>右邊的volume groups,出現create a new volume group,要求輸入volume group name,這個沒有特殊要求的,可以隨便輸入,volume group name下面是剛剛建立的physical volumes列表,勾選上,然後點選add volume group。

5、第三步:建立iscsi邏輯卷,選擇上方的volumes>右邊的add volume,然後出現create a volume in "你上一步輸入的volume group name",在下面的空白框內,依次輸入 volume name(名稱隨便)、volume description(可選,可以選擇不輸入)、required space(一般是最大容量)、filesystem/volume type(要求必須是iscsi),點選create。

6、第四步:增加iscsi target IQN,並對映TARGET IQN。選擇上方的volumes>右邊的iscsi targets,這時候,出現add new iscsi target,有可能add按鈕是灰色的,不能點選,如果是灰色的話,選擇上方的services,出現一個服務列表,注意iscsi target server的status狀態,如果是disabled,那麼點選對應的右邊的enable,將iscsi target server服務啟動。然後再回到iscsi targets中,這時候add按鈕已經可用,直接點選,然後選擇這個介面中得lun mapping,不要改動出現的介面的設定,直接點選map。

7、到這裡就已經完成了,教程後面的其他部分是增加登入控制用得,最好不要啟動,因為登入控制比較負責,還有可能會涉及到linux內部的配置檔案。

三、對RHEL5.4進行grid安裝前準備工作

1、叢集資料庫安裝最關鍵其實就是安裝前的準備工作,準備工作完成正確無誤,基本上安裝過程就沒有太大的問題。

2、為了以後安裝的方便,這後面的記錄,將全部記錄執行的命令,並且沒有前面的命令提示符,以方便以後安裝的時候,可以直接複製相應的命令和內容到SSH中執行。

3、這些都是準備工作,有些工作是不分前後的,有些還是有順序的才行。

4、為了方便操作,我一般使用的是windows下的secureCRT,用ssh2的方式連線到RHEL5.4的虛擬機器。所有需要建立的賬戶,密碼全部統一使用為123456。

以下記錄開始進行實質性操作:

5、為了操作的方便,有時候可能需要顯示RHEL5.4虛擬機器的桌面,需要對RHEL5.4進行配置,配置如下:

(1)改變defaults.conf檔案許可權,預設是隻讀,因為需要修改檔案內容,所以要修改許可權。

      chmod 700 /usr/share/gdm/defaults.conf

(2)做如下配置---編輯/usr /share/gdm/defaults.conf

         Enable=true

         DisplaysPerHost=10

         Port=177

         AllowRoot=true

         AllowRemoteroot=true

         AllowRemoteAutoLogin=false

(3)做如下配置---編輯 /etc/gdm/custom.conf

          [xdmcp]

          Enable=1

(4)做如下配置---編輯 /etc/inittab (不要修改原來設定,在最後新增一行如下記錄)

          x:5:respawn:/usr/sbin/gdm

(5)重新載入GNOME桌面配置

          init 3 ; init 5

到此完成,xmanager3的xbrowser就會主動發現這兩個可以進入的桌面了,只要指定正確連線的IP地址即可進入。

6、修改RHEL5.4的網路卡ip地址。按照上面的記錄修改,由於ip地址尚未正確配置,可能無法從windows中連線到RHEL5.4虛擬機器,所以需要在RHEL5.4系統介面中直接操作。

7、RHEL5.4的IP地址配置:

      從RHEL5.4桌面開啟終端,執行system-config-network,開啟網路配置介面,配置如下:

 

RAC1

RAC2

 

Eth0

Eth1

Eth0

Eth1

IP地址

100.100.100.150

10.0.0.138

100.100.100.151

10.0.0.139

網路掩碼

255.255.255.0

255.0.0.0

255.255.255.0

255.0.0.0

       配置完成後,需要將配置執行應用,方法有兩個:方法1,先執行儲存,將網路卡關閉,然後再將網路卡啟用,完成;方法2,執行儲存,退出配置介面,執行service network restart,將網路卡服務重啟,完成。

8、兩臺RHEL5.4配置完成後,就可以使用secureCRT從windows連線到RHEL虛擬機器。

9、以後的操作如無特別說明,全部在windows的secureCRT中操作。注意有兩點:(1)windows上要安裝xmanager3,並且開啟Xmanager - Passive,接受螢幕顯示訊號;(2)在secureCRT中設定DISPLAY值,export DISPLAY=10.0.0.141:0.0,將顯示訊號指向到windows的xmanager3上。

10、建立使用者,執行system-config-users,進入使用者管理介面,新增使用者grid或者oracle,新增使用者組:oinstall、dba、asmdba、asmadmin,4個使用者組,並且grid和oracle使用者的主組都是oinstall,最好是grid和oracle使用者都有這4個使用者組,還要注意兩臺RHEL5.4之間,grid、oracle使用者的使用者程式碼及4個使用者組組程式碼,都一樣,如果不一樣的話,grid安裝會檢測出程式碼不一致的錯誤。

11、新增/etc/hosts的IP地址解析,開啟/etc/hosts,新增如下(注意不要修改原有內容):

#public

100.100.100.150 rac1.test rac1

100.100.100.151 rac2.test rac2

#private

10.0.0.138 rac1-priv.test rac1-priv

10.0.0.139 rac2-priv.test rac2-priv

#vitual

100.100.100.152 rac1-vip.test rac1-vip

100.100.100.153 rac2-vip.test rac2-vip

#clusterip

100.100.100.154 rac-cluster.test rac-cluster

儲存。

12、修改grid和oracle使用者的登入指令碼:

grid使用者,開啟/home/grid/.bash_profile,新增如下:

 

export ORACLE_BASE=/u02/app/oracle

export ORACLE_HOME=/u01/app/grid/product/11.2.0/db_1

export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin:/sbin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

if [ $USER = "grid" ]; then

        if [ $SHELL = "/bin/ksh" ]; then

                ulimit -p 16384

                ulimit -n 65536

        else

                ulimit -u 16384 -n 65536

        fi

fi 

 

 

執行儲存。grid使用者指令碼,主要影響grid的安裝。最好影響的是oracle_base和oracle_home兩個引數,現在的方法是兩個引數,分別從根目錄起就是兩個完全分開的目錄,這是由於在grid安裝過程中,oracle_home目錄的許可權會被安裝程式更改,從原來的grid.oinstall改到了root.oinstall,這個影響到底如何,不知道,所以將兩個目錄分開比較明智。在grid安裝過程中,需要提供oracle_base和software_location的位置,這裡有個要求,就是software_location不能是oracle_base的子目錄。所以以後有時間還要測試下,oracle_base=/u01/app/oracle和oracle_home=/u01/app/grid/product/11.2.0/db_1這樣配置,是否能成功。

 

oracle使用者,開啟/home/oracle/.bash_profile,新增如下:

 

export ORACLE_BASE=/u03/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin:/sbin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

if [ $USER = "oracle" ]; then

        if [ $SHELL = "/bin/ksh" ]; then

                ulimit -p 16384

                ulimit -n 65536

        else

                ulimit -u 16384 -n 65536

        fi

fi 

 

執行儲存。oracle使用者指令碼主要影響oracle的安裝,這個要求就是oracle_home必須是oracle_base的子目錄,和grid使用者指令碼完全相反。

這兩個指令碼所有內容都相當重要,在PATH引數這塊,我特意增加了/usr/sbin和/sbin兩個值,這是因為很多執行程式在都這兩個目錄中,而RHEL5.4預設沒有將這兩個目錄放到PATH中。

13、建立使用者登入指令碼中指定的幾個目錄,及安裝程式放置目錄。複製安裝程式,並且解壓縮。

執行:

su

cd /

mkdir /u01

mkdir /u02

mkdir /u03

chown -R grid.oinstall /u01

chown -R grid.oinstall /u02

chown -R oracle.oinstall /u03

mkdir /softgrid

mkdir /softoracle

mkdir /media/dvd

mount /dev/hdc /media/dvd

cd /media/dvd

cp linux_11gR2_grid.zip /softgrid

cp linux_11gR2_database_1of2.zip /softoracle

cp /softoracle

cd /softgrid

unzip linux_11gR2_grid.zip

cd /softoracle

unzip linux_11gR2_database_1of2.zip

unzip linux_11gR2_database_2of2.zip

chown -R grid.oinstall /softgrid

chown -R oracle.oinstall /softoracle

14、修改核心引數,開啟/etc/sysctl.conf,新增如下:

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default=262144

net.core.rmem_max=4194304

net.core.wmem_default=262144

net.core.wmem_max=1048576

fs.aio-max-nr=1048576

儲存,然後執行sysctl -p,應用剛剛給出的核心引數。

15、修改grid和oracle使用者的資源限制,開啟/etc/srcurity/limits.conf,新增如下:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

執行儲存。

16、增加使用者資源限制映像,開啟/etc/pam.d/login,新增如下:

session  required  pam_limits.so

執行儲存。

17、安裝需要的軟體包:

rpm -Uvh setarch-2.0-1.1.i386.rpm

rpm -Uvh make-3.81-3.el5.i386.rpm

rpm -Uvh glibc-2.5-42.i386.rpm

rpm -Uvh libaio-0.3.106-3.2.i386.rpm

rpm -Uvh compat-libstdc++-33-3.2.3-61.i386.rpm

rpm -Uvh kernel-headers-2.6.18-164.el5.i386.rpm

rpm -Uvh glibc-headers-2.5-42.i386.rpm

rpm -Uvh glibc-devel-2.5-42.i386.rpm

rpm -Uvh compat-gcc-34-3.4.6-4.i386.rpm

rpm -Uvh compat-gcc-34-c++-3.4.6-4.i386.rpm

rpm -Uvh libgomp-4.4.0-6.el5.i386.rpm

rpm -Uvh gcc-4.1.2-46.el5.i386.rpm

rpm -Uvh libXp-1.0.0-8.1.el5.i386.rpm

rpm -Uvh openmotif-2.3.1-2.el5.i386.rpm

rpm -Uvh compat-db-4.2.52-5.1.i386.rpm

rpm -Uvh libaio-devel-0.3.106-3.2.i386.rpm

rpm -Uvh sysstat-7.0.2-3.el5.i386.rpm

rpm -Uvh unixODBC-2.2.11-7.1.i386.rpm

rpm -Uvh unixODBC-devel-2.2.11-7.1.i386.rpm

18、關閉NTP時間同步服務,關閉時間:

service ntpd stop

chkconfig ntpd off

rm /etc/ntp.conf

19、配置grid使用者和oracle使用者的SSH連線,在安裝過程中,其實可以用安裝程式自動配置,我這裡是為了記錄的完整性,處理過程如下:

用grid使用者登入:

RAC1和RAC2上分別執行:ssh-keygen -t rsa

RAC1上執行:cd /home/oracle/.ssh

             ssh rac1 cat /home/grid/.ssh/id_rsa.pub>>authorized_keys

             ssh rac2 cat /home/grid/.ssh/id_rsa.pub>>authorized_keys

             scp authorized_keys rac2:/home/grid/.ssh/authorized_keys

RAC1執行:ssh rac2 date

RAC2執行:ssh rac1 date

用oracle使用者登入:

RAC1和RAC2上分別執行:ssh-keygen -t rsa

RAC1上執行:cd /home/oracle/.ssh

             ssh rac1 cat /home/oracle/.ssh/id_rsa.pub>>authorized_keys

             ssh rac2 cat /home/oracle/.ssh/id_rsa.pub>>authorized_keys

             scp authorized_keys rac2:/home/oracle/.ssh/authorized_keys

RAC1執行:ssh rac2 date

RAC2執行:ssh rac1 date

執行結果,如果不出要求輸入密碼的提示,那麼配置就完成了。

在網上其他資料裡面,有些資料說得是.ssh這個目錄需要手動建立,並且許可權還需要修改,其實不需要,ssh-keygen會主動建立目錄的,而且建立後的檔案許可權,很大的可能是不需要修改,但還是需要注意下。

id_rsa和id_rsa.pub的許可權分別是600和644。

20、安裝iscsi客戶端:

rpm -Uvh iscsi-initiator-utils-6.2.0.871-0.10.el5.i386.rpm

連線iscsi target,並登入:

iscsiadm -m discovery -t sendtargets -p 10.0.0.140:3260

iscsiadm -m node -l

對iscsi磁碟分割槽

fdisk /dev/sdb

分成3個分割槽。

四、grid安裝

1、安裝ASMLIB:

將oracleasm的軟體包複製到RHEL5.4內,並進行安裝:

rpm -ivh oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm

rpm -ivh oracleasmlib-2.0.4-1.el5.i386.rpm

rpm -ivh oracleasm-support-2.1.7-1.el5.i386.rpm

也可以這樣執行:

rpm -ivh oracleasm*

注意,oracleasm的包與系統核心版本有關,下載的話,注意先獲取核心版本,再下載相應版本的oracleasm軟體包。

2、配置oracleasm:

oracleasm有幾個選項,可以看下相應的作用。

配置過程如下:

oracleasm configure      #顯示目前的配置情況。

oracleasm configure -i    #進去oracleasm配置。

進入oracleasm配置後,輸入的內容依次是:

grid

asmadmin

y

y

配置完成。(這步配置,要注意哈,預設選項是不對的,需要修改,務必看清楚前面的英文提示後,再輸入值)。

啟動oracleasm:oracleasm init

建立asm磁碟:

oracleasm createdisk VOL1 /dev/sdb1  

oracleasm createdisk VOL2 /dev/sdb2

oracleasm createdisk VOL3 /dev/sdb3

#注意,提示的裝置,好像必須是分割槽,直接的磁碟裝置不行,必須先分割槽。如果出現問題,1是可能裝置不存在,重新檢查裝置,確保裝置存在;2是有可能相應的裝置已經被建立成ASM磁碟,那麼強制重新命名裝置:oracleasm renamedisk -f /dev/sdb1 VOL1。

列出所有ASM磁碟:oracleasm listdisks   #所有磁碟的別名全部列出,配置成功。

3、用grid使用者登入,啟動grid安裝程式:

export DISPLAY=10.0.0.141:0.0

cd /softgrid/grid

./runInstaller

4、這個具體的安裝過程,由於全是圖形介面,這裡不方便記錄,基本上沒有很多需要注意的地方。

在SCAN引數介面上,不需要給SCAN確定IP值,這是因為在/etc/hosts中,已經新增好了。

typical和advanced選項間,這兩個選項其實沒有太大的區別,但是我覺得還是advanced選項要好一些。

5、在grid安裝過程中,要注意:

(1)orainst.sh和root.sh指令碼的執行過程,這是一個序列操作,也就是說要按如下順序操作:

rac1    orainst.sh

rac2    orainst.sh

rac1     root.sh

rac2     root.sh

這樣的順序進行操作,而且必須是上個操作完成之後,下個操作才能進行,不能併發進行。

(2)執行完指令碼後,緊接著就是network config assistant,這個步驟一般來說是肯定會失敗的,具體原因還不清楚,不過這裡可以忽略過去,完成安裝後才進行操作。

(3)grid安裝的最後一步,也會出現錯誤,這裡出現的錯誤一般情況下,是由於/etc/hosts中新增了scan的ip值,才導致這個錯誤的出現,可以忽略。

6、grid完成後,由於中間有些錯誤,需要進行下操作:

執行netca

新增listener監聽程式,這裡注意監聽器的名字必須是預設的“LISTENER”,否則後面oracle安裝過程要出錯。

7、到這裡grid安裝完成,已經可以重啟了。在虛擬機器中,有點很喜劇的細節,要考慮到,在相當多的時候,機器重啟後,grid是沒有啟動成功的,crs_stat和crsctl stat res -t命令都會提示沒有連線到crs 守護程式,不要慌張,這個不是啟動失敗,而是由於虛擬機器資源太少導致叢集啟動相當緩慢,保守估計在系統啟動完成後,還需要3分鐘到5分鐘左右時間來啟動各項叢集資源。叢集資料裡面gsd和o4jd是沒有啟動的,這個正常,預設就是不啟動的,沒有影響。

五、oracle安裝:

1、用oracle使用者登入:

export DISPLAY=10.0.0.141:0.0

cd /softoracle/database

./runInstaller

2、具體安裝過程沒有太大問題,主要是對於控制檔案和聯機重做日誌的位置,這個好像無法手動控制,我在修改了這兩個位置後,就提示不正確,無法安裝。我取消了這兩個手動指定的位置後,就安裝正常了,

3、最後一次安裝沒有出現memory_target is not supported in this system,沒有出現這個錯誤,如果有個錯誤,說明臨時空間不夠,解決辦法:

修改/etc/fstab:

tmpfs這行中得default修改成default,size=4G

然後執行:

mount -o remount /dev/shm

4、安裝就基本完成了。

六、最後總結:

1、不知道為什麼,我建立完成後,在重啟機器後,叢集啟動沒有問題,但是資料庫沒有自動啟動。

啟動辦法:srvctl start database -d orcl

2、RAC叢集安裝過程,最關鍵還是前期的準備工作,準備工作完成的好,安裝過程中基本沒有問題,或者只有一些小問題。

3、後面還要進一步,記錄關於各種檢測調整命令。

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

相關文章