VMware_workstation_6[1].5_+_RHEL5.3_+_Oracle_10gR2_RAC+OCFS2+ASM

jinqibingl發表於2012-10-04

VMware_workstation_6[1].5_+_RHEL5.3_+_Oracle_10gR2_RAC+OCFS2+ASM  

     Oracle RAC是一個DBA的分水嶺,如果一個oracle DBA不會實施RAC,將會被劃入初級的DBA,如果能夠熟練地安裝、配置、維護RAC的DBA,可以有效的增加DBA的分量,可以進入中高階DBA的行列,所以,從開始接觸linux和oracle開始,我就希望能夠熟練地安裝配置oracle RAC,還有DG等一切oracle的高階技術,現在所有的考試都結束了,有時間啦,今天就慢慢的把oracle的RAC配置過程慢慢的寫下來。

    開始學習時,參考了很多資料,基本上都是網上搜來的,而且好多已經轉到了我的部落格,在此一併謝過!

    環境是:VMware workstation 6.5+RHEL 5.3+Oracle 10gR2+OCFS2+ASM

一、搭建環境 

兩個節點的情況分別為:

Hostame: rac1.yangfei.com

eth0: 192.168.1.110         bridged

eth1: 10.0.0.138              Host-only

vip:  192.168.1.120 

Hostname: rac1.yangfei.com

eth0: 192.168.162.139         bridged 

eth1: 10.0.0.139              Host-only

vip:  192.168.1.121

(一)第一大階段 

1.用vmware建立一個虛擬機器,安裝RHEL5

有幾點注意一下:

(1)建議虛擬機器硬碟大小 >= 10G

(2)分配的記憶體1G

(3)需要兩塊網路卡,一塊選擇bridged模式,一塊選擇Host-only模式。 (注:網上很多資料說public的那塊網路卡使用NAT模式,但我發現,只有使用bridged時,IP地址才真實環境的IP地址在同一網段。)

網上有人說安裝的時候不要選擇帶xen的核心什麼的,我想只是建議吧,至少我做的實驗安裝了xen的核心也是成功的。安裝時輸入的RHEL5的序列號:

Red Hat Enterprise Linux Virtualization Platform.

49af89414d147589

2.配置RHEL5 

假設剛剛裝完了了一個RHEL5系統,現在我們來做一些oracle RAC安裝前的配置。 

(1)檢查oracle安裝所依賴的包是否裝全

setarch-2*

 make-3*

 glibc-2*

 libaio-0*

 compat-libstdc++-33-3*

 compat-gcc-34-3*

 compat-gcc-34-c++-3*

 gcc-4*

 libXp-1*

 openmotif22-*

 compat-db-4*

為了方便包的安裝,我會把RHEL光碟上所有的rpm包複製到XP系統裡的RHEL5_RPM目錄下,然後在RHEL下建立一個指令碼,需要時我就直接把XP的RHEL5_RPM目錄mount到RHEL下,方便使用,具體指令碼內容是:

mount -o username=administrator,password=yangfei //192.168.1.100/RHEL5_RPM /mnt/win_shared

username是登陸xp系統的使用者名稱,passwork是登陸xp系統的密碼(必須要有密碼才可以),192.168.1.100是xp主機的ip地址,當然RHEL5_RPM必須要共享。

進入/mnt/win_shared,然後使用下面的命令重新安裝所有需要的包:

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

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

rpm -Uvh --replacepkgs glibc-2.5-34.i686.rpm

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

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

rpm -Uvh --replacepkgs kernel-headers-2.6.18-128.el5.i386.rpm

rpm -Uvh --replacepkgs glibc-headers-2.5-34.i386.rpm

rpm -Uvh --replacepkgs glibc-devel-2.5-34.i386.rpm

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

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

rpm -Uvh --replacepkgs libgomp-4.3.2-7.el5.i386.rpm

rpm -Uvh --replacepkgs gcc-4.1.2-44.el5.i386.rpm

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

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

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

 也可以使用下面的命令升級安裝所有需要的包,如果包已經安裝,而且版本相同就略過:

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

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

rpm -Uvh   glibc-2.5-34.i686.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-128.el5.i386.rpm

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

rpm -Uvh   glibc-devel-2.5-34.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.3.2-7.el5.i386.rpm

rpm -Uvh   gcc-4.1.2-44.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

(2)配置主機名及網路設定

#vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=rac1.yangfei.com

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:0C:29:8A:CF:56

ONBOOT=yes

IPADDR=192.168.1.110

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

#vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=static

HWADDR=00:0C:29:8A:CF:60

ONBOOT=yes

IPADDR=10.0.0.138

NETMASK=255.0.0.0

#vim /etc/hosts # Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

#public

192.168.1.110 rac1.yangfei.com rac1

192.168.1.111 rac2.yangfei.com rac2

#private

10.0.0.138 rac1-priv.yangfei.com rac1-priv

10.0.0.139 rac2-priv.yangfei.com rac2-priv

#vitual

192.168.1.120 rac1-vip.yangfei.com rac1-vip

192.168.1.121 rac2-vip.yangfei.com rac2-vip

(3)新增oracle所需的賬戶,組

#groupadd oinstall

#groupadd dba

#groupadd oper

#useradd -g oinstall -G dba oracle

#passwd oracle

#mkdir -p /u01/oracle                              #用於安裝oracle用的

#chown -R oracle:oinstall /u01/oracle

#chmod -R 775 /u01/oracle

(4)修改核心引數

#vim /etc/sysctl.conf                  //新增如下內容或修改相關引數

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=262144

net.core.rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144

使更改立即生效,使用如下命令:

#sysctl -p

(5)設定oracle使用者的shell limit

#vi /etc/security/limits.conf             //新增如下內容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

接下來更改/etc/pam.d/login檔案,新增下面的內容,使shell limit生效:

#vim /etc/pam.d/login           

session           required                pam_limits.so

(6)修改/etc/redhat-release檔案

    因為Oracle 10g官方只支援到RHEL4為止,所以需要更改版本說明,編輯/etc/redhat-release檔案,刪除Red Hat Enterprise Linux Server release 5 (Tikanga),改為redhat-4,(其實oracle 10gR2已經可以支援RHEL5,但還是要修改成redhat-4,因為oracle的cluster只支援RHEL4.)

(7)更改oracle使用者環境變數

[oracle@rac1 ~]$vim .bash_profile          //以oracle登陸,新增如下內容

export ORACLE_BASE=/u01/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

export PATH=$ORACLE_HOME/bin:$PATH

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  

(8)安裝OCFS2

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

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

[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 * 安裝就行了。

好了,到這裡第一階段的配置工作完成,關閉虛擬機器。

(二)第二大階段

安裝Oracle RAC,肯定需要共享儲存裝置了!! 而且我們現在只裝了一個RHEL5,還缺少一個RHEL5

呢,別急,下面來搞定這些。

1.建立共享儲存

到VMware server 1.0.6的安裝目錄下,你會發現一個vmware-vdiskmanager.exe檔案。

好了,我們就用它來建立一個共享磁碟。

  C:\Program Files\VMware\VMware Server>vmware-vdiskmanager.exe -c -s 8Gb -a

lsilogic -t 3 "E:\hrwang-vmware-ocfs\ocfs.vmdk"

Using log file C:\DOCUME~1\hrwang\LOCALS~1\Temp\vmware-hrwang\vdiskmanager.log

Creating a split preallocated disk 'E:\hrwang-vmware-ocfs\ocfs.vmdk'

  Create: 100% done.

Virtual disk creation successful.

 

 

2.更改RHEL5虛擬機器安裝目錄下以".vmx"為字尾的檔案

我的RHEL5安裝在E:\hrwang-vmware-RHEL5-oracle1\下,其下有一個名為“Other Linux 2.6.x

kernle.vmx"的檔案,就是它了,新增如下資訊:

  scsi1.present="TRUE"

scsi1.virtualDev="lsilogic"

scsi1.sharedBus="virtual"

scsi1:1.present="TRUE"

scsi1:1.mode="independent-persistent"

scsi1:1.filename="E:\hrwang-vmware-ocfs\ocfs.vmdk"

scsi1:1.deviceType="disk"

disk.locking="false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

 

 

3.建立第二個RHEL5主機

因為我們用的是VMware,所以直接把hrwang-vmware-RHEL5-oracle1複製一份,命名為hrwang-vmware-RHEL5-oracle2。然後用vmware開啟,啟動。第二個RHEL5就大體搭完了,

簡單吧,:)

(1)當然,主機名和網路設定還是要更改的。

#vi /etc/sysconfig/network

