Virtual box搭建10G rac完整過程

we6100發表於2014-03-06

os:rhel5.5
主機名:rac1,rac2
安裝系統過程:略

準備工作:

修改節點IP地址,並修改hosts檔案
public    公共IP地址,就是你要對外提供服務的IP。
private   私有IP地址,用於RAC內部之間通訊。
vip       虛擬IP地址,主要用於網路出現故障時進行IP地址漂移。

vi /etc/hosts
127.0.0.1       localhost
192.168.1.11 rac1
192.168.1.12 rac2
10.0.0.1 rac1-priv
10.0.0.2 rac2-priv
192.168.1.21 rac1-vip
192.168.1.22 rac2-vip


hostname修改,rac1,rac2都修改
vi /etc/sysconfig/network
HOSTNAME=rac1(需要與/etc/hosts一致)


安裝依賴包
掛載光碟
cd  /media/RHEL_5.5\ x86_64\ DVD/Server/

rpm -ivh make*  glibc*  libaio*  compat-libstdc++*  compat-gcc-*  compat-gcc-34-c++* gcc*  libXp*  openmotif22*  compat-db* libstdc++44-devel* libgfortran44*  libgnat* libgnat* libobjc* libXp-devel-1.0.0-8.1.el5.*
注:libXp要同時裝32位和64位的
rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm
rpm -ivh libXp-1.0.0-8.1.el5.x86_64.rpm
rpm -ivh libXp-devel-1.0.0-8.1.el5.i386.rpm
rpm -ivh libXp-devel-1.0.0-8.1.el5.x86_64.rp


建立oracle使用者
groupadd oinstall
groupadd dba
mkdir -p /home/oracle
useradd -d /home/oracle -g oinstall -G dba -s /bin/bash oracle
(如果the home directory already exists,直接cp /etc/skel/.bash* /home/oracle/即可)
chown -R oracle:dba /home/oracle
echo "oracle" | passwd oracle  --stdin


節點1環境變數配置
vi .bashrc
export ORACLE_BASE=/opt/app/oracle
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=sytong1
export ORACLE_TERM=vt100
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=en_US
umask 022
生效環境變數
source .bashrc


節點2
vi .bashrc
export ORACLE_BASE=/opt/app/oracle
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=sytong2
export ORACLE_TERM=vt100
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=en_US
umask 022
生效環境變數
source .bashrc


用oracle使用者在各個節點建立目錄
mkdir -p $ORACLE_BASE/admin
mkdir -p $ORACLE_HOME
mkdir -p $ORA_CRS_HOME
mkdir -p $ORACLE_BASE/oradata/r10g


用root使用者限制oracle使用者的shell
cat>>/etc/security/limits.conf< oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF


cat >>/etc/pam.d/login< session required /lib/security/pam_limits.so
EOF


cat >>/etc/profile< if [ $USER = "oracle" ]; then
          if [ $SHELL = "/bin/ksh" ]; then
                ulimit -p 16384
                ulimit -n 65536
                  else
                 ulimit -u 16384 -n 65536
                  fi
fi
EOF


配置核心引數,並立即生效
cat >>/etc/sysctl.conf < kernel.shmall = 4294967296
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=1048576
net.core.rmem_max=1048576 
net.core.wmem_default=262144 
net.core.wmem_max=262144
EOF


立即生效
/sbin/sysctl -p


配置hangcheck timer核心模組,監測系統狀態,可以及時重啟故障RAC節點
cat>>/etc/modprobe.conf< options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF
立即載入模組
modprobe -v hangcheck-timer

使用oracle使用者在兩節點配置信任關係
rac1:(rsa與dsa是兩種加密型別)
ssh-keygen -t rsa
ssh-keygen -t dsa
一路enter
rac2:
ssh-keygen -t rsa
ssh-keygen -t dsa

rac1:
cd ~/.ssh
touch authorized_keys
cat id_dsa.pub >> authorized_keys
cat id_rsa.pub >> authorized_keys
ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
scp  authorized_keys rac2:~/.ssh/

在Rac1中ssh到Rac2同步兩節點的時間
分別在兩個節點上執行
date; ssh rac1 date
date; ssh rac2 date
date; ssh rac1-priv date
date; ssh rac2-priv date
以上命令每條命令每個節點都需要執行
要達到不需要輸入yes 否則安裝過程中不能順利完成 

在rac1上建立三塊共享盤,一般註冊盤,投票盤,資料盤的數量為1,1,1或者2,3,1兩種模式,
下面建立1,1,1的模式


註冊盤與投票盤建議110M以上,但不需要太多,資料盤必須在6G以上,並且都是固定大小

ocr:120M
vote:120M
data:10G


共享三塊盤,給rac2共享使用



選中一塊共享盤,點修改成可共享

依次修改三塊盤成為可共享狀態,然後到rac2上新增三塊共享盤


注意rac1與rac2的順序必須一樣,否則可能無法建立叢集



如果不一樣點選一塊盤,修改埠號





