Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安裝文件

us_yunleiwang發表於2013-12-05

 

基於Redhat 5 redhat 4 RAC 區別在對raw的處理上。 之前做的是redhat 4.7  RAC 實驗。 準備做一個Redhat 5.4 的環境。

 

RAC 的一些理論東西:

http://blog.itpub.net/23490154/viewspace-1062322/

 

RAW+ASM+ REDHAT 4.7 RAC 文件

http://blog.itpub.net/23490154/viewspace-1062324/

 

 

伺服器主機名

rac1

rac2

公共IP地址(eth0

10.85.10.1

10.85.10.2

虛擬IP地址(eth0

10.85.10.3

10.85.10.4

私有IP地址(eth1

192.168.1.200

192.168.1.201

ORACLE RAC SID

rac1

rac1

叢集例項名稱

rac

OCR(oracle叢集登錄檔)

/dev/raw/raw1   /dev/sdb1        200M

/dev/raw/raw2   /dev/sdb2        200M

表決磁碟(voting disk

/dev/raw/raw3   /dev/sdc1       200M

/dev/raw/raw4   /dev/sdc2       200M

/dev/raw/raw5   /dev/sdc3       200M

ASM

/dev/sdd1     10G            VOL1 for Oracle Data

/dev/sdd1      5G             VOL2 for flash_recovery_area

資料庫備份

/dev/sde1    10G  mkfs -t ext3 /dev/sde1

 

 

實驗平臺:Oracle 10gR2 RAC + RHEL 5.4 +VMServer 2.0 

 

安裝步驟:

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

2.安裝Oracle 10gR2 clusterware

3.安裝Oracle 10gR2 database

4.配置netca

5.建立ASM 例項

6.配置dbca建立資料庫

7.檢查RAC狀態

 

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

Host OS 準備

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

2. 準備的RHEL 5.4 (x86)

3. 檢視Redhat 5.4 核心版本:

[root@redhat5 ~]# uname -a

Linux redhat5 2.6.18-164.el5xen #1 SMP Tue Aug 18 16:06:30 EDT 2009 i686 i686 i386 GNU/Linux

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

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

5. VMServer 2.0

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

http://blog.itpub.net/23490154/viewspace-1062327/

 

Vmware SERVER 簡介

http://blog.itpub.net/23490154/viewspace-1062342/

 

 

一.OS安裝

1. vmware server中建立redhat 5 虛擬機器,取名rac1. 記憶體800M, 硬碟15GB

2. 加上一塊NIC網路卡。RAC 實驗需要2塊網路卡。

3. vdiskmanager 建立Share Disk -- 如果用儲存的話,就不用這麼折騰了。 直接掛上就能分了。

先建立F:/VM/racshare目錄,然後把建立的磁碟檔案放到這個目錄下。 根據前面的分析,我們要建立4個檔案。

      dos下進入vmware 的安裝目錄,找到vmware-vdiskmanager.exe 程式,然後執行如下命令:

vmware-vdiskmanager.exe -c -s 400Mb -a lsilogic -t 2 F:/VM/racshare/ocr.vmdk

vmware-vdiskmanager.exe -c -s 600Mb -a lsilogic -t 2 F:/VM/racshare/votingdisk.vmdk

vmware-vdiskmanager.exe -c -s 15000Mb -a lsilogic -t 2 F:/VM/racshare/asm4data.vmdk

vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 F:/VM/racshare/backup.vmdk

 

 4.  rac1的目錄,開啟rac1.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 = "F:/VM/racshare/ocr.vmdk"

scsi1:1.deviceType = "plainDisk"

 

scsi1:2.present = "TRUE"

scsi1:2.mode = "independent-persistent"

scsi1:2.filename = "F:/VM/racshare/votingdisk.vmdk"

scsi1:2.deviceType = "plainDisk"

 

scsi1:3.present = "TRUE"

scsi1:3.mode = "independent-persistent"

scsi1:3.filename = "F:/VM/racshare/asm4data.vmdk"

scsi1:3.deviceType = "plainDisk"

 

scsi1:4.present = "TRUE"

scsi1:4.mode = "independent-persistent"

scsi1:4.filename = "F:/VM/racshare/backup.vmdk"

scsi1:4.deviceType = "plainDisk"

 

--最後新增這個,這段是對vmware使用共享硬碟的方式進行定義,必須新增

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

 

儲存退出之後,啟動虛擬機器就可以看到剛才新增的硬碟了.

 

5. 安裝完redhat 5作業系統後,關機,安裝的時候把所有包都裝上。

   按照1-5的步驟建立節點rac2.

 

Redhat 2個序列號:

redhat 5.0 : 2515dd4e215225dd

redhat 5.4 SN49af89414d147589

 

因為是測試環境,在做之前先關閉不需要的系統啟動耗時服務 
              # chkconfig cups off
              # chkconfig sendmail off
              # chkconfig isdn off
              # chkconfig smartd off
              # chkconfig iptables off

 

6.  配置你的2個網路卡的固定IPhostname, DNS, gateway, time server (NTP) ,這一步也可以在安裝系統時配置

 

根據前面的規劃,設定IP地址。可以在redhat 介面上進行修改,也可以修改下面2個檔案:

/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

 

 

7. 同步時間:

1) 在rac1上啟動time-stream 服務,並設定為自動動

[root@rac1 ~]# chkconfig time-stream on

redhat 4中,是: #chkconfig time on

 

2)在rac2 上新增任務,每一分鐘和rac1進行一次時間同步。

[root@rac2 ~]# crontab -l

*/1 * * * * rdate -s 10.85.10.1

 

rac 對節點間時間較敏感,RAC不能容忍節點間時鐘不同步,否則RACDown掉,而且在安裝vipca 的時候也會報錯。 具體時間同步參考我的blog

 

Linux 時間同步配置

http://blog.itpub.net/23490154/viewspace-1062328/

 

linux 下修改日期和時間

http://blog.itpub.net/23490154/viewspace-1062331/

 

8. 安裝結束後,進入 OS, 修改解析檔案: /etc/hosts

如下

注:機器名和public名要一樣

 

127.0.0.1 localhost (必須要這樣)

 

10.85.10.1 rac1

10.85.10.2 rac2

192.168.1.200 rac1-priv

192.168.1.201 rac2-priv

10.85.10.3 rac1-vip

10.85.10.4 rac2-vip

 

兩個node都要一樣.

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

 

 

9. 建立使用者等效性

  建立等效使用者之後,2個結點直接Oracle 使用者互相訪問就不在需要密碼了, 這樣就為RAC管理提供了可能性,如果等效性沒有配好, RAC 肯定是裝不起來的。

 

1)  RAC1,RAC2兩個節點上新增group add dba oinstall 建立oracle 使用者主組oinstall, 附加組是dba.

#groupadd oinstall

#groupadd dba

#useradd -g oinstall -G dba oracle

#passwd oracle

 

2) 建立等效使用者