HOSTNAME=oracle2.hrwang.com                 #更改hostname

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

HWADDR=00:0c:29:2f:bb:b3

IPADDR=192.168.162.139

NETMASK=255.255.255.0

GATEWAY=192.168.162.2

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=static

HWADDR=00:0c:29:2f:bb:bd

IPADDR=10.0.0.139

NETMASK=255.0.0.0

 

(2)更改oracle使用者目錄下的.bash_profile

切換到oracle使用者, $vi /home/oracle/.bash_profile

把ORACLE_SID = orcl1     改為 ORACLE_SID = orcl2

好了,重啟使設定生效吧,第二個RHEL5系統也配置完成了。

(三)第三大階段

好了,到目前為止,我們需要把配置好的兩個系統都啟動起來了。先用ping測試一下連通性。沒問題吧!

1.配置oracle使用者的同等性(需使用oracle使用者登陸)

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

[oracle@oracle2 ~]$ mkdir .ssh

[oracle@oracle2 ~]$ chmod 700 .ssh

[oracle@oracle2 ~]$ 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 oracle@oracle2.hrwang.com

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

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

The authenticity of host 'oracle1 (192.168.162.138)' 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@oracle1's password:

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

oracle@oracle2‘s password:

 [oracle@oracle1 .ssh]$scp authorized_keys oracle2:/home/oracle/.ssh/

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

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

$ssh oracle1 date

$ssh oracle2 date

$ssh oracle1.hrwang.com date

$ssh oracle2.hrwang.com date

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

$/usr/bin/ssh-add

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

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

2.透過OCFS2配置共享磁碟(root許可權執行)

下面的操作我以root許可權在oracle1上執行(你如果喜歡在另外節點上執行也沒問題,因為是共享的,在一個節點上對其操作就ok。)

(1)使用#fdisk -l 發現共享磁碟裝置名為/dev/sdb。好了,先建立分割槽吧。

  [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.

(2)#[root@oracle1 ~]ocfs2console            

選擇"Task"選單下的format,更改volume label為ocfs,點選OK,格式化。

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

接下來,點選"Cluster"選單下的Node Configuration,把兩個節點都新增上,名字就是Hostname,即oracle1.hrwang.com  oracle2.hrwang.com。 IP部分添私網IP,即10.0.0.138  10.0.0.139。點選Apply儲存。參考下圖:

Permission

新增完節點之後,再看看cluster.conf檔案中的內容是什麼。如果如下圖就對了:

node:

        ip_port = 7777

        ip_address = 10.0.0.138

        number = 0

name =

oracle1.hrwang.com

        cluster = ocfs

node:

        ip_port = 7777

        ip_address = 10.0.0.139

        number = 1

name = oracle2.hrwang.com

        cluster = ocfs

cluster:

        node_count = 2

name = ocfs

最後點選"Cluster"選單下的"Progagate Cluster Configuration",來同步oracle1上的配置到oracle2上去,如下圖:

(3)啟動和配置ocfs2服務(root許可權)

在兩個節點上分別執行如下操作:

[root@oracle2 ocfs2]# /etc/init.d/o2cb enable

Writing O2CB configuration: OK

Loading module "configfs": OK

Mounting configfs filesystem at /sys/kernel/config: OK

Loading module "ocfs2_nodemanager": OK

Loading module "ocfs2_dlm": OK

Loading module "ocfs2_dlmfs": OK

Creating directory '/dlm': OK

Mounting ocfs2_dlmfs filesystem at /dlm: OK

Starting O2CB cluster ocfs2: OK

[root@oracle2 ocfs2]# /etc/init.d/o2cb configure

Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.

The following questions will determine whether the driver is loaded on

boot. The current values will be shown in brackets ('[]'). Hitting

without typing an answer will keep that current value. Ctrl-C

will abort.

Load O2CB driver on boot (y/n) [y]:

Cluster to start on boot (Enter "none" to clear) [ocfs2]:

Specify heartbeat dead threshold (>=7) [31]:

Specify network idle timeout in ms (>=5000) [30000]:

Specify network keepalive delay in ms (>=1000) [2000]:

Specify network reconnect delay in ms (>=2000) [2000]:

Writing O2CB configuration: OK

O2CB cluster ocfs2 already online

(4)建立掛載點(root許可權)

在兩個節點上分別執行如下操作:

#mkdir /oracle_ocfs

#vi /etc/fstab                          '新增下面一行

/dev/sdb1    /oracle_ocfs   ocfs2    _netdev,datavolume,nointr  0 0

其中datavolume選項確保Oracle程式在開啟檔案時使用o_direct標記,nointr選項確保在這個裝置上的讀寫不會被一些訊號中斷,_netdev選項對於mount ocfs2裝置是必須的,這個選項說明裝置需要在網路啟動的時候掛載,在網路關閉之後取消掛載(datavolume 和 nointr選項只在儲存資料檔案等裝置上需要)。

重啟兩臺機器,測試一下看是否都可以掛載上,沒問題的話繼續。

重啟之後共享分割槽應該都正常掛載,我們在任意一節點上建立兩個目錄,並分配許可權給oracle

[root@oracle1 ocfs2]# mkdir /oracle_ocfs/shared_config

[root@oracle1 ocfs2]# mkdir /oracle_ocfs/data

[root@oracle1 /]# chown -R oracle:oinstall /oracle_ocfs

[root@oracle1 /]# chmod -R 755 /oracle_ocfs

OK,配置部分到這裡就全部搞定了,下面我們來安裝吧~~~

在oracle1上安裝(這個沒有限制,你可以任意選擇其中的一臺)

使用oracle使用者登陸oracle1.hrwang.com,切換clutserware目錄,這是解壓好的10201_clusterware_linux32.zip。請參考下面的截圖,:)

