RHEL4As RAC手記
兩台機器情況如下
主機1
Hostname:RHEL4-1
OS software RHEL4 As(2.6.9.0.78 ELSmp版本)
memory:1024MB
主機2
Hostname:RHEL4-2
沒有拿到生産環境,是以自己先在VMWare做了,既然是VMware就取巧了一下,安裝好一個虛拟機,然後把準備工作都做好在clone一個到另一個系統下了。
第一步
首先當然是安裝RHEL了,手頭上有RHEL4 32bit的,就用這個了。
第二步
設定網絡配置了,需要兩個網卡,配置public,private和virtual ip叻
這回就更仔細的研究了,沒有按别人的步驟來,隻添加了pri host和vip host。
real ip是192.168.2.206
hostname rhel4-1
192.168.3.206 rhel4-priv1
192.168.2.106 rhel4-vip1
vip必須和public在同一個Ip段上,vip是提供給oracle使用的,這裡我們兩個網卡分别對應着public和private
第三步
建立使用者
#groupadd dba
#groupadd oinstall
#useradd -g oinstall -G dba oracle
#passwd oracle
#mkdir /u01/app/oracle/product/10.2.0.2/db_1 -p
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
第四步
修改相關參數檔案
環境變量參數/home/oracle/.bash_profile
export PATH
unset USERNAME
export LANG=zh_CN.EUC
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASE
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.2/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0.2/crs_1
export ORACLE_SID=rac1
#export NLS_LANG=’SIMPLIFIED CHINESE_CHINA.ZHS16GBK’
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;
export LD_LIBRARY_PATH
export ORACLE_TERM=xterm
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
配置核心參數/etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
#/sbin/sysctl -p 生效
Linux 帳戶可以使用的程序數量和打開檔案的數量設定限制 /etc/security/limits.conf和/etc/pam.d/login
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login
session required /lib/security/pam_limits.so
Disable SELinux /etc/grub.conf
在行kernel /vmlinuz-2.6.9-42.ELlargesmp ro root=LABEL=/ rhgb quiet後
加入
selinux=0
第五步
加載hangcheck-timer
在/etc/rc.d/rc.local加入
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
第六步
等效性配置,用oracle使用者登入
#ssh-keygen -t rsa
一路回車
#ssh-keygen -t dsa
在`/.ssh下将生成密匙和公匙
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
其他機器安裝好以後運作
ssh oracle@rhel4-2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
第七步安裝ocfs2和asm
下載下傳ocfs2和asm軟體,我這裡的RAC規劃是ocfs2加上Asm,asm相對于row device來說便于管理,相對于ocfs2來說性能更好,至于使用ocfs2主要是做crs和voting disk部分的storage,資料檔案以及其他資料庫的檔案都在asm上做storage。
現在前用uname -r檢視自己的核心。找和自己核心一緻的版本下載下傳。
我這裡下載下傳的分别是
ocfs2
ocfs2-2.6.9-78.ELsmp-1.2.9-1.el4.i686.rpm
ocfs2console-1.2.7-1.el4.i386.rpm
ocfs2-tools-1.2.7-1.el4.i386.rpm
asm
oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.i686.rpm
oracleasmlib-2.0.4-1.el4.i386.rpm
oracleasm-support-2.1.3-1.el4.i386.rpm
安裝
# rpm ‐ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
# rpm ‐ivh ocfs2-2.6.9-78.ELsmp-1.2.9-1.el4.i686.rpm
# rpm ‐ivh oracleasm-support-2.1.3-1.el4.i386.rpm
# rpm ‐ivh oracleasmlib-2.0.4-1.el4.i386.rpm
# rpm ‐ivh oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.i686.rpm
第八步
格式化硬碟
加一塊硬碟10g上去,/dev/sdb
fdisk /dev/sdb
分兩個區,一個作為ocfs管理的需要給600M就夠了,crs和voting disk的,剩下的都個asm了
ocfs2的部署
#ocfs2console
<1>在OCFS2控制台中,點選“TASKS”下的“FORAMT”菜單對要格式化為OCFS2檔案系統的分區進行格式化,在UI下,選擇/dev/sdb1,
<2>在OCFS2控制台程式中選擇“Cluster”菜單下的“Configure Nodes”菜單,配置使用OCFS2檔案系統的叢集節點,在“Node Configuration”對話框中,點選“Add”來連接配接叢集節點
<3>Apply, 如果有錯,删除/etc/ocfs2目錄下的 cluster.conf檔案,重新用UI建立。
最後的cluster.conf是
node:
ip_port = 7777
ip_address = 192.168.3.202
number = 0
name = rhel4-2
cluster = ocfs2
ip_address = 192.168.3.201
number = 1
name = rhel4-1
cluster:
node_count = 2
name = ocfs2
<4>在節點1 上利用界面上傳配置檔案到其它節點
# ocfs2console
然後選擇 Cluster ‐> Propagate Configuration
所有都finished, 然後File‐>Quit
在節點2上可以看到一樣的cluster.conf
<5>配置O2CB
[root@rhel4-2 crs]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
[root@rhel4-1 crs]# /etc/init.d/o2cb enable
Starting O2CB cluster ocfs2: OK
[root@rhel4-2 crs]# /etc/init.d/o2cb configure
Specify heartbeat dead threshold (>=7) [31]:61 根據自己的需要來設定
同樣在節點2 上配置。
[root@rhel4-2 crs]# /etc/init.d/o2cb start
[root@rhel4-2 crs]# /etc/init.d/o2cb status
Module “configfs”: Loaded
Filesystem “configfs”: Mounted
Module “ocfs2_nodemanager”: Loaded
Module “ocfs2_dlm”: Loaded
Module “ocfs2_dlmfs”: Loaded
Filesystem “ocfs2_dlmfs”: Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold: 61
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Active
加載OCFS2 檔案系統
mount -t ocfs2 -o _netdev,datavolume,nointr /dev/sdb1 /crsdata
如果有問題先執行一下
mkfs.ocfs2 -b 4k -C 32k -N 4 -L ora_home /dev/sdb1 –fs-feature-level=max-compat
asm的部署
檢視volumn
#/etc/init.d/oracleasm listdisks
配置
#/etc/init.d/oracleasm configure
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
其他預設值
據檔案建立 ASM 磁盤
# /etc/init.d/oracleasm createdisk oradata /dev/sdb2 — oradata disk volumn
ORADATA
#/etc/init.d/oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
#mount
oracleasmfs on /dev/oracleasm type oracleasmfs (rw)
接下來就可以安裝clusterware了
常見故障排除
安裝時到最後需要root執行CRS_HOME/root.sh,這時有錯誤
PROT-1: Failed to initialize ocrconfig
Failed to upgrade Oracle Cluster Registry configuration
原因是沒有mount好,對于ocfs2來說,可以store,datafile,control file,redo file,archive file和crs和voting disk,但是必須在mount時加上datavolume
#mount -t ocfs2 -o datavolume /dev/sdb1 /crsdata
在執行root.sh時有時會挂在那裡,是crs和voting disk沒有format好,重新format好,然後裝載
#ocfs2conosole
先umount,然後format,接着用上面的方式裝載。
在root.sh install deamon是有時會告知如下資訊
Running vipca(silent) for configuring nodeapps
The given interface(s), “eth2″ is not public. Public interfaces should be used to
configure virtual IPs.
重新用$CRS_HOME/bin/vipca執行,設定vip即可。
注意
有時RAC安裝失敗了,一定要把crs删除幹淨了才能安裝,要不有些怪異的錯誤,ocr和votingdisk要格式化以後再重新mount才行。
本文轉自 jxwpx 51CTO部落格,原文連結:http://blog.51cto.com/jxwpx/208578,如需轉載請自行聯系原作者