Oracle RAC For Redhat Linux 4
官方文檔請參考:http://www.oracle.com/technology/global/cn/pub/articles/smiley_rac10g_install.html
規劃:
crs 安裝本地/orac/crs
oracle 共享磁盤/orac/orahome ocfs2
data 共享磁盤/orac/oradata ocfs2
ocr 共享磁盤/orac/oradata/ocrdata ocfs2
votedisk 共享磁盤/orac/oradata/votedisk ocfs2
一、準備oracle數據庫安裝環境
1、在2臺主機上創建dba、oinstall組,oracle用戶。用戶ID和組ID,以及oracle密碼在所有集羣主機上必須相同。
#groupadd -g 1001 dba
#groupadd -g 1002 oinstall
#useradd -u 1001 -m -g oinstall -G dba oracle
#id oracle
#passwd oracle
2、配置內核參數/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
#sysctl -p
使配置立即生效。
3、爲oracle用戶設置shell限制
/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
/etc/profile 添加:
if [ /$USER = "oracle" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
/etc/csh.login 添加:
if ( /$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
4、配置Hangcheck計時器(orace強烈建議配置)
#modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
/etc/rc.d/rc.local 添加
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
5、驗證已經安裝的程序包
make-3.80-5
gcc-3.4.3-9.EL4
compat-db-4.1.25-9
安裝gcc:kernel-headers(即glibc-kernheaders)>glibc-headers>glibc-devel>gcc
6、修改/home/oracle/.bash_profile,添加以下:
ORACLE_BASE=/orac/orahome; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH
LC_CTYPE=en_US.UTF-8; export LC_CTYPE
二、網絡配置
1、配置集羣主機網卡
2、配置/etc/hosts,從回送地址中刪除主機名,再添加以下:
211.152.14.110 rac01
211.152.14.109 rac02
192.168.1.110 priv01
192.168.1.109 priv02
211.152.14.210 vip01
211.152.14.209 vip02
三、爲oracle用戶建立安全ssh通道
1、每臺主機以oracle用戶登錄
#mkdir ~/.ssh
#chmod 755 ~/.ssh
#ssh-keygen -t rsa
#ssh-keygen -t dsa
2、rac01,以oracle登錄
#ssh rac01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#ssh rac01 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#ssh rac02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#ssh rac02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#scp ~/.ssh/authorized_keys rac02:~/.ssh/
#chmod 644 ~/.ssh/authorized_keys
rac02上:
#chmod 644 ~/.ssh/authorized_keys
3、所有集羣主機上測試
#ssh rac01 date
#ssh rac02 date
不需要密碼說明ssh配置成功。
--mirror1
四、安裝iscsi initiator
# rpm -ivh iscsi-initiator-utils-4.0.3.0-4.i386.rpm
#vi /etc/iscsi.conf 修改
DiscoveryAddress=192.168.1.100:3260
#vi /etc/initiatorname.iscsi 添加
InitiatorName=iqn.192.168.1.100.iscsi.1
#service iscsi start
192.168.1.100是共享磁盤(sdb)的位置
注:這裏sdb(8G)爲存放ORC,voteDisk,oracleHome,oracleData;CRS安裝在本地磁盤
#fdisk /dev/sdb
sdb1 3000M
sdb2 5000M
五、安裝並配置OCFS2
1、安裝
#uname -r
2.6.9-55.ELsmp
去oracle官網下載相應版本:
ocfs2-tools-1.2.7-1.el4.i386.rpm
ocfs2-2.6.9-55.ELsmp-1.2.9-1.el4.i686.rpm
ocfs2console-1.2.7-1.el4.i386.rpm
並安裝。
2、配置
#export DISPLAY=192.168.1.100:0.0
注:192.168.1.100主機啓動Xmanager Passive
#ocfs2console
跳到ocfs2console圖形界面:
格式化分區、添加集羣節點、複製配置文件(/etc/ocfs2/cluster.conf)
六、掛載OCFS2文件系統
1、檢測o2cb的狀態
#service o2cb configure
#service o2cb enable
#service o2cb status
2、創建掛載目錄,修改屬性
#mkdir -p /orac/crs 存儲clusterware軟件
#mkdir -p /orac/orahome 存儲數據庫軟件
#mkdir -p /orac/oradata 存儲數據文件
#chown -R root:oinstall /orac/crs
#chown -R oracle:oinstall /orac/orahome
#chown -R oracle:oinstall /orac/oradata
#chmod -R 755 /orac/crs
#chmod -R 755 /orac/orahome
#chmod -R 755 /orac/oradata
#mount -t ocfs2 /dev/sdb1 /orac/orahome
#mount -t ocfs2 -o datavolume,nointr /dev/sdb2 /orac/oradata
在/etc/fstab 添加:
/dev/sdb1 /orac/orahome ocfs2 _netdev 0 0
/dev/sdb2 /orac/oradata ocfs2 _netdev,datavolume,nointr 0 0
檢驗:
#df -hT
#mounted.ocfs2 -f
保存
開始安裝clusterware之前,先在clusterware根目錄使用runcluvfy.sh檢查先決條件是否已經滿足:
./runcluvfy.sh stage -pre crsinst -n rac01,rac02 -verbose
如果你收到任何失敗消息,請先糾正後再繼續安裝。
七、安裝CRS
注意:
1、查看oracle用戶是否有clusterware安裝目錄的執行權限。
2、使用oracle用戶運行安裝程序。
3、在提示運行腳本時,一定分開一個一個運行。
測試軟件安裝是否成功,執行crs的bin下:
olsnodes
crs_stat -t
八、安裝數據庫軟件
注意:
1、查看oracle用戶是否有database安裝目錄的執行權限。
2、使用oracle用戶運行安裝程序。
九、創建數據庫
./dbca
選擇安裝RAC數據庫,在全部節點安裝。
十、測試
使用oracle client測試rac:
[oracle@rac02 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 28 21:43:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> connect sys/abc.123@sales as sysdba
Connected.
SQL> set wrap off
SQL> select * from gv$instance;
rows will be truncated
INST_ID INSTANCE_NUMBER INSTANCE_NAME HOST_NAME
---------- --------------- ---------------- ------------------------------------
2 2 sales2 rac02
1 1 sales1 rac01
SQL>
十一、注意事項
1、我的內核:2.6.9-55.ELsmp
以下用runcluvfy.sh檢測到的沒安裝rpm,但是官方資料上redhat4沒有要求一下rpm包,奇怪啊,而且和原系統包有衝突。
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
安官方要求,redhat4只要有
make-3.80-5
gcc-3.4.3-9.EL4
compat-db-4.1.25-9
這些包就可以了。
2、安裝軟件時提示執行腳本一定要一個以個執行。
3、給共享磁盤掛載ocfs2文件系統前,先保證2邊o2cb的服務狀態一致:
service o2cb configure
第一個選y,其他默認
service o2cb enable
serivce o2cb status
4、ocfs2console 無法添加節點問題解決:
嘗試以下方法
4.1、service o2cb enable
4.2、刪除/etc/ocfs2/cluster.conf
5、向第二個節點推進安裝數據庫軟件失敗,提示AttachHome失敗,在失敗節點上手動執行
../db_1/oui/bin/runInstaller -attachHome -noClusterEnabled -nogenerateGuid ORACLE_HOME=/orac/orahome/10.2.0/db_1 ORACLE_HOME_NAME=OraDb10g_home1 CLUSTER_NODES=rac01,rac02 "INVENTORY_LOCATION=/home/oracle/oralnventory" -cfs LOCAL_NODE=rac02
6、安裝軟件過程不能中斷,否則系統不乾淨,很難繼續安裝(一般都是失敗,最好一次搞定)。
7、安裝crs時,出現警告:
根據排除文件列表‘null’將目錄/orac/crs/10.2.0複製到節點‘rac02’時出錯,所有已提交的命令都沒有成功執行。
這個大概是2個節點時間不同步吧,不知道是不是配置Hangcheck計時器的問題,如果沒有配置計時器,不會彈出這個錯誤。
這個警告可以忽略,繼續執行安裝。
部分截圖:
長ping rac01上的VIP,把rac01關機,發現斷開一段時間後恢復 :
查看rac02上發現,原來在rac01上的eth0:1變到rac02的eth0:2上了: