(1) 安装redhat as5
把所有的编译包装上,但不配置dns,减少dns影响
以下(2),(3)步骤可以2选1
(2) 配置iscsitarget(iscsi服务器端)
不要使用xen内核启动,xen内核编译会出错
a. 编译安装iscsitarget
make
make install
b. 添加服务自启动
chkconfig --add iscsi-target
chkconfig iscsi-target on
c. 配置/etc/ietd.conf
(3) 因为了xen内核,所以没使用iscsi-target
在/var/lib/xen/images 添加share盘和share_1盘。修改/etc/xen/rac1在w后加上!号,表示可以共享。
disk = [ "tap:aio:/var/lib/xen/images/rac1.img,xvda,w", "tap:aio:/var/lib/xen/images/share.img,xvdb,w!", "tap:aio:/var/lib/xen/images/share_1.img,xvdc,w!" ]
如此修改/etc/xen/rac2,加盘share.img和share_1.img,修改配置文件
disk = [ "tap:aio:/var/lib/xen/images/rac1.img,xvda,w", "tap:aio:/var/lib/xen/images/share.img,xvdb,w!", "tap:aio:/var/lib/xen/images/share_1.img,xvdc,w!" ]
(4) 两台机器的ip设置如下(虚拟两块网卡):
192.168.1.13 rac1.example.com rac1
192.168.2.13 rac1-priv
192.168.1.23 rac2.example.com rac2
192.168.2.23 rac2-priv
下面两个是虚拟ip(不需要配置,安装oracle时候会配置上),都要写进/etc/hosts里
192.168.1.14 rac1-vip
192.168.1.24 rac2-vip
(5) 新建oracle用户
groupadd -g 555 dba
groupadd -g 556 oinstall
useradd -u 900 -g oinstall -G dba -d /home/oracle oracle
passwd oracle
(6) 配置ssh dsa方式无密码登录(rsa可以不用)
用ssh先登录一下rac1和rac2,.ssh目录就会自己创建
root的配置方式如下:
在rac1上执行:
cd /root/.ssh/
touch authorized_keys
ssh-keygen -t dsa
cat id_dsa >> authorized_keys
cat id_dsa.pub >> authorized_keys
scp authorized_keys rac2:/root/.ssh/
在rac2上执行:
cd /root/.ssh/
ssh-keygen -t dsa
cat id_dsa >> authorized_keys
cat id_dsa.pub >> authorized_keys
scp authorized_keys rac1:/root/.ssh/
oracle用户配置方式类似。
能达到rac1无密码连接rac1和rac2,rac2无密码连接rac1和rac2就可以。
(7) 补装几个包,配置repo库安装也可:
compat-db-4.2.52-5
openmotif-2.3.0-0
openmotif22-2.2.3-18
libaio-devel-0.3.106-3.2
sysstat-7.0.0-3.el5
unixODBC-2.2.11-7.1
unixODBC-devel-2.2.11-7.1
总共需要安装的包如下(包的小版本可能有区别):
binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
gcc-4.1.1-52
gcc-c++-4.1.1-52
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
(8) 配置rsh,rlogin,rexec
安装rsh-server-0.17-37
让服务自动启动
chkconfig rlogin on
chkconfig rsh on
chkconfig rexec on
配置root无密码连接,需要修改三个地方:
a. root新建/root/.rhosts文件
rac1 root
rac2 root
rac1-priv root
rac2-priv root
b. 修改/etc/hosts.equiv文件
rac1 root
rac2 root
rac1 oracle
rac2 oracle
rac1-priv root
rac2-priv root
rac1-priv oracle
rac2-priv oracle
c. 修改配置/etc/securetty
在最后加入三行
rlogin
rexec
rsh
(9) 修改内核参数和系统配置
a.修改内核参数(/etc/sysctl.conf)
# modify for oracle
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.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
b.设置使用文件数权限
修改/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
c.配置pam,修改安全限制
修改/etc/pam.d/login,添加以下两行
# modify for oracle
session required /lib/security/pam_limits.so
d.在/etc/rc.local中配置Hangcheck计时器
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
e.修改oracle用户下的profile文件
添加入.bash_profile
ulimit -u 16384 -n 65536
umask 022
(10) 安装jdk-1_5_0_14-linux-i586
在oracle用户下添加环境变量
# Java Path
CV_JDKHOME=/usr/java/jdk1.5.0_14; export CV_JDKHOME
(11) 新建oracle home目录:
/home/oracle/product/10.2.0
(12) 划分裸设备
手工可以这样做,但重启后会不存在。
raw /dev/raw/raw1 /dev/xvdb1 (OCR Location)
raw /dev/raw/raw2 /dev/xvdb2 (Voting Disk Location)
cd /dev/raw
chown oracle:oinstall *
我们配置到/etc/udev/rules.d/60-raw.rules
添加如下几句,其他的也可以类推
ACTION=="add", KERNEL=="xvdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="xvdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="raw*", WNER=="oracle", GROUP=="oinstall", MODE=="0664"
(13) 开始安装oracle cluster软件
xhost +
./runInstaller -ignoresysprereqs
# ORACLE
ORACLE_BASE=/home/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/crs; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
在rac2(remote机器运行root.sh)是最容易出的,问题有:
1) /home/oracle/product/10.2.0/crs/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
:
a.修改$CRS_HOME/bin/vipca文件
注释掉以下几行,注释后效果如下:
arch=`uname -m`
#if [ "$arch" = "i686" -o "$arch" = "ia64" ]
#then
# LD_ASSUME_KERNEL=2.4.19
# export LD_ASSUME_KERNEL
#fi
#End workaround
b.注释$CRS_HOME/bin/srvctl文件和$ORACLE_HOME/bin/srvctl文件
注释掉以下几行,注释后效果如下:
#Remove this workaround when the bug 3937317 is fixed
#LD_ASSUME_KERNEL=2.4.19
#export LD_ASSUME_KERNEL
2) The given interface(s), "eth0" is not public. Public interfaces should be used to configure virtual IPs.
解决方法:
图形界面上运行$CRS_HOME/bin/vipca,手工重新配置rac1-vip和rac2-vip。
su - oracle
su root
vipca
3) Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
解决方法:
重新运行sh root.sh
step1: rm -rf /var/tmp/.oracle
step2: cd /etc/oracle/scls_scr/rac2/oracle/
rm -rf cssfatal
step3: re-run sh root.sh
step4: 如果还不成功的话,基本就是共享磁盘有问题。
4) 最后的3个检查不成功
不成功也没关系,其实它是运行 $CRS_HOME/cfgtoollogs/configToolAllCommands
手工一步步执行,排除错误达到下面的效果就可以了。
错误的命令也会记录在$CRS_HOME/cfgtoollogs/configToolFailedCommands
[oracle@rac1 cfgtoollogs]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
5) 自动:$ORA_CRS_HOME/install/rootdelete.sh
$ORA_CRS_HOME/install/rootdeinstall.sh
手工:cluster安装过程中可能需要重新安装,如何彻底铲除cluster是一个关键
a. 用图形界面删除cluster软件,这样清除得比较彻底
也可以删除$CRS_HOME下的所有文件,有时候需要两步都要做。
b. cluster自启动修改
经常发现cluster是自己启动的,所以检查后发现在/etc/inittab最后有几行删除掉或注释掉。
h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1
c. 还有几个自启动调用的服务
/etc/init.d
init.evmd, init.cssd, init.crsd, init.crs删除掉就可以了。
/etc/rc2.d/K96init.crs
/etc/rc3.d/S96init.crs
/etc/rc5.d/S96init.crs
d. 还需要删除/etc/oracle下的所有文件
e. 还需要删除以下的文件
rm -rf /var/tmp/.oracle
f. 装了数据库还需要删除/etc/oratab
(14) 安装完软件后,修改环境变量如下:
# ORACLE
ORACLE_BASE=/home/oracle; export ORACLE_BASE
CRS_HOME=$ORACLE_BASE/product/10.2.0/crs; export CRS_HOME
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$CRS_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$CRS_HOME/bin:$PATH; export PATH
(15) 安装数据库软件,基本不会有什么问题,我们可以关注最后root.sh修改的文件
它主要是修改了/etc/oratab文件
(16) 划分裸设备
手工可以这样做,但重启后会不存在。
raw /dev/raw/raw1 /dev/xvdb1 (OCR Location)
raw /dev/raw/raw2 /dev/xvdb2 (Voting Disk Location)
cd /dev/raw
chown oracle:oinstall *
我们配置到/etc/udev/rules.d/60-raw.rules
添加如下几句,其他的也可以类推
ACTION=="add", KERNEL=="xvdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="xvdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="xvdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="xvdb5", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="xvdb6", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="xvdb7", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="xvdb8", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="xvdb9", RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add", KERNEL=="xvdb10", RUN+="/bin/raw /dev/raw/raw9 %N"
ACTION=="add", KERNEL=="xvdb11", RUN+="/bin/raw /dev/raw/raw10 %N"
ACTION=="add", KERNEL=="xvdb12", RUN+="/bin/raw /dev/raw/raw11 %N"
ACTION=="add", KERNEL=="xvdc1", RUN+="/bin/raw /dev/raw/raw12 %N"
ACTION=="add", KERNEL=="xvdc2", RUN+="/bin/raw /dev/raw/raw13 %N"
ACTION=="add", KERNEL=="xvdc3", RUN+="/bin/raw /dev/raw/raw14 %N"
ACTION=="add", KERNEL=="xvdc5", RUN+="/bin/raw /dev/raw/raw15 %N"
ACTION=="add", KERNEL=="xvdc6", RUN+="/bin/raw /dev/raw/raw16 %N"
ACTION=="add", KERNEL=="raw*", WNER=="oracle", GROUP=="oinstall", MODE=="0664"
(17) 升级到10.2.0.3 (p5337014_10203_Linux-x86.zip)
图形界面安装完后
crs
(1) crsctl stop crs
(2) $CRS_HOME/install/root102.sh
db
(1) $ORACLE_HOME/root.sh
(18) 安装数据库
用oracle用户
运行netca
如果忘记配置,dbca后,在建库的过程中会要求你配置
此时配置需要注意几点:
step1. 配置过程中会出现listener起不来的情况,先完成配置后,手工oracle用户lsnrctl start,
然后在root用户下crsctl stop crs,再crsctl start crs
step2. 把文件从rac1拷贝到rac2
scp listener.ora.rac* tnsnames.ora rac2:/home/oracle/product/10.2.0/db_1/network/admin/
阅读(2141) | 评论(1) | 转发(0) |