1. [oracle@oracle1 clusterware]$ ./runInstaller      

2.

3.這一步時可以透過"Product Languages”選擇簡體中文。我打算把CRS安裝在本機磁碟而不是共享磁碟上,所以安裝目錄選擇了/oracle/product/10.2.0/crs

5. 還記得我們更改過的/etc/hosts檔案吧?對了!就是把那裡面的兩個節點對應的都新增進來

6. 我們設定eth0為Public,eth1為Private

7. 記得我們在共享磁碟下建立過兩個資料夾嗎?呵呵,其中的shared_config目錄就是用來放置ocr檔案和voting_disk的

8. 開始安裝

9. 提示以root許可權執行指令碼

執行指令碼的順序如下:

[root@oracle1]/oracle/oraInventory/orainstRoot.sh

[root@oracle2]/oracle/oraInventory/orainstRoot.sh

[root@oracle1]/oracle/product/10.2.0/crs/root.sh

[root@oracle2]/oracle/product/10.2.0/crs/root.sh

一下8行為插錄:

1 , CRS 的安裝

1) 在安裝最後,兩個節點執行完相關指令碼後,先不要點 OK , 先在 第二個節點以 root 使用者 vipca ; /u01/crs1020/bin/vipca . 配置完成後,再去第一個節點,點 OK 。

2 ,刪除 CRS 安裝

1) /etc/init.d 中先刪除最後三行 ( evmd , ocssd , crsd )

2) 重啟兩主機

3) 刪除 /etc/oracle

4) 刪除安裝目錄中所有的檔案

在oracle2上執行root.sh時,會提示一個錯誤,關於vipca無法執行的。於是乎,我手動執行/oracle/produc, t/10.2.0/crs/bin/vipca,結果又告訴我找不到libpthread.so.0。暈~~

你也應該遇到吧!! 別急這是個bug,我們這樣來解決:

[root@oracle2 ~]vi /oracle/product/10.2.0/crs/bin/vipca

JREDIR=/oracle/product/10.2.0/crs/jdk/jre把最後/的去掉,改為:

JREDIR=/oracle/product/10.2.0/crs/jdk/jre

LD_ASSUME_KERNEL=2.4.19                      

export LD_ASSUME_KERNEL                       fi                           #找到這部分,改為:

LD_ASSUME_KERNEL=2.4.19                      

export LD_ASSUME_KERNEL                       fi                      

unset LD_ASSUME_KERNEL

現在再執行vipca試試,什麼?又出現個錯誤?

是不是類似下面的錯誤:

Error 0(Native: listNetInterfaces:[3])

   [Error 0(Native: listNetInterfaces:[3])]

阿彌佗佛,壓住火氣,這樣來解決:

[root@oracle2 bin]# ./oifcfg iflist

eth1 10.0.0.0

eth0 192.168.162.0

[root@oracle2 bin]# ./oifcfg setif -global eth0/192.168.162.0:public