rac1:

 

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

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

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

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

 

rac2

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

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

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

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

 

3) 切換回rac1,接著執行:

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

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

 

提示:下列命令會提示你輸入rac2 oracle 密碼,按照提示輸入即可,如果失敗可重新嘗試執行命令。

Rac1 節點:

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

 

Rac2節點:

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

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

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

 

4) 確保2node都有相互的結點資訊。兩機相互執行。

 

[oracle@rac1 ~]$ ssh rac1 date

[oracle@rac1~]$ ssh rac2 date

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

[oracle@rac1 ~]$ ssh rac2-priv date

 

切換至rac2 執行

[oracle@rac2 ~]$ ssh rac1 date

[oracle@rac2~]$ ssh rac2 date

[oracle@rac2 ~]$ ssh rac1-priv date

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

 

10. 2個結點上建立目錄

 

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

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

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

 

這個目錄給oracleclusterware系統的

 

11. 修改/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 = 131072000

kernel.shmmax = 524288000

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-max512 乘以 processes (128process則為 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.itpub.net/23490154/viewspace-1062348/

 

 

12. 設定使用者資源限制,2個節點都要執行

       因為所有的程式都是以Oracle 身份來執行的,因此需要定義Oracle 使用者能夠使用的系統資源數量。

 

vi /etc/security/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

 

13. 配置 hangcheck-timer 模組,2個節點都要執行

Hangcheck-timer Linux 提供的一個核心級的IO-Fencing 模組, 這個模組會監控Linux 核心執行狀態, 如果長時間掛起, 這個模組會自動重啟系統。 這個模組在Linux 核心空間執行, 不會受系統負載的影響。 這個模組會使用CPUTime Stamp CounterTSC) 暫存器,這個暫存器的值會在每個時鐘週期自動增加, 因此使用的是硬體時間,所以精度更高。

配置這個模組需要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的和。

 

1) 檢視模組位置:

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

/lib/modules/2.6.18-164.el5/kernel/drivers/char/hangcheck-timer.ko

