主要讲最重要的步骤,对于如何用vmware搭建cluster环境,oralce的基本安装具体细节请参考我以前我的cluster环境搭建的文章,Oracle可参照oralce安装文档:
一:环境预备:
a.预备一台ia服务器1Gmem,scsi硬盘,piii1GX2(也可以用pc,时间可能花很长)
b.redhat 2.1 server
c.oralce 9i for Linux
e.vmware gx 2.1 for linux
二.vmware cluster环境(我习惯用vmware for linux,感觉linux 下的io要比win强)
a.服务器上安装好redhat 2.1 linux
b.装vmware gx 2.1 for linux,配置好和控制机的网络
c.在vmware 下虚拟出3个nodes的linux系统。
d.安装node 1的linux操作系统
e.将安装好的node1的操作系统的vmware文件拷贝到node2.,node3的对应目录下,启动node2,node3,配置系统(注重修改系统的主要参数如hosts文件),启动3 nodes检查系统运行正常否。
f:启动node1,在系统中建两个共享盘,共享盘a:5G,共享盘2G,同时修改3 nodes的vmware的配置文件,启动3 nodes,检查每个node保证检测到共享盘 /dev/sdb /dev/sdc.
g:在3个nodes中配上两个网卡,分别做好内网和外网的网络地址
保证网络的通畅。
三.oralce RAC的系统环境预备
a.添加oralce用户并修改用户的env,如下例:
PATH=$PATH:$HOME/bin
eXPort PATH
unset USERNAME
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/92
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/
oracm/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/
rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export ORACLE_SID=DB1
在不同的node下修改各自的ORALCE_SID和node对应
b.修改系统kernel的参数
c.分别修改每个nodes的hosts,加如所有node的name和ip
例:
192.168.3.1 node1
192.168.1.191 node1-pub
192.168.3.2 node2
192.168.1.192 node2-pub
192.168.3.3 node3
192.168.1.193 node3-pub
d.建立各个node的信任机制
在每个node中编辑host.equiv文件
node1 oracle
node2 oracle
node3 oracle
e:确保rsh,rlogin服务启动,默认不启动。
f:心跳检测,新的9.2.4支持 hangcheck-timer.o模块,在redhat 2.1中默认不支持的,需要升级内核,所以我采用的是watchdog,编辑/etc/rc.local每次启动时启动watchdog
insmod softdog soft_margin=60
g: 共享磁盘库的分区预备 在oralce 9i,中支持ocfs和raw文件系统,在本安装还是采用沿用的raw设备文件,raw设备对同一个lun中的分区有限制所以分区在两个磁盘中:,关闭node2,node3,在node1中分区
分别执行fdisk /dev/sdb fdisk /dev/sdc,分好后编辑各个node中的/etc/sysconfig/rawdevices的raw映射条目,并启动raw加载服务
service rawdevices start
下面可供参考的分区方法:
/dev/raw/raw1 /dev/sdb1 ;120M
/dev/raw/raw2 /dev/sdb2 ;120M
/dev/raw/raw3 /dev/sdb5 ;8M
/dev/raw/raw4 /dev/sdb6 ;1000M
/dev/raw/raw5 /dev/sdb7 ;120M
/dev/raw/raw6 /dev/sdb8 ;120M
/dev/raw/raw7 /dev/sdb9 ;200M
/dev/raw/raw8 /dev/sdb10 ;120M
/dev/raw/raw9 /dev/sdb11 ;120M
/dev/raw/raw10 /dev/sdc5 ;200M
/dev/raw/raw11 /dev/sdc6 ;120M
/dev/raw/raw12 /dev/sdc7 ;120M
/dev/raw/raw13 /dev/sdc8 ;120M
/dev/raw/raw14 /dev/sdc9 ;120M
/dev/raw/raw15 /dev/sdc10 ;120M
/dev/raw/raw16 /dev/sdc11 ;120M
/dev/raw/raw17 /dev/sdc12 ;300M
/dev/raw/raw18 /dev/sdc13 ;300M
/dev/raw/raw19 /dev/sdc14 ;300M
spfile1=/dev/raw/raw3
system1=/dev/raw/raw4
users1=/dev/raw/raw5
tools1=/dev/raw/raw6
temp1=/dev/raw/raw7
control1=/dev/raw/raw8
control2=/dev/raw/raw9
indx1=/dev/raw/raw10
redo1_1=/dev/raw/raw11
redo1_2=/dev/raw/raw12
redo2_1=/dev/raw/raw13
redo2_2=/dev/raw/raw14
redo3_1=/dev/raw/raw15
redo3_2=/dev/raw/raw16
undotbs1=/dev/raw/raw17
undotbs2=/dev/raw/raw18
undotbs3=/dev/raw/raw19
四: oracle的RAC的安装
1.Oracle9i Cluster Manager 的安装
a.放入oralce9i的光盘,挂上光区运行./runInstaller启动安装,和默认oracle安装,
b.在Available ProdUCts中选择:"Oracle Cluster Manager 9.2.0.1.0"
c. public的node信息输入
node1-pub
node2-pub
node3-pub
d. private的 node信息输入
node1
node2
node3
e.watchdog的参数默认
f.Quorum 磁盘输入: /dev/raw/raw1(不能直接输分区)
g:oralce 安装会自动安装3个nodes,确保各node安装正确
2. 启动 Oracle9i Cluster Manager
a.在每个node以root用户登陆
b.执行:
# export ORACLE_HOME=/oracle/92
# export PATH=$PATH:$ORACLE_HOME/oracm/bin
# $ORACLE_HOME/oracm/bin/ocmstart.sh
启动成功后用ps检查
# ps -ef grep oracm
root 15249 1 0 Nov08 pts/2 00:00:00 oracm
root 15251 15249 0 Nov08 pts/2 00:00:00 oracm
root 15252 15251 0 Nov08 pts/2 00:00:00 oracm
root 15253 15251 0 Nov08 pts/2 00:00:00 oracm
root 15254 15251 0 Nov08 pts/2 00:00:04 oracm
root 15255 15251 0 Nov08 pts/2 00:00:00 oracm
root 15256 15251 0 Nov08 pts/2 00:00:00 oracm
root 15257 15251 0 Nov08 pts/2 00:00:00 oracm
root 15258 15251 0 Nov08 pts/2 00:00:00 oracm
root 15298 15251 0 Nov08 pts/2 00:00:00 oracm
root 15322 15251 0 Nov08 pts/2 00:00:00 oracm
root 15540 15251 0 Nov08 pts/2 00:00:00 oracm
c:检查每个node,如不成功检查log日志分析原因
3.oralce 数据库的安装
a:挂上光盘运行安装程序,按照自己需求定义自己的安装类型,确保去掉建库选项
b.注重是当选择
shared configuration file name 输入/dev/raw/raw2
c.这个过程根据机器性能要花一段时间,oracle会自动分发到没个节点(漫长):(
4. 数据库的创建
a.创建数据库前确保oracm和gsdctl正常启动
b.创建raw设备的连接,方便建库例:
ln -s /dev/raw/raw3 /oracle/oradata/DB/spfileDB.ora
ln -s /dev/raw/raw8 /oracle/oradata/DB/control01.ctl
ln -s /dev/raw/raw9 /oracle/oradata/DB/control02.ctl
ln -s /dev/raw/raw10 /oracle/oradata/DB/indx01.dbf
ln -s /dev/raw/raw4 /oracle/oradata/DB/system01.dbf
ln -s /dev/raw/raw7 /oracle/oradata/DB/temp01.dbf
ln -s /dev/raw/raw6 /oracle/oradata/DB/tools01.dbf
ln -s /dev/raw/raw17 /oracle/oradata/DB/undotbs01.dbf
ln -s /dev/raw/raw18 /oracle/oradata/DB/undotbs02.dbf
ln -s /dev/raw/raw19 /oracle/oradata/DB/undotbs03.dbf
ln -s /dev/raw/raw5 /oracle/oradata/DB/users01.dbf
ln -s /dev/raw/raw11 /oracle/oradata/DB/redo01.log
ln -s /dev/raw/raw12 /oracle/oradata/DB/redo02.log
ln -s /dev/raw/raw13 /oracle/oradata/DB/DB_redo2_2.log
ln -s /dev/raw/raw14 /oracle/oradata/DB/DB_redo3_1.log
ln -s /dev/raw/raw15 /oracle/oradata/DB/DB_redo2_1.log
ln -s /dev/raw/raw16 /oracle/oradata/DB/DB_redo3_2.log
c.在node1上启动dbca,建库采用标准的建库注重如下
Type of database: 选择:"Oracle Cluster Database"
node 全部复选:"node1,node2,node3"
d.建库前请确保连接和raw设备一一对应
e.建库完成确定。
五 检测RAC的状态
#$ srvctl status database -d DB
Instance DB1 is running on node node1
Instance DB2 is running on node node2
Instance DB3 is running on node node3
六 RAC的真正内涵
默认的RAC的监听器配置不支持负载均衡,自动切换的需修改客户端的tnsnames.ora,添加
LOAD_BALANCE = on和FAILOVER = on选项
我的示例:
DB.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node3)(PORT = 1521))
(LOAD_BALANCE = on)
(FAILOVER = on)
)
(CONNECT_DATA =
(SERVICE_NAME = DB.COM)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
)
)
)
本文完,由于本人能力有限,错误难免,希望共同探讨。