Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安裝文件
基於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,下2個zip, 一個是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 SN:49af89414d147589
因為是測試環境,在做之前先關閉不需要的系統啟動耗時服務
# chkconfig cups off
# chkconfig sendmail off
# chkconfig isdn off
# chkconfig smartd off
# chkconfig iptables off
6. 配置你的2個網路卡的固定IP,hostname, 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不能容忍節點間時鐘不同步,否則RAC會Down掉,而且在安裝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) 確保2個node都有相互的結點資訊。兩機相互執行。
[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
這個目錄給oracle和clusterware系統的
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-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.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 核心空間執行, 不會受系統負載的影響。 這個模組會使用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的和。
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 我們要劃分成2個100M,分別來存放ocr配置檔案,votingdisk我們要分成3個100M的。 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在裸裝置的配置上不一樣。 關於4上raw的配置參考:
RAW+ASM+ REDHAT 4.7 RAC 文件
http://blog.itpub.net/23490154/viewspace-1062324/
redhat 5上raw的配置也可以參考:
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 例項將無法識別磁碟。)
記住,ASM在linux下面處理的物件是 partition,不是disk, 所以你那些vmdk要linux 下面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上配置Oracle的profile檔案
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
一般而言,如果採用儲存來存放OCR和Voting 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報錯,是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:
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即可。
問題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
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使用者,執行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. 新增一個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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 10g RAC + dataguard安裝文件Oracle 10g
- RedHat Enterprice Linux 5.4 下安裝Oracle 10gRedhatLinuxOracle 10g
- oracle 10G RAC for redhat as5.3 安裝說明Oracle 10gRedhat
- RAW+ASM 的RAC 安裝文件ASM
- RedHat 5.6_x86_64 + ASM + RAW+ OracRedhatASM
- redhat 5.4 安裝oracle11g 步驟RedhatOracle
- 公司環境redhat as5 安裝Oracle 10g的文件RedhatOracle 10g
- OCFS2+ASM 的RAC安裝文件ASM
- oracle 10g rac for linux redhat 5.3 安裝常見問題Oracle 10gLinuxRedhat
- step by step install oracle 10g rac asm操作文件Oracle 10gASM
- RAW+ASM 的RAC 安裝文件 收藏(ZF)ASM
- redhat 6.4 安裝oracle11g RAC 安裝RDACRedhatOracle
- oracle 10g rac 解除安裝Oracle 10g
- Redhat AS 4安裝Oracle 10g 10.2.0.3.0RedhatOracle 10g
- Oracle 10g RAC 安裝及加入新節點文件密碼Oracle 10g密碼
- 11Gr2 RAC udev ASM openfiler(安裝文件)devASM
- 安裝10g rac,關於asm configureASM
- CentOS5.4上安裝RACCentOS
- redhat 5.4下安裝MYSQL全過程RedhatMySql
- 安裝Oracle 10g RAC是否需要安裝HACMPOracle 10gACM
- 安裝Oracle 10g RAC是否需要安裝HACMP?Oracle 10gACM
- oracle10g ASM+RAC安裝OracleASM
- oracle 10g rac安裝報錯Oracle 10g
- redhat7.6安裝Oracle11G RACRedhatOracle
- RedHat6.5 安裝Oracle 12c RACRedhatOracle
- redhat6.2安裝oracle11.2.0.3RACRedhatOracle
- 安裝 oracle 10g rac 與 裸裝置Oracle 10g
- RedHat 5.1上安裝Oracle 10g 注意事項RedhatOracle 10g
- redhat as5 安裝 oracle 10g注意事項RedhatOracle 10g
- Oracle安裝部署之linux(redhat/centos)快速安裝oracle 11g racOracleLinuxRedhatCentOS
- 按照online文件在Linux下安裝Oracle 10g RAC(三.安裝clusterware和database)LinuxOracle 10gDatabase
- Oracle:Redhat 7 + Oracle RAC 11g 安裝 bug 總結OracleRedhat
- Linux (RHEL 5.4)下安裝 Oracle 10g R2LinuxOracle 10g
- RedHat 安裝11g racRedhat
- 安裝ORACLE 11.2.0.3 ASM for AIX HA (Non-RAC)OracleASMAI
- VMware RHEL5安裝Oracle 10g RACOracle 10g
- Oracle 10g RAC 靜默安裝過程Oracle 10g
- oracle 10g rac 安裝好文章(轉)Oracle 10g