[root@oracle2 bin]# ./oifcfg setif -global eth1/10.0.0.0:cluster_interconnect

[root@oracle2 bin]# ./oifcfg getif

eth0 192.168.162.0 global public

eth1 10.0.0.0 global cluster_interconnect

你再試試vipca,怎麼樣出來了吧!參考下圖配置vipca

(1)

(2)一般填入浮動IP主機名,IP地址就會自動填入

(3) 

  好了,在oracle2上配置完vip了。 

10. 回到oracle1的安裝介面上來,點選OK,會再一次檢查,成功了就安裝結束了 

11. Ok,我們在oracle1上的crs已經安裝完成了,這時你登陸oracle2看看,是不是/oracle/product/10.2.0/crs也已經存在了呢,:) 

三、安裝Oracle資料庫軟體 

我們還是以oracle使用者登陸oracle1.hrwang.com, 到database目錄,這是解壓好的10201_database_linux32.zip。

可以參考http://blog.chinaunix.net/u/22677/showart_1205499.html來安裝。 

這裡有兩個地方需要注意,一是在選擇安裝資料庫的節點時,把兩臺機器都選上,如下圖: 

二是安裝時我們選擇只安裝資料庫軟體,稍後我們再透過dbca建立資料庫,如下圖:

oracle1上的軟體安裝完畢,你登陸到oracle2上看看安裝目錄,也有了東東,呵呵!!

到此我們的oracle資料庫軟體也安裝完畢了。

四、建立資料庫 

我還是以oracle使用者在oracle1.hrwang.com上執行建立資料庫的操作,請看下面的圖,比較簡單:

[oracle@oracle1 ~]$dbca            

好了,到此共享資料庫已經建立好了。不過大家選字符集的時候可別象我那麼選,會有亂碼的,呵呵! 

五、管理ORACLE RAC 

建立完共享資料庫,我們透過srvctl來看看狀態(在哪個節點上執行? 隨意!!)

[oracle@oracle1 admin]$ srvctl --help

/oracle/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory 

怎麼回事?????   別急,還是那個bug問題,我們更改兩個節點上的/oracle/product/10.2.0/db_1/bin/srvctl檔案 

找到下面的部分

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

改為

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

unset LD_ASSUME_KERNEL

1.檢視資料庫狀態

[oracle@oracle2 admin]$ srvctl status database -d orcl

Instance orcl1 is running on node oracle1

Instance orcl2 is running on node oracle2

2.檢視例項狀態

[oracle@oracle1 bin]$ srvctl status instance -d orcl -i orcl1,orcl2

Instance orcl1 is running on node oracle1

Instance orcl2 is running on node oracle2

3.檢視節點軟體狀態

[oracle@oracle1 bin]$ srvctl status nodeapps -n oracle1

VIP is running on node: oracle1

GSD is running on node: oracle1

Listener is running on node: oracle1

ONS daemon is running on node: oracle1

[oracle@oracle1 bin]$ srvctl status nodeapps -n oracle2

VIP is running on node: oracle2

GSD is running on node: oracle2

Listener is running on node: oracle2

ONS daemon is running on node: oracle2

4.關閉和啟動oracle RAC的步驟

[oracle@oracle2 admin]$ emctl stop dbconsole

[oracle@oracle2 admin]$ srvctl stop instance -d orcl -i orcl2

[oracle@oracle2 admin]$ srvctl stop nodeapps -n oracle2

[oracle@oracle2 admin]$ srvctl start nodeapps -n oracle2

[oracle@oracle2 admin]$ srvctl start instance -d orcl -i orcl2

[oracle@oracle2 admin]$ emctl start dbconsole

雜:細心的朋友可能會發現,有的截圖是vmware workstation,後來的就是vmware server,這是因為我一開始是使用workstation來做實驗的,後來遷移到了server上了。不打緊了,建議你直接使用vmware server。

配置開機自動啟動oracle

首先修改$ORACLE_HOME/bin/dbstart,使其符合實際生產情況,手動執行dbstart可以執行所有需要的一切:監聽、asm例項、資料庫例項,然後複製dbstart到/etc/rc.d/init.d下,再修改他的屬性:chmod u+s dbstart chmod g+s dbstart,最後建立建立啟動連結:cp -s /etc/rc.d/init.d/dbstart /etc/rc.d/rc5.d/S99dbstart即可。

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