/lib/modules/2.6.18-164.el5xen/kernel/drivers/char/hangcheck-timer.ko

 

2) 配置系統啟動時自動載入模組,在/etc/rc.d/rc.local 中新增如下內容

[root@rac1 ~]# modprobe hangcheck-timer

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

modprobe hangcheck-timer

 

3) 配置hangcheck-timer引數/etc/modprobe.conf 中新增如下內容:

[root@rac1 ~]# vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

 

4) 確認模組載入成功:

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

Sep  7 19:53:03 rac1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).

Sep  7 19:53:03 rac1 kernel: Hangcheck: Using monotonic_clock().

 

14. 格式化分割槽

我們之前新增了4塊硬碟,在分割槽的時候,ocr 我們要劃分成2100M,分別來存放ocr配置檔案,votingdisk我們要分成3100M的。 Asm4data 要分成兩個,10G 存放資料檔案,5G 用在flashback上。 Backup 我們分成一個區。

在一個結點執行格式化就可以了,因為他們是共享的。

 

[root@rac1 ~]# fdisk –l

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

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1  -- 分割槽號1,等格式化技術後對應sdb1

First cylinder (1-200, default 1):

Using default value 1 – 分割槽開始點

Last cylinder or +size or +sizeM or +sizeK (1-200, default 200): +100M  --sdb1 設定成100m

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 2  --設定分割槽sdb2

First cylinder (97-200, default 97):

Using default value 97  --開始點

Last cylinder or +size or +sizeM or +sizeK (97-200, default 200):

Using default value 200  --結束點

 

Command (m for help): w  -- 寫資料

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@rac1 ~]# fdisk -l

Disk /dev/sdb: 209 MB, 209715200 bytes

64 heads, 32 sectors/track, 200 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          96       98288   83  Linux

/dev/sdb2              97         200      106496   83  Linux

這裡就是分割槽的效果

 

其他的操作類似,最終的格式化的效果是:

 

[root@rac1 ~]# fdisk -l

/dev/sda1           251        1958    13719510   83  Linux

/dev/sda2               1         250     2008093+  82  Linux swap / Solaris

/dev/sdb1               1         101      103408   83  Linux

/dev/sdb2             102         200      101376   83  Linux

/dev/sdc1               1          99      101360   83  Linux

/dev/sdc2             100         198      101376   83  Linux

/dev/sdc3             199         300      104448   83  Linux

/dev/sdd1               1        1217     9775521   83  Linux

/dev/sdd2            1218        1912     5582587+  83  Linux

/dev/sde1               1        1274    10233373+  83  Linux

 

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

 

 

15. 配置raw 裝置

 

   所謂raw 裝置,就是透過字元方式訪問的裝置,也就是讀寫裝置不需要緩衝區。 在Linux 下,對磁碟值提供了塊方式的訪問。要想透過字元方式訪問,必須配置raw 裝置服務,並且Oracle 使用者對這些raw 裝置必須有訪問的許可權。

 

Redhat 5  4在裸裝置的配置上不一樣。 關於4raw的配置參考:

RAW+ASM+ REDHAT 4.7 RAC 文件

http://blog.itpub.net/23490154/viewspace-1062324/

 

redhat 5raw的配置也可以參考:

       Redhat 5 中裸裝置(raw) 的配置

      http://blog.itpub.net/23490154/viewspace-1062353/

 

2個節點上做如下操作:

 

1)修改/etc/udev/rules.d/60-raw.rules 檔案

新增如下內容:

ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="sdc2",RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="sdc3",RUN+="/bin/raw /dev/raw/raw5 %N"

ACTION=="add",KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="660"

 

這裡有個小插曲,見:

       http://blog.csdn.net/tianlesoftware/archive/2010/09/08/5871972.aspx

 

2) 重啟服務:

[root@rac1 ~]# start_udev

Starting udev:         [  OK  ]

 

3) 檢視raw裝置:

[root@rac1 ~]# ls -lrt /dev/raw

total 0

crw-rw---- 1 oracle oinstall 162, 5 Sep  8 03:18 raw5

crw-rw---- 1 oracle oinstall 162, 4 Sep  8 03:18 raw4

crw-rw---- 1 oracle oinstall 162, 1 Sep  8 03:18 raw1

crw-rw---- 1 oracle oinstall 162, 3 Sep  8 03:18 raw3

crw-rw---- 1 oracle oinstall 162, 2 Sep  8 03:18 raw2

raw的配置,也可以直接使用raw來實現。

