RAW+ASM 的RAC 安裝文檔

實驗平臺:Oracle 10gR2 RAC + RHEL 4.0 +VMWare GSX 3.2.0  css

 

安裝步驟:html

1.安裝前準備及OS安裝配置 java

2.安裝Oracle 10gR2 clusterware node

3.安裝Oracle 10gR2 database linux

4.配置netca c++

5.建立ASM 實例sql

6.配置dbca建立數據庫 shell

7.檢查RAC狀態數據庫

8.RAC 卸載windows

 

 

一. 安裝前準備及OS安裝配置 

Host OS 準備 

 

1. 從Oracle OTN下載 oracle 10gR2 for x86 linux,下2個zip, 一個是clusterware zip,一個是database zip, comp CD 可選.

2. 準備的RHEL 4(x86)

3. 搞清楚你的linux的kernel version 

4. 從Oracle OTN下載 ASMLib, ASMLib support , 記住這些都是針對你的kernel的,不要下錯 

http://www.oracle.com/technology/tech/linux/asmlib/index.html

該頁面有下載地址,注意選擇CPU 類型。 裏面有asmlib 和 support。 在同一個頁面。

 

5. VMWare GSX 3.2.0 for linux 

   

虛擬機 Workstation,GSX Server 和ESX之間的區別

http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5316767.aspx

 

 

OS安裝 

 

1. 在vmware console 中建立redhat 4 實例,取名raw1. 內存700M, 硬盤12GB。

2. 建立好後vmware OS以後,加上一塊NIC網卡

3. 在gsx裏用vdiskmanager 建立Share Disk。

 

raw for OCR and voting disk, ASM for Oracle DATA.

 

Dos 下進入vmware 的安裝目錄,運行一下命令

 

vmware-vdiskmanager 建立 pre-allocated而且是lsi contoller的硬盤 300m一個 for raw for OCR + CRS voting 

vmware-vdiskmanager.exe -c -s 300Mb -a lsilogic -t 2 E:/VM/rawShare/raw_ocr_crs.vmdk

 

vmware-vdiskmanager 建立 pre-allocated而且是lsi contoller的硬盤 for Oracle data & flash recovery area

vmware-vdiskmanager.exe -c -s 4096Mb -a lsilogic -t 2 E:/VM/rawShare/asm_data.vmdk

vmware-vdiskmanager.exe -c -s 2048Mb -a lsilogic -t 2 E:/VM/rawShare/asm_recovery.vmdk

 

作好後,share目錄就會產生你剛纔建立的這些vmdk了. 

 

4. 到 raw1的目錄,打開raw1.vmx , 在最後空白處添加這幾段內容(必定要最後)

 

scsi1.present = "TRUE" 

scsi1.virtualDev = "lsilogic" 

scsi1.sharedBus = "virtual" 

 

這段是打開 scsi1上的使用,而且設置成virtual, controller設置成lsilogic 

 

而後依次添加 

 

scsi1:1.present = "TRUE" 

scsi1:1.mode = "independent-persistent" 

scsi1:1.filename = "E:/VM/rawShare/raw_ocr_crs.vmdk" 

scsi1:1.deviceType = "plainDisk" 

 

scsi1:2.present = "TRUE" 

scsi1:2.mode = "independent-persistent" 

scsi1:2.filename = "E:/VM/rawShare/asm_data.vmdk" 

scsi1:2.deviceType = "plainDisk" 

 

scsi1:3.present = "TRUE" 

scsi1:3.mode = "independent-persistent" 

scsi1:3.filename = "E:/VM/rawShare/asm_recovery.vmdk" 

scsi1:3.deviceType = "plainDisk" 

 

 

 

最後添加這個 

disk.locking = "false" 

diskLib.dataCacheMaxSize = "0" 

diskLib.dataCacheMaxReadAheadSize = "0" 

diskLib.DataCacheMinReadAheadSize = "0" 

diskLib.dataCachePageSize = "4096" 

diskLib.maxUnsyncedWrites = "0"

 

 

這段是對vmware使用共享硬盤的方式進行定義

 

保存退出以後,從新打開你的vmware-console,你就能夠看到2個vmware guest OS的配置中,都有這些硬盤出現了. 

 

 

5. 而後就安裝你的vmware  OS, 安裝的時候,爲了方便,把包所有裝上,免得之後麻煩。

 