把三塊共享盤劃成裸裝置
fdisk /dev/sdb註冊盤上劃一分割槽>100M
fdisk /dev/sdc仲裁盤上劃一分割槽>100M
fdisk /dev/sdd資料盤上劃分割槽>15G

fdisk /dev/sdb
→n(劃分新分割槽)→p(主分割槽)→1→回車→回車→w(儲存退出)

三個盤都分割槽完成後,在兩節點分別生效分割槽表
partprobe /dev/sdb
partprobe /dev/sdc
partprobe /dev/sdd
不重啟,立刻生效分割槽表

rac1:
把分割槽劃成裸裝置
vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
/dev/raw/raw3 /dev/sdd1

/etc/init.d/rawdevices start

service rawdevices reload

scp /etc/sysconfig/rawdevices rac2:/etc/sysconfig/rawdevices(同步裸裝置表)

rac2:
/etc/init.d/rawdevices start

rac1,rac2上執行:
chkconfig rawdevices on
service rawdevices status
/dev/raw/raw1:  bound to major 8, minor 17
/dev/raw/raw2:  bound to major 8, minor 33
/dev/raw/raw3:  bound to major 8, minor 49(需與/etc/udev/rules.d/60-raw.rules相對應)

記錄major和minor值,待會寫入/etc/udev/rules.d/60-raw.rules
/etc/udev/rules.d/50-udev.rules保證裸裝置的屬主是oracle,而不是root

將裸裝置授權給oracle使用者
chown -R oracle:oinstall /dev/raw/raw1(註冊盤)
chown -R oracle:oinstall /dev/raw/raw2(投票盤)
chown -R oracle:dba /dev/raw/raw3(資料盤)

rac1上新增規則
cat>>/etc/udev/rules.d/60-raw.rules< ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="17", RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="33", RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="49", RUN+="/bin/raw /dev/raw/raw3 %M %m"
EOF

cat>>/etc/udev/rules.d/50-udev.rules< KERNEL=="raw[1-2]",OWNER="oracle" GROUP="oinstall",MODE="0660"
KERNEL=="raw3",OWNER="oracle" GROUP="dba",MODE="0660"
EOF

rac2上同步規則
scp /etc/udev/rules.d/60-raw.rules rac2:/etc/udev/rules.d/60-raw.rules
scp /etc/udev/rules.d/50-udev.rules rac1:/etc/udev/rules.d/50-udev.rules

準備工作完成最好重啟下 檢測下raw裝置屬主,信任關係是否還正常

開始安裝叢集軟體clusterware
用oracle解壓
gunzip 10201_clusterware_linux_x86_64.cpio.gz
cpio -idmv < 10201_clusterware_linux_x86_64.cpio

xhost +
進入解壓後目錄./runInstaller
圖形介面安裝


在另外視窗用root執行下/clusterware/rootpre/ rootpre.sh
顯示No OraCM running後

輸入y


顯示10g只支援以上版本
所以修改redhat版本號,把原來5 修改成4
vi /etc/redhat-release
Red Hat Enterprise Linux Server release 4.5 (Tikanga)

繼續使用oracle使用者安裝
./runInstaller



OCR盤定位(因為現在用的是一塊OCR盤,否則使用Normal方式,並把第二塊盤寫在Mirror位置)



rac1:
[root@rac1 ~]# /opt/app/oracle/oraInventory/orainstRoot.sh
[root@rac1 ~]# /opt/app/oracle/product/10.2.0/crs_1/root.sh
rac2:
[root@rac2 ~]# /opt/app/oracle/oraInventory/orainstRoot.sh
[root@rac2 ~]# /opt/app/oracle/product/10.2.0/crs_1/root.sh

rac2會報錯,無法建立vip
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
/opt/app/oracle/product/10.2.0/crs_1/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

在rac2上oracle執行,重新編譯
[oracle@rac2 ~]$ vi $ORA_CRS_HOME/bin/vipca
then
            LD_ASSUME_KERNEL=2.4.19
            export LD_ASSUME_KERNEL
       fi
       unset LD_ASSUME_KERNEL(新新增)

[oracle@rac2 ~]$ vi $ORA_CRS_HOME/bin/srvctl
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL(新新增)


配置ONS
[root@rac2 ~]# /opt/app/oracle/product/10.2.0/crs_1/bin/racgons add_config rac1:6251 rac2:6251
[root@rac2 ~]#/opt/app/oracle/product/10.2.0/crs_1/bin/oifcfg setif -global eth0/192.168.56.0:public eth1/10.0.0.0:cluster_interconnect
[root@rac2 ~]#/opt/app/oracle/product/10.2.0/crs_1/bin/vipca



資料庫軟體安裝
10g


解壓
oracle使用者下
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv < 10201_database_linux_x86_64.cpio
在database/下執行
./runInstaller








在rac1,rac2 使用root使用者執行
/opt/app/oracle/product/10.2.0/db_1/root.sh



rac1 oracle使用者
dbca配置ASM

































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

相關文章