[root@qs-dmm-rh2 mapper]# cat /etc/rc.local 
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local


#####
# Oracle Cluster Registry (OCR) devices
#####
chown root:oinstall /dev/mapper/ocr**
chmod 660 /dev/mapper/ocr*
raw /dev/raw/raw1 /dev/mapper/ocrp1
raw /dev/raw/raw2 /dev/mapper/ocrp2
raw /dev/raw/raw3 /dev/mapper/ocrp3
raw /dev/raw/raw4 /dev/mapper/ocrp4
#sleep 2
chown root:oinstall /dev/raw/raw1
chown root:oinstall /dev/raw/raw2
chown root:oinstall /dev/raw/raw3
chown root:oinstall /dev/raw/raw4
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
#####
# Oracle Cluster Voting disks
#####
chown oracle:oinstall /dev/mapper/voting*
chmod 660 /dev/mapper/voting*
raw /dev/raw/raw5 /dev/mapper/votingdiskp1
raw /dev/raw/raw6 /dev/mapper/votingdiskp2
raw /dev/raw/raw7 /dev/mapper/votingdiskp3
raw /dev/raw/raw8 /dev/mapper/votingdiskp4
#sleep 2
chown oracle:oinstall /dev/raw/raw5
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 660 /dev/raw/raw5
chmod 660 /dev/raw/raw6
chmod 660 /dev/raw/raw7
chmod 660 /dev/raw/raw8

 

16.  在兩個node上都安裝 ASMLibs, tools, support 三個rpm檔案注意核心版本要和linux一致。

 

# 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

 

17. 建立ASM 磁碟

       在一個node:

透過以 root 使用者身份執行以下命令來標記由 ASMLib 使用的磁碟:/etc/init.d/oracleasm createdisk DISK_NAME device_name(提示:DISK_NAME 應由大寫字母組成。當前版本有一個錯誤,即假如使用小寫字母,ASM 例項將無法識別磁碟。)

 

記住,ASMlinux下面處理的物件是 partition,不是disk, 所以你那些vmdklinux 下面partition好才能用,所以先fdisk一下在建立.

 

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

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

 

建立好後在這個node 上執行 /etc/init.d/oracleasm listdisks 檢視。

 

18. 在另外一個node 

/etc/init.d/oracleasm scandisks

/etc/init.d/oracleasm listdisks 檢視

 

19. 在每個node上配置Oracleprofile檔案

 

Su -oracle

Cd /home/oracle

 

修改 oracle使用者家目錄下的 .bash_profile 。注意ORACLE_SID, 和後面建庫要一致。

 

# 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=rac1

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=rac2 其他都一樣。

 

 

二. 安裝Oracle 10gR2 clusterware

 

1. Xmanager 軟體連上虛擬機器之後執行clusterware 的安裝軟體, Xmanager 支援圖形介面, 所以能省很多事。

       主要要先修改/etc/redhat-release 檔案,不然會報錯。

              [root@rac2 ~]# more /etc/redhat-release

redhat-4

 

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

 

3. 增加相關結點資訊

rac1 rac1-priv rac1-vip

rac2 rac2-priv rac2-vip

 

4.指定 eth0 的型別時public

 

5. 指定OCR  Voting Disk

一般而言,如果採用儲存來存放OCRVoting Disk. 儲存本身就提供了redundancy策略,此時我們可以選擇External Redundancy 選項, 此時Oracle 就不在考慮軟體冗餘了。 如果沒有使用儲存裝置或者儲存為RAID0,那麼就可以使用Oracle 自己提供的軟體冗餘機制 Normal Redundancy 選項,此時就會啟用Mirror Location 選項.用來指定映象檔案位置, Oracle Clusterware在執行時會維護這個Mirror檔案的內容同步。

 

 

OCR 最多隻有一份冗餘:

/dev/raw/raw1

/dev/raw/raw2

 

Voting Disk 最多可以定義2份冗餘:

/dev/raw/raw3

/dev/raw/raw4

/dev/raw/raw5

 

6. 開始安裝了,結束時會提示用root在每個節點上執行orainstRoot.Sh  root.Sh指令碼, 在第二個結點上執行root.Sh 後自動呼叫vipca 這個命令, 在第二個結點執行root.Sh 之前要修改一下vipca命令, 不然可能會報錯。

 

RAC安裝時需要執行4個指令碼及意義

http://blog.itpub.net/23490154/viewspace-1062337/

 