將raw1結點複製到raw2, 在虛擬機中用新ID打開,修改IP地址,hostname,節點2建立完成。 採用複製就省的安裝2次系統,比較方便。

 

6.  配置你的2個網卡的固定IP,hostname, DNS, gateway, time server (NTP)  

/etc/sysconfig/network-script/ifcfg-eth0 

/etc/sysconfig/network-script/ifcfg-eth1 

 

修改機器名,IP和網關 -- 默認網關必須設置,否則 vipca 報錯

 

[root@raw1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=10.85.10.119

NETMASK=255.255.255.0

GATEWAY=10.85.10.253

 

修改主機名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=raw1

修改完以後重啓生效:
/etc/rc.d/init.d/network restart 從新啓動

查看DNS:
cat /etc/resolv.conf 

 

同步時間:

1. 在raw1上用root用戶執行

#chkconfig time on     #在系統引導的時候自動啓動

 

2. 在raw2 上添加任務,每一分鐘和raw1進行一次時間同步。

[root@raw2 ~]# crontab -l

*/1 * * * * rdate -s 10.85.10.119

 

rac 對節點間時間較敏感,若是不一樣步在安裝clusterware 時後會報錯,並且在安裝vipca 的時候也會報錯。 具體時間同步參考個人blog:

Linux 時間同步配置

http://blog.csdn.net/tianlesoftware/archive/2010/02/21/5315587.aspx

 

linux 下修改日期和時間

http://blog.csdn.net/tianlesoftware/archive/2009/11/13/4808096.aspx

 

 

7. 安裝結束後,進入 OS, 修改解析文件: /etc/hosts 

 

以下 

注:機器名和public名要同樣

 

127.0.0.1 localhost (必需要這樣) 

 

10.85.10.119 raw1

10.85.10.121 raw2

 

192.168.1.119 raw1-priv

192.168.1.121 raw2-priv

 

10.85.10.122 raw1-vip

10.85.10.123 raw2-vip

 

兩個node都要同樣. 

 

修改後要確認這個hosts 都正確 (ping) 

 

 

8. 創建用戶等效性

  創建等效用戶以後,2個結點直接Oracle 用戶互相訪問就不在須要密碼了, 這樣就爲RAC管理提供了可能性,若是等效性沒有配好, RAC 確定是裝不起來的。 

 

group add dba oinstall 組在兩個node上, 建立oracle 用戶, 主組oinstall, 附加組是dba和disk 

 

#groupadd oinstall 

#groupadd dba 

#useradd -g oinstall -G dba oracle 

#passwd oracle 

 

創建等效用戶

 

在raw1:

[root@raw1 opt]# su - oracle

[oracle@raw1 ~]$ mkdir ~/.ssh

[oracle@raw1 ~]$ chmod 700 ~/.ssh

[oracle@raw1 ~]$ ssh-keygen -t rsa

[oracle@raw1 ~]$ ssh-keygen -t dsa

 

在raw2:

[root@raw2 opt]# su - oracle

[oracle@raw2 ~]$ mkdir ~/.ssh

[oracle@raw2 ~]$ chmod 700 ~/.ssh

[oracle@raw2 ~]$ ssh-keygen -t rsa

[oracle@raw2 ~]$ ssh-keygen -t dsa

 

切換回raw1,接着執行:

[oracle@raw1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[oracle@raw1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

提示:下列命令會提示你輸入raw2 的oracle 密碼,按照提示輸入便可,若是失敗可從新嘗試執行命

令。

Raw1 節點:

[oracle@raw1 ~]$ scp ~/.ssh/authorized_keys raw2:~/.ssh/authorized_keys

 

Raw2節點:

[oracle@raw2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[oracle@raw2 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

[oracle@raw2 ~]$ scp ~/.ssh/authorized_keys raw1:~/.ssh/authorized_keys

 

確保2個node都有相互的結點信息。

 

兩機相互執行,看看是否還須要輸入密碼

[oracle@raw1 ~]$ ssh raw1 date

[oracle@raraw1]$ ssh raw2 date

[oracle@raraw1]$ ssh raraw1riv date

[oracle@raraw1]$ ssh raw2-priv date

切換至raw2 執行

[oracle@raw2 ~]$ ssh raraw1ate

[oracle@raw2 ~]$ ssh raw2 date

[oracle@raw2 ~]$ ssh raraw1riv date

[oracle@raw2 ~]$ ssh raw2-priv date

 

9. 在每一個結點上建立目錄

[root@raw2 ~]# mkdir -p /u01/app/oracle

[root@raw2 ~]# chown -R oracle:oinstall /u01

[root@raw2 ~]# chmod -R 777 /u01

這個目錄給oracle和clusterware系統的 

 

10. 修改你的 /etc/sysctl.conf ,添加這些kernel 參數  

net.core.rmem_default=262144 

net.core.wmem_default=262144 

net.core.rmem_max=262144 

net.core.wmem_max=262144 

 

kernel.shmall = 78643200 

kernel.shmmax = 314572800 

kernel.shmmni = 4096 

kernel.sem = 250 32000 100 128 

fs.file-max = 65536 

net.ipv4.ip_local_port_range = 1024 65000 

 

 # sysctl -p 馬上生效

 

kernel.shmall爲物理內存除以pagesize;

kernel.shmmax爲物理內存的一半;

fs.file-max爲512 乘以 processes (如128個process則爲 65536);

net.ipv4.ip_local_port_range/net.core.rmem_default/net.core.rmem_max三個參數設置和官方文檔不同, 這是根據metalink 343431.1 最新要求更改的;

net.ipv4.tcp_rmem/net.ipv4.tcp_wmem兩個參數通常狀況下無需設置, 除非是在Dataguard/Streams等需不少網絡傳輸狀況下;

其它參數根據官方文檔要求設置便可.

 

具體內容參考個人blog:

 

Linux 內核參數及Oracle相關參數調整

http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4668741.aspx

 

 

11. 設置用戶資源限制

由於全部的進程都是以Oracle 身份來運行的,所以須要定義Oracle 用戶可以使用的系統資源數量。

 

vi /etc/sysconfig/limits.conf 

--使用HugePage 內存技術,添加下面2行

Oracle soft memlock 5242880

Oracle hard memlock 524280

--進程句柄數量

oracle soft nproc 2047 

oracle hard nproc 16384

-- 文件句柄

oracle soft nofile 65536 

oracle hard nofile 65536 

 

將下面一行添加到/etc/pam.d/login文件中:
session required /lib/security/pam_limits.so 

 

 

12. 配置 hangcheck-timer 模塊

Hangcheck-timer 是Linux 提供的一個內核級的IO-Fencing 模塊, 這個模塊會監控Linux 內核運行狀態, 若是長時間掛起, 這個模塊會自動重啓系統。 這個模塊在Linux 內核空間運行, 不會受系統負載的影響。 這個模塊會使用CPU的Time Stamp Counter(TSC) 寄存器,這個寄存器的值會在每一個時鐘週期自動增長, 所以使用的是硬件時間,因此精度更高。

配置這個模塊須要2個參數: hangcheck_tick 和 hangcheck_margin。 

hangcheck_tick用於定義多長時間檢查一次,缺省值是30秒。 有可能內核自己很忙, 致使這個檢查被推遲, 該模塊還容許定義一個延遲上限,就是hangcheck_margin, 它的缺省值是180秒。

Hangcheck-timer 模塊會根據hangcheck_tick 的設置,定時檢查內核。只要2次檢查的時間間隔小於 hangcheck_tick + hangchec_margin, 都會認爲內核運行正常,不然就意味着運行異常,這個模塊會自動重啓系統。

CRS自己還有一個MissCount 參數,能夠經過crsctl get css miscount 命令查看。

    當RAC結點間的心跳信息丟失時, Clusterware 必須確保在進行重構時,故障結點確實是Dead 狀態,不然結點僅是臨時負載太高致使心跳丟失,而後其餘結點開始重構,可是結點沒有重啓,這樣會損壞數據庫。 所以MissCount 必須大於 hangcheck_tick+hangcheck_margin的和。 

 

12.1 查看模塊位置:

[root@raraw1]# find /lib/modules -name "hangcheck-timer.ko"

/lib/modules/2.6.9-78.EL/kernel/drivers/char/hangcheck-timer.ko

/lib/modules/2.6.9-78.ELsmp/kernel/drivers/char/hangcheck-timer.ko

 

12.2 配置系統啓動時自動加載模塊,在/etc/rc.d/rc.local 中添加以下內容

[root@raraw1]# modprobe hangcheck-timer

[root@raraw1]# vi /etc/rc.d/rc.local

modprobe hangcheck-timer

 

12.3 配置hangcheck-timer參數, 在/etc/modprobe.conf 中添加以下內容:

[root@raraw1]# vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

 

12.4 確認模塊加載成功:

[root@raraw1]# grep Hangcheck /var/log/messages | tail -2

Feb 23 22:08:44 raraw1ernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 30 seconds, margin is 180 seconds).

 

13. 格式化分區 fdisk /dev/sdb,/dev/sdc,/dev/sdd.

在一個結點執行格式化就能夠了,由於他們是共享的。 

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

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-300, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-300, default 300): +150M

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (145-300, default 145):

Using default value 145

Last cylinder or +size or +sizeM or +sizeK (145-300, default 300): +150M

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

[root@raw1 ~]# fdisk /dev/sdc

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-522, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-522, default 522):

Using default value 522

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

[root@raw1 ~]# fdisk -l

/dev/sda1   *           1        1402    11261533+  83  Linux

/dev/sda2            1403        1566     1317330   82  Linux swap

/dev/sdb1               1         144      147440   83  Linux

/dev/sdb2             145         288      147456   83  Linux

/dev/sdc1               1         522     4192933+  83  Linux

/dev/sdd1               1         261     2096451   83  Linux

 

注: 格式化時候,在另外一個節點要重啓一下系統,否則識別不了。

 

14. 配置raw 設備

   所謂raw 設備,就是經過字符方式訪問的設備,也就是讀寫設備不須要緩衝區。 在Linux 下,對磁盤值提供了塊方式的訪問。要想經過字符方式訪問,必須配置raw 設備服務,而且Oracle 用戶對這些raw 設備必須有訪問的權限。 

在2個節點上作以下操做:

   14.1 修改裸設備服務的配置文件: /etc/sysconfig/rawdevices. 添加下面2行。

 格式:裸設備名 塊設備名

    /dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdb2

 

   14.2 設置Oracle 用戶對裸設備的訪問權限。 

編輯UDEV的權限文件:/etc/udev/permissions.d/50-udev.permissions

找到raw device部分,修改爲以下格式:

# raw devices

raw*:oracle:dba:0660

raw/*:oracle:dba:0660

 

   14.3 確認裸設備服務自啓動,2個節點都要執行

[root@raw1 /]# chkconfig --list rawdevices

rawdevices      0:off   1:off   2:off   3:on    4:on    5:on    6:off

 

14.4. 啓動raw devices 服務,確認裸設備建立成功,權限正確:

[root@raw1 /]# service rawdevices restart

Assigning devices:

           /dev/raw/raw1  -->   /dev/sdb1

/dev/raw/raw1:  bound to major 8, minor 17

           /dev/raw/raw1  -->   /dev/sdb2

/dev/raw/raw1:  bound to major 8, minor 18

done

[oracle@raw2 ~]$ cd /dev/raw

[oracle@raw2 raw]$ ls -lrt

total 0

crw-rw----  1 oracle dba 162, 1 Feb 28 03:08 raw1

crw-rw----  1 oracle dba 162, 2 Feb 28 03:08 raw2

 

 

15.  在每一個node上安裝 ASMLibs, tools, support 三個rpm文件 

 

# rpm -ivh *.rpm --nodeps --force

 

而後運行 /etc/init.d/oracleasm configure 

回答 oracle , dba, y, y 就能夠了 

 

linux 掛在windows 共享的盤

1. 啓動nfs服務:   service nfs start

2. mount -o username=share,password=share //10.85.10.80/RAC /mnt 

 

 

16. 建立ASM 磁盤

 

在一個node上: 

經過以 root 用戶身份運行如下命令來標記由 ASMLib 使用的磁盤:/etc/init.d/oracleasm createdisk DISK_NAME device_name 

(提示:DISK_NAME 應由大寫字母組成。當前版本有一個錯誤,即假如使用小寫字母,ASM 實例將沒法識別磁盤。)

 

記住,ASM在linux下面處理的對象是 partition,不是disk, 因此你那些vmdk要linux 下面partition好才能用,因此先fdisk一下在建立. 

 

/etc/init.d/oracleasm createdisk VOL1 /dev/sdc1 

/etc/init.d/oracleasm createdisk VOL2 /dev/sdd1

 

 

建立好後, 在這個node 上運行 /etc/init.d/oracleasm listdisks 查看 

 

17. 在另一個node 上 

/etc/init.d/oracleasm scandisks 

/etc/init.d/oracleasm listdisks 查看 

 

18. 在每一個node上 

Su -oracle

Cd /home/oracle

修改 oracle用戶家目錄下的 .bash_profile 

 

注意ORACLE_SID, 和後面建庫要一致。

 

# .bash_profile 

# Get the aliases and functions 

if [ -f ~/.bashrc ]; then 

. ~/.bashrc 

fi 

# User specific environment and startup programs 

PATH=$PATH:$HOME/bin

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=$ORACLE_BASE/product/crs

export ORACLE_SID=raw1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS10=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

 

第二個節點的 ORACLE_SID=raw2 其餘都同樣 

 

 

二. 安裝Oracle 10gR2 clusterware

 

1. 用Xmanager 軟件連上虛擬機以後運行clusterware 的安裝軟件, Xmanager 支持圖形界面, 因此能省不少事。 

 

2.確認你的安裝目錄是/u01/app/oracle/product/crs 

 

3. 增長相關結點信息 

raw1 raw1-priv rar1-vip 

raw2 raw2-priv raw2-vip 

 

4.指定 eth0 的類型時public 

 

5. 指定OCR 和 Voting Disk

通常而言,若是採用存儲來存放OCR和Voting Disk. 存儲自己就提供了redundancy策略,此時咱們能夠選擇External Redundancy 選項, 此時Oracle 就不在考慮軟件冗餘了。 若是沒有使用存儲設備或者存儲爲RAID0,那麼就可使用Oracle 本身提供的軟件冗餘機制 Normal Redundancy 選項,此時就會激活Mirror Location 選項. 用來指定鏡像文件位置, Oracle 的Clusterware在運行時會維護這個Mirror文件的內容同步。

 

OCR 最多隻有一份冗餘:

/dev/raw/raw1 

 

Voting Disk 最多能夠定義2份冗餘:

/dev/raw/raw2

 

6.後就開始安裝了,結束時會提示用root在每一個節點上運行orainstRoot.Sh 和 root.Sh腳本, 在第二個結點上運行root.Sh 後自動調用vipca 這個命令, 在第二個結點運行root.Sh 以前要修改一下vipca命令, 否則可能會報錯。 

 

RAC安裝時須要執行4個腳本及意義

http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5317034.aspx

 

 

注意: VIPCA 命令也是用ROOT 用戶來運行的, 只須要在一個結點運行就能夠了。

 

進入$CRS_HOME/bin/目錄, 用vi來修改vipca 和 srvctl 2個命令。 

 

問題1: vipca報錯,是redhat的bug

Running vipca(silent) for configuring nodeapps

/home/oracle/crs/oracle/product/10/crs/jdk/jre//bin/java: error while loading 

shared libraries: libpthread.so.0: cannot open shared object file: 

No such file or directory

 

解決方法:

Remember to re-edit these files on all nodes: 

<CRS_HOME>/bin/vipca 

<CRS_HOME>/bin/srvctl 

<RDBMS_HOME>/bin/srvctl 

<ASM_HOME>/bin/srvctl 

 

after applying the 10.2.0.2 or 10.2.0.3 patchsets, as these patchset will still include those settings unnecessary for OEL5 or RHEL5 or SLES10.  This issue was raised with development and is fixed in the 10.2.0.4 patchsets. 

Note that we are explicitly unsetting LD_ASSUME_KERNEL and not merely commenting out its setting to handle a case where the user has it set in their environment (login shell). 

 

$ vi vipca 

... ... 

Linux) LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:$ORACLE_HOME/srvm/lib:$LD_LIBRARY_PATH 

       export LD_LIBRARY_PATH 

        echo $LD_LIBRARY_PATH 

        echo $CLASSPATH 

       #Remove this workaround when the bug 3937317 is fixed 

       arch=`uname -m` 

       if [ "$arch" = "i686" -o "$arch" = "ia64" ] 

       then 

        # LD_ASSUME_KERNEL=2.4.19    

        # export LD_ASSUME_KERNEL  

        echo  

       fi 

       #End workaround 

 

問題2: 若是遇到這個錯誤:

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

解決方法:

在CRS_HOME下 運行 oifcfg 命令:

raw1# ./oifcfg setif -global eth0/10.85.10.119:public
# ./oifcfg setif -global eth1/192.168.1.119:cluster_interconnect
# ./oifcfg getif
eth0 10.85.10.119 global public
eth1 192.168.1.119 global cluster_interconnect

 

在raw2:

/bin # ./oifcfg setif -global eth0/10.85.10.121:public
/bin # ./oifcfg setif -global eth1/192.168.1.121:cluster_interconnect
/bin # ./oifcfg getif
eth0 10.85.10.121 global public
eth1 192.168.1.121 global cluster_interconnect

 

而後在手工運行vipca添加nodeapps resource便可。

 

 

問題3:An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xB7503E29
Function=__libc_free+0x49
Library=/lib/tls/libc.so.6

修改主機名不正確致使的。
RHEL
/etc/sysconfig/network 主機名,若是在/etc/hosts中解析不了。就報這個錯誤!

 

7. clusterware 就安裝好了. 

 

確認一下. 

$ /u01/app/oracle/product/crs/bin/olsnodes -n 

raraw1b 1 

raw2pub 2 

$ ls -l /etc/init.d/init.* 

-r-xr-xr-x 1 root root 1951 Oct 4 14:21 /etc/init.d/init.crs* 

-r-xr-xr-x 1 root root 4714 Oct 4 14:21 /etc/init.d/init.crsd* 

-r-xr-xr-x 1 root root 35394 Oct 4 14:21 /etc/init.d/init.cssd* 

-r-xr-xr-x 1 root root 3190 Oct 4 14:21 /etc/init.d/init.evmd* 

 

檢查CRS 安裝啓動狀況:用Root用戶執行:

$CRS_HOME/bin/crsctl check crs

CSS appears healthy

CRS appears healthy

EVM appears healthy

代表CRS 安裝完成,而且啓動成功

 

#./crs_stat -t -v

 

注:若是clusterware 安裝失敗,再次運行安裝程序,裏面能夠把以前的安裝刪除掉,刪除以後在進行安裝。

 

三. 安裝Oracle 10gR2 database 

 

1. 檢查Oracle 的相關包。Oracle 10g 須要以下包

binutils-2.15.92.0.2-10.EL4 

compat-db-4.1.25-9 

control-center-2.8.0-12 

gcc-3.4.3-9.EL4 

gcc-c++-3.4.3-9.EL4 

glibc-2.3.4-2 

glibc-common-2.3.4-2 

gnome-libs-1.4.1.2.90-44.1 

libstdc++-3.4.3-9.EL4 

libstdc++-devel-3.4.3-9.EL4 

make-3.80-5 

pdksh-5.2.14-30 

sysstat-5.0.5-1 

xscreensaver-4.18-5.rhel4.2 

libaio-0.3.96 

 

To see which versions of these packages are installed on your system, run the following command: 

rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common /
gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21

2. 在Xmanager 中用oracle用戶,運行database的runInstaller 

3. ORACLE安裝目錄指定到 /u01/app/oracle/product/10.2.0/db_1 

4. 把2個node選擇上 

5. 選擇 Install database Software only 

6. 會要求你用徹底的root權限運行 root.sh ,分別在2個node上一一運行

7. 安裝完畢 

 

四. netca 建立監聽 

 

注:建立數據庫過程應該遵循這個順序: 先配置監聽, 再配置ASM 實例, 最後建立數據庫實例, 這樣能夠減小出錯的機率。

 

1. oracle 用戶在一個node上運行 netca 

2. 選擇全部node 

3. 選擇 Listener configuration 

4.添加一個LISTEN, 1521 port 

而後結束配置 

 

監聽配置成功後, 2個結點上的Listener 都會坐位Application Resource 註冊到CRS中, 這樣CRS 就能夠監控Listener 的運行狀態。 咱們能夠經過 crs_stat -t -v  查看Listener 狀態。

 

 

 

五. 建立ASM 實例

 

1. 運行DBCA 命令

2. 選擇 configure Automatic Storage Management, 來建立ASM 實例

3. 選擇全部結點

4. 輸入密碼。RAC 的spfile 必須放在共享目錄下。  參數文件咱們選擇第一個initialization parameter。 也能夠放在咱們建的裸設備上。

5. 修改asm 參數: asm_diskstring = ORCL:VOL*, 這樣能讓Oracle自動發現這些硬盤

6. ASM 實例建立完後,用Create New 來建立ASM 磁盤組。 咱們用VOL1來建立一個DATA 組, VOL2 建立FLASH_RECOVERY_AREA組。

 

注: Redundancy 通常選external 就是也就是不考慮冗餘,假如選normal 則是mirror, 至少要一個FailGroup選High 就是triple mirror,3倍鏡像,須要三個FailGroup 

 

7.  建立完成後,能看到組的狀態是Mount, ASM 組必須mount以後才能使用。

 

ASM 的相關信息參考blog:

Oracle ASM 詳解

http://blog.csdn.net/tianlesoftware/archive/2010/02/21/5314541.aspx

 

 

六. 配置dbca建立數據庫

 

1. 用oracle用戶運行 dbca 

2. 選擇custom database 

3. 輸入數據庫的全局名,好比raw 

4. 輸入系統的角色創建密碼 

5. 選擇ASM 來存儲, 分別選擇咱們剛建立的DATA 和FLASH_RECOVERY_AREA 組

6. Database Services 這裏,你選擇Add你一個新的service, 隨便叫名字,好比oltp 

而後選擇 TAF Policy,是Basic。 這個服務在RAC 的Failover中會用到,若是在這裏沒有配置,也能夠經過dbca命令, 選擇 Services Management 來進行配置。 具體參考blog:

   Oracle RAC Failover 詳解

   http://blog.csdn.net/tianlesoftware/archive/2010/03/03/5340788.aspx

 

7. 開始建立數據庫 

 

七. 檢查RAC 運行狀態

1.用oracle用戶login, 運行 

[oracle@raraw1in]$ ./srvctl status database -d raw

Instance raw1 is running on node raw1

Instance raw2 is running on node raw2

 

2. [root@raw1 bin]# ./crs_stat -t

Name           Type           Target    State     Host

------------------------------------------------------------

ora.raw.db     application    ONLINE    ONLINE    raw1

ora.raw.raw.cs application    ONLINE    ONLINE    raw1

ora....aw1.srv application    ONLINE    ONLINE    raw1

ora....aw2.srv application    ONLINE    ONLINE    raw2

ora....w1.inst application    ONLINE    ONLINE    raw1

ora....w2.inst application    ONLINE    ONLINE    raw2

ora....SM1.asm application    ONLINE    ONLINE    raw1

ora....W1.lsnr application    ONLINE    ONLINE    raw1

ora.raw1.gsd   application    ONLINE    ONLINE    raw1

ora.raw1.ons   application    ONLINE    ONLINE    raw1

ora.raw1.vip   application    ONLINE    ONLINE    raw1

ora....SM2.asm application    ONLINE    ONLINE    raw2

ora....W2.lsnr application    ONLINE    ONLINE    raw2

ora.raw2.gsd   application    ONLINE    ONLINE    raw2

ora.raw2.ons   application    ONLINE    ONLINE    raw2

ora.raw2.vip   application    ONLINE    ONLINE    raw2

 

 

3.客戶端Failover測試

3.1  修改C:/windows/system32/drivers/etc/hosts 文件,添加以下內容

10.85.10.119 raraw10.85.10.121 raw2

10.85.10.122 raraw1ip

10.85.10.123 raw2-vip

3.2 修改tnsnames.Ora 文件,增長一下內容:

RAC =

  (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = raraw1ip)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = raw2-vip)(PORT = 1521))

      (LOAD_BALANCE=YES)

      (

CONNECT_DATA=

 (SERVER=DEDICATED)

 (SERVICE_NAME=RAC)

 (

   FAILOVER_MODE=

  (TYPE=session)

  (METHOD=basic)

  (RETRIES=180)

  (DELAY=5)

 )

      )

 

 

  )

 

3.3 客戶端用sqlplus 鏈接數據庫

C:/Documents and Settings/Administrator>sqlplus system/admin@rac

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 2月 27 02:06:40 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

鏈接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> select instance_name from V$instance;

INSTANCE_NAME

--------------------------------

raw2

 

3.4 關閉raw2 數據庫

[oracle@raw2 ~]$ export ORACLE_SID=raw2

[oracle@raw2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Feb 27 02:58:48 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> select instance_name from v$instance;

INSTANCE_NAME

----------------

raw2

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

 

3.5 在客戶段再次查詢,自動切換到了raw1

SQL> select instance_name from V$instance;

INSTANCE_NAME

--------------------------------

raw1

 

八. RAC 的卸載

 

卸載分爲幾個部分:database的卸載和clusterware(10.2版本說法)的卸載(10.1 版本稱爲CRS:cluster ready service)。

 

oracle database的卸載能夠利用不少方法-粗野的和溫柔的,我這裏利用dbca去卸載便可。

 

database的卸載會把全部節點的instance刪除掉,並把惟一的database刪除。

卸載database的第二步驟是把全部節點的listener卸載,能夠利用netca卸載便可。

 

最後卸載clusterware,能夠用Clusterware 的安裝程序來卸載,也能夠利用腳本進行:

$ORA_CRS_HOME/install/rootdelete.sh -help

對本地節點和遠程節點使用不用的命令,詳細參考幫助。

[root@raraw1nstall]# ./rootdelete.sh --help

Usage: rootdelete [-help] [local|remote] [nosharedvar|sharedvar] [sharedhome|nosharedhome] [-downgrade [-version <version>]]

/-help: print this message

local: if this node is the node where OUI is to be run to deinstall, otherwise use 'remote'

sharedvar: OCR is on a shared path, otherwise use 'nosharedvar'

sharedhome: CRS home is on a shared path, otherwuse use 'nosharedhome'

/-downgrade: Oracle clusterware and OCR will be reset for downgrade

/-version <version>: OCR location file will reset for downgrade to specified version, default: 10.1

 

[root@raraw1nstall]# ./rootdelete.sh local sharedvar sharedhome -downgrade

[root@raraw1nstall]# ./rootdelete.sh remote sharedvar sharedhome -downgrade

最後在本地節點執行

$ORA_CRS_HOME/install/rootdeinstall.sh

便可。

 

腳本執行是比較安全的方式,完成以後把相關目錄刪除便可完成clusterware的卸載。

 

補充:RAC 安裝的相關問題解決方法:

問題一:

安裝好RAC後,在用DBCA建庫時選擇ASM作爲存儲方案時,有時候會報錯說ASM是單實例環境,不是RAC環境,這樣就沒法繼續建庫下來,出錯信息以下:

The ASM instance configured on the local node is a single-instance ASM.To create a single-instance database using this ASM instance ,restart DBCA and select the single-instance database option ,to create a RAC database using this ASM instance,convert it to RAC ASM first.

 

這個錯誤通常是發生在重裝clusterware和database後,這樣不管怎麼樣重啓DBCA運行都會報一樣的錯。具體的解決辦法即是在/etc/oratab裏面的關於ASM的記錄:+ASM1:/u01/app/oracle/product/10.2.0/db_1:N這麼一行刪除掉,再接着建庫就能夠了。

 

問題二:

 

建立ASM時報:ORA-12547:TNS:lost contact

解決方法:

$ cd $ORACLE_HOME/rdbms/lib 

$ make -f ins_rdbms.mk ioracle 

問題三: 在CRS安裝時,最後執行root.sh時,後執行的節點上沒法成功,提示:
# ./root.sh
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
Setting the permissions on OCR backup directory
Setting up NS directories
Failed to upgrade Oracle Cluster Registry configuration
另外有一種提示爲:PRIF-10: failed to initialize the cluster registry 
解決方法:關閉共享磁盤的鎖定屬性
SSA或者FASTT系列盤陣關閉磁盤鎖定用:/usr/sbin/chdev -l hdiskn -a reserve_lock=no
ESS,EMC,HDS,CLARIION系列盤陣關閉磁盤鎖定用:/usr/sbin/chdev -l hdiskn -a reserve_policy=no_reserve

在虛擬機上就是添加參數. disk.locking = "false" 

 轉:http://blog.csdn.net/tianlesoftware/article/details/5332909

相關文章
相關標籤/搜索