注意: VIPCA 命令也是用ROOT 使用者來執行的, 只需要在一個結點執行就可以了。

 

 

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

 

問題1 vipca報錯,是redhatbug

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:

/bin/vipca

/bin/srvctl

/bin/srvctl

/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 命令:

 

# ./oifcfg setif -global eth0/10.85.10.0:public

# ./oifcfg setif -global eth1/192.168.1.0:cluster_interconnect

# ./oifcfg getif

eth0 10.85.10.0 global public

eth1 192.168.1.0 global cluster_interconnect

 

-- 注意這裡最後一個是0. 代表一個網段。 在一個節點設定之後,其他節點也能看到。  

 

然後在手工執行vipca新增nodeapps resource即可。

 

問題3An 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

rac1

rac2

$ 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 安裝完成,並且啟動成功

[root@rac1 bin]# ./crs_stat -t -v

Name           Type           R/RA   F/FT   Target    State     Host

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

ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1

ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1

ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1

ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2

ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2

ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2

 

注:如果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使用者,執行databaserunInstaller

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

4. 2node選擇上

5. 選擇 Install database Software only

6. 會要求你用完全的root許可權執行 root.sh ,分別在2node上一一執行

7. 安裝完畢

 

 

四. netca 建立監聽

 

注:建立資料庫過程應該遵循這個順序: 先配置監聽, 再配置ASM 例項, 最後建立資料庫例項, 這樣可以減少出錯的機率。

 

1. oracle 使用者在一個node上執行 netca

2. 選擇所有node

3. 選擇 Listener configuration

4. 新增一個LISTENER, 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 對應的device 需要oracle 使用者的許可權,如:

chown oracle:oinstall /dev/mapper/device_name

 

ASM 的相關資訊參考blog

Oracle ASM 詳解

http://blog.itpub.net/23490154/viewspace-1062338/

 

在這裡,如果asm 服務必須要啟動。如果沒有啟動,就手動啟動它。 具體參考:

       Oracle RAC 啟動與關閉

http://blog.itpub.net/23490154/viewspace-1062350/

 

[root@rac1 bin]# ./crs_stat -t

Name           Type           Target    State     Host

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

ora....SM2.asm application    ONLINE    ONLINE    rac1

ora....C1.lsnr application    ONLINE    ONLINE    rac1

ora.rac1.gsd   application    ONLINE    ONLINE    rac1

ora.rac1.ons   application    ONLINE    ONLINE    rac1

ora.rac1.vip   application    ONLINE    ONLINE    rac1

ora....SM1.asm application    ONLINE    ONLINE    rac2

ora....C2.lsnr application    ONLINE    ONLINE    rac2

ora.rac2.gsd   application    ONLINE    ONLINE    rac2

ora.rac2.ons   application    ONLINE    ONLINE    rac2

ora.rac2.vip   application    ONLINE    ONLINE    rac2

 

配置dbca建立資料庫

 

1. oracle使用者執行 dbca

2. 選擇custom database

3. 輸入資料庫的全域性名,比如rac

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.itpub.net/23490154/viewspace-1062355/

 

7. 開始建立資料庫

 

 

 

七. 檢查RAC 執行狀態

 

1.

[root@rac1 bin]# ./srvctl status database -d rac

Instance rac2 is running on node rac1

Instance rac1 is running on node rac2

 

2.

[root@rac1 bin]# ./crs_stat -t

Name           Type           Target    State     Host

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

ora.rac.db     application    ONLINE    ONLINE    rac1

ora....oltp.cs application    ONLINE    ONLINE    rac2

ora....ac1.srv application    ONLINE    ONLINE    rac2

ora....ac2.srv application    ONLINE    ONLINE    rac1

ora....c1.inst application    ONLINE    ONLINE    rac2

ora....c2.inst application    ONLINE    ONLINE    rac1

ora....SM2.asm application    ONLINE    ONLINE    rac1

ora....C1.lsnr application    ONLINE    ONLINE    rac1

ora.rac1.gsd   application    ONLINE    ONLINE    rac1

ora.rac1.ons   application    ONLINE    ONLINE    rac1

ora.rac1.vip   application    ONLINE    ONLINE    rac1

ora....SM1.asm application    ONLINE    ONLINE    rac2

ora....C2.lsnr application    ONLINE    ONLINE    rac2

ora.rac2.gsd   application    ONLINE    ONLINE    rac2

ora.rac2.ons   application    ONLINE    ONLINE    rac2

ora.rac2.vip   application    ONLINE    ONLINE    rac2

 


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

相關文章