RHEL5.4+openfiler2.3+oracle11g rac+asm集群数据库配置全过程
一、集群的系统环境:
1、全部使用虚拟机,64位win7上,用vmware7配置出2台RHEL5.4,+1台openfiler2.3。
2、RHEL5.4:硬盘容量30G,双虚拟网卡,分别对应主机上两张虚拟网卡。
3、openfiler2.3:硬盘容量60G,单虚拟网卡,系统占据10G左右,其他容量空白,不格式化,不挂载。
4、网络配置:(1)、rac集群需要两个不同的网络,公有网络和私有网络(public network and private network),我第一次是两个网络彻底隔离在虚拟系统里面,第二次公有网络为单位局域网,私有网络为独立网络,办法就是公有网络的IP与单位局域网的IP在同一网段,并且公有网络的网卡连接方式改为桥接;
(2)考虑还是记录开放方式下得集群吧,这样比封闭方式的详细一些;
(3)修改电脑主机上的虚拟网卡,vmnet1虚拟网卡对应的虚拟机里面的网卡为桥接方式,直接接入主机物理网卡,所以vmnet1虚拟网卡其实没有用到,vmnet8为私有网络入口,这个ip地址需要更改,我使用的是10.0.0.141,掩码255.0.0.0。这样只要虚拟机里面的网卡配置正确,基本上两个网络就可以正确建立;
(4)RHEL5.4内,识别的网卡名称一般式eth0和eth1,虚拟系统内,网卡配置:eth0为桥接方式,eth1链接到vmnet8,所以进入系统后,ip地址分别是:eth0 100.XXX.XXX.150,255.255.255.0;eth1 10.0.0.138,255.0.0.0。第二台RHEL5.4,ip地址分别是:eth0 100.XXX.XXX.151,255.255.255.0;eth1 10.0.0.139,255.0.0.0。
(5)关于存储链接,我还是习惯于附加在私有网络上,所以openfiler2.3系统的那张虚拟网卡地址:10.0.0.140,255.0.0.0。这样做法,也有好处,附加的位置是私有网络,具有一定的数据安全保密性,这样就不需要在iscsi target设置上添加登录控制了,配置更简单。
(6)检测网络连通性,两台RHEL5.4需要检测两台RHEL5.4之间是否连通,与电脑主机之间是否连通,与openfiler2.3是否连通。
二、配置存储机
1、根据的教材是:vmware 华南技术中心出的openfiler2.3 iscsi设置图文教程。
2、因为这个教程网上肯定会有的,所以我这里的记录的比较简单。
3、第一步:建立physical volume分区,选择 上方的volumes>右边的block devices,然后出现create a partition in /dev/sdb,注意选择physical volume,容量大小一般默认,也就是所有的空余容量,然后点击create。
4、第二步:建立卷组,选择 上方的volumes>右边的volume groups,出现create a new volume group,要求输入volume group name,这个没有特殊要求的,可以随便输入,volume group name下面是刚刚创建的physical volumes列表,勾选上,然后点击add volume group。
5、第三步:建立iscsi逻辑卷,选择上方的volumes>右边的add volume,然后出现create a volume in "你上一步输入的volume group name",在下面的空白框内,依次输入 volume name(名称随便)、volume description(可选,可以选择不输入)、required space(一般是最大容量)、filesystem/volume type(要求必须是iscsi),点击create。
6、第四步:增加iscsi target IQN,并映射TARGET IQN。选择上方的volumes>右边的iscsi targets,这时候,出现add new iscsi target,有可能add按钮是灰色的,不能点击,如果是灰色的话,选择上方的services,出现一个服务列表,注意iscsi target server的status状态,如果是disabled,那么点击对应的右边的enable,将iscsi target server服务启动。然后再回到iscsi targets中,这时候add按钮已经可用,直接点击,然后选择这个界面中得lun mapping,不要改动出现的界面的设置,直接点击map。
7、到这里就已经完成了,教程后面的其他部分是增加登录控制用得,最好不要启动,因为登录控制比较负责,还有可能会涉及到linux内部的配置文件。
三、对RHEL5.4进行grid安装前准备工作
1、集群数据库安装最关键其实就是安装前的准备工作,准备工作完成正确无误,基本上安装过程就没有太大的问题。
2、为了以后安装的方便,这后面的记录,将全部记录执行的命令,并且没有前面的命令提示符,以方便以后安装的时候,可以直接复制相应的命令和内容到SSH中执行。
3、这些都是准备工作,有些工作是不分前后的,有些还是有顺序的才行。
4、为了方便操作,我一般使用的是windows下的secureCRT,用ssh2的方式连接到RHEL5.4的虚拟机。所有需要创建的账户,密码全部统一使用为123456。
以下记录开始进行实质性操作:
5、为了操作的方便,有时候可能需要显示RHEL5.4虚拟机的桌面,需要对RHEL5.4进行配置,配置如下:
(1)改变defaults.conf文件权限,默认是只读,因为需要修改文件内容,所以要修改权限。
chmod 700 /usr/share/gdm/defaults.conf
(2)做如下配置---编辑/usr /share/gdm/defaults.conf
Enable=true
DisplaysPerHost=10
Port=177
AllowRoot=true
AllowRemoteroot=true
AllowRemoteAutoLogin=false
(3)做如下配置---编辑 /etc/gdm/custom.conf
[xdmcp]
Enable=1
(4)做如下配置---编辑 /etc/inittab (不要修改原来设置,在最后新增一行如下记录)
x:5:respawn:/usr/sbin/gdm
(5)重新加载GNOME桌面配置
init 3 ; init 5
到此完成,xmanager3的xbrowser就会主动发现这两个可以进入的桌面了,只要指定正确连接的IP地址即可进入。
6、修改RHEL5.4的网卡ip地址。按照上面的记录修改,由于ip地址尚未正确配置,可能无法从windows中连接到RHEL5.4虚拟机,所以需要在RHEL5.4系统界面中直接操作。
7、RHEL5.4的IP地址配置:
从RHEL5.4桌面打开终端,执行system-config-network,打开网络配置界面,配置如下:
| RAC1 | RAC2 | ||
| Eth0 | Eth1 | Eth0 | Eth1 |
IP地址 | 100.100.100.150 | 10.0.0.138 | 100.100.100.151 | 10.0.0.139 |
网络掩码 | 255.255.255.0 | 255.0.0.0 | 255.255.255.0 | 255.0.0.0 |
配置完成后,需要将配置执行应用,方法有两个:方法1,先执行保存,将网卡关闭,然后再将网卡激活,完成;方法2,执行保存,退出配置界面,执行service network restart,将网卡服务重启,完成。
8、两台RHEL5.4配置完成后,就可以使用secureCRT从windows连接到RHEL虚拟机。
9、以后的操作如无特别说明,全部在windows的secureCRT中操作。注意有两点:(1)windows上要安装xmanager3,并且打开Xmanager - Passive,接受屏幕显示信号;(2)在secureCRT中设置DISPLAY值,export DISPLAY=10.0.0.141:0.0,将显示信号指向到windows的xmanager3上。
10、创建用户,执行system-config-users,进入用户管理界面,添加用户grid或者oracle,添加用户组:oinstall、dba、asmdba、asmadmin,4个用户组,并且grid和oracle用户的主组都是oinstall,最好是grid和oracle用户都有这4个用户组,还要注意两台RHEL5.4之间,grid、oracle用户的用户代码及4个用户组组代码,都一样,如果不一样的话,grid安装会检测出代码不一致的错误。
11、添加/etc/hosts的IP地址解析,打开/etc/hosts,添加如下(注意不要修改原有内容):
#public
100.100.100.150 rac1.test rac1
100.100.100.151 rac2.test rac2
#private
10.0.0.138 rac1-priv.test rac1-priv
10.0.0.139 rac2-priv.test rac2-priv
#vitual
100.100.100.152 rac1-vip.test rac1-vip
100.100.100.153 rac2-vip.test rac2-vip
#clusterip
100.100.100.154 rac-cluster.test rac-cluster
保存。
12、修改grid和oracle用户的登录脚本:
grid用户,打开/home/grid/.bash_profile,添加如下:
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=/u01/app/grid/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin:/sbin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
if [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
执行保存。grid用户脚本,主要影响grid的安装。最好影响的是oracle_base和oracle_home两个参数,现在的方法是两个参数,分别从根目录起就是两个完全分开的目录,这是由于在grid安装过程中,oracle_home目录的权限会被安装程序更改,从原来的grid.oinstall改到了root.oinstall,这个影响到底如何,不知道,所以将两个目录分开比较明智。在grid安装过程中,需要提供oracle_base和software_location的位置,这里有个要求,就是software_location不能是oracle_base的子目录。所以以后有时间还要测试下,oracle_base=/u01/app/oracle和oracle_home=/u01/app/grid/product/11.2.0/db_1这样配置,是否能成功。
oracle用户,打开/home/oracle/.bash_profile,添加如下:
export ORACLE_BASE=/u03/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin:/sbin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
执行保存。oracle用户脚本主要影响oracle的安装,这个要求就是oracle_home必须是oracle_base的子目录,和grid用户脚本完全相反。
这两个脚本所有内容都相当重要,在PATH参数这块,我特意增加了/usr/sbin和/sbin两个值,这是因为很多执行程序在都这两个目录中,而RHEL5.4默认没有将这两个目录放到PATH中。
13、创建用户登录脚本中指定的几个目录,及安装程序放置目录。复制安装程序,并且解压缩。
执行:
su
cd /
mkdir /u01
mkdir /u02
mkdir /u03
chown -R grid.oinstall /u01
chown -R grid.oinstall /u02
chown -R oracle.oinstall /u03
mkdir /softgrid
mkdir /softoracle
mkdir /media/dvd
mount /dev/hdc /media/dvd
cd /media/dvd
cp linux_11gR2_grid.zip /softgrid
cp linux_11gR2_database_1of2.zip /softoracle
cp linux_11gR2_database_2of2.zip /softoracle
cd /softgrid
unzip linux_11gR2_grid.zip
cd /softoracle
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
chown -R grid.oinstall /softgrid
chown -R oracle.oinstall /softoracle
14、修改内核参数,打开/etc/sysctl.conf,添加如下:
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
保存,然后执行sysctl -p,应用刚刚给出的内核参数。
15、修改grid和oracle用户的资源限制,打开/etc/srcurity/limits.conf,添加如下:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
执行保存。
16、增加用户资源限制映像,打开/etc/pam.d/login,添加如下:
session required pam_limits.so
执行保存。
17、安装需要的软件包:
rpm -Uvh setarch-2.0-1.1.i386.rpm
rpm -Uvh make-3.81-3.el5.i386.rpm
rpm -Uvh glibc-2.5-42.i386.rpm
rpm -Uvh libaio-0.3.106-3.2.i386.rpm
rpm -Uvh compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -Uvh kernel-headers-2.6.18-164.el5.i386.rpm
rpm -Uvh glibc-headers-2.5-42.i386.rpm
rpm -Uvh glibc-devel-2.5-42.i386.rpm
rpm -Uvh compat-gcc-34-3.4.6-4.i386.rpm
rpm -Uvh compat-gcc-34-c++-3.4.6-4.i386.rpm
rpm -Uvh libgomp-4.4.0-6.el5.i386.rpm
rpm -Uvh gcc-4.1.2-46.el5.i386.rpm
rpm -Uvh libXp-1.0.0-8.1.el5.i386.rpm
rpm -Uvh openmotif-2.3.1-2.el5.i386.rpm
rpm -Uvh compat-db-4.2.52-5.1.i386.rpm
rpm -Uvh libaio-devel-0.3.106-3.2.i386.rpm
rpm -Uvh sysstat-7.0.2-3.el5.i386.rpm
rpm -Uvh unixODBC-2.2.11-7.1.i386.rpm
rpm -Uvh unixODBC-devel-2.2.11-7.1.i386.rpm
18、关闭NTP时间同步服务,关闭时间:
service ntpd stop
chkconfig ntpd off
rm /etc/ntp.conf
19、配置grid用户和oracle用户的SSH连接,在安装过程中,其实可以用安装程序自动配置,我这里是为了记录的完整性,处理过程如下:
用grid用户登录:
RAC1和RAC2上分别运行:ssh-keygen -t rsa
RAC1上运行:cd /home/oracle/.ssh
ssh rac1 cat /home/grid/.ssh/id_rsa.pub>>authorized_keys
ssh rac2 cat /home/grid/.ssh/id_rsa.pub>>authorized_keys
scp authorized_keys rac2:/home/grid/.ssh/authorized_keys
RAC1运行:ssh rac2 date
RAC2运行:ssh rac1 date
用oracle用户登录:
RAC1和RAC2上分别运行:ssh-keygen -t rsa
RAC1上运行:cd /home/oracle/.ssh
ssh rac1 cat /home/oracle/.ssh/id_rsa.pub>>authorized_keys
ssh rac2 cat /home/oracle/.ssh/id_rsa.pub>>authorized_keys
scp authorized_keys rac2:/home/oracle/.ssh/authorized_keys
RAC1运行:ssh rac2 date
RAC2运行:ssh rac1 date
执行结果,如果不出要求输入密码的提示,那么配置就完成了。
在网上其他资料里面,有些资料说得是.ssh这个目录需要手动建立,并且权限还需要修改,其实不需要,ssh-keygen会主动创建目录的,而且创建后的文件权限,很大的可能是不需要修改,但还是需要注意下。
id_rsa和id_rsa.pub的权限分别是600和644。
20、安装iscsi客户端:
rpm -Uvh iscsi-initiator-utils-6.2.0.871-0.10.el5.i386.rpm
连接iscsi target,并登录:
iscsiadm -m discovery -t sendtargets -p 10.0.0.140:3260
iscsiadm -m node -l
对iscsi磁盘分区
fdisk /dev/sdb
分成3个分区。
四、grid安装
1、安装ASMLIB:
将oracleasm的软件包复制到RHEL5.4内,并进行安装:
rpm -ivh oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
rpm -ivh oracleasmlib-2.0.4-1.el5.i386.rpm
rpm -ivh oracleasm-support-2.1.7-1.el5.i386.rpm
也可以这样运行:
rpm -ivh oracleasm*
注意,oracleasm的包与系统内核版本有关,下载的话,注意先获取内核版本,再下载相应版本的oracleasm软件包。
2、配置oracleasm:
oracleasm有几个选项,可以看下相应的作用。
配置过程如下:
oracleasm configure #显示目前的配置情况。
oracleasm configure -i #进去oracleasm配置。
进入oracleasm配置后,输入的内容依次是:
grid
asmadmin
y
y
配置完成。(这步配置,要注意哈,默认选项是不对的,需要修改,务必看清楚前面的英文提示后,再输入值)。
启动oracleasm:oracleasm init
创建asm磁盘:
oracleasm createdisk VOL1 /dev/sdb1
oracleasm createdisk VOL2 /dev/sdb2
oracleasm createdisk VOL3 /dev/sdb3
#注意,提示的设备,好像必须是分区,直接的磁盘设备不行,必须先分区。如果出现问题,1是可能设备不存在,重新检查设备,确保设备存在;2是有可能相应的设备已经被创建成ASM磁盘,那么强制重命名设备:oracleasm renamedisk -f /dev/sdb1 VOL1。
列出所有ASM磁盘:oracleasm listdisks #所有磁盘的别名全部列出,配置成功。
3、用grid用户登录,启动grid安装程序:
export DISPLAY=10.0.0.141:0.0
cd /softgrid/grid
./runInstaller
4、这个具体的安装过程,由于全是图形界面,这里不方便记录,基本上没有很多需要注意的地方。
在SCAN参数界面上,不需要给SCAN确定IP值,这是因为在/etc/hosts中,已经添加好了。
typical和advanced选项间,这两个选项其实没有太大的区别,但是我觉得还是advanced选项要好一些。
5、在grid安装过程中,要注意:
(1)orainst.sh和root.sh脚本的执行过程,这是一个串行操作,也就是说要按如下顺序操作:
rac1 orainst.sh
rac2 orainst.sh
rac1 root.sh
rac2 root.sh
这样的顺序进行操作,而且必须是上个操作完成之后,下个操作才能进行,不能并发进行。
(2)执行完脚本后,紧接着就是network config assistant,这个步骤一般来说是肯定会失败的,具体原因还不清楚,不过这里可以忽略过去,完成安装后才进行操作。
(3)grid安装的最后一步,也会出现错误,这里出现的错误一般情况下,是由于/etc/hosts中添加了scan的ip值,才导致这个错误的出现,可以忽略。
6、grid完成后,由于中间有些错误,需要进行下操作:
执行netca
添加listener监听程序,这里注意监听器的名字必须是默认的“LISTENER”,否则后面oracle安装过程要出错。
7、到这里grid安装完成,已经可以重启了。在虚拟机中,有点很喜剧的细节,要考虑到,在相当多的时候,机器重启后,grid是没有启动成功的,crs_stat和crsctl stat res -t命令都会提示没有连接到crs 守护进程,不要慌张,这个不是启动失败,而是由于虚拟机资源太少导致集群启动相当缓慢,保守估计在系统启动完成后,还需要3分钟到5分钟左右时间来启动各项集群资源。集群资料里面gsd和o4jd是没有启动的,这个正常,默认就是不启动的,没有影响。
五、oracle安装:
1、用oracle用户登录:
export DISPLAY=10.0.0.141:0.0
cd /softoracle/database
./runInstaller
2、具体安装过程没有太大问题,主要是对于控制文件和联机重做日志的位置,这个好像无法手动控制,我在修改了这两个位置后,就提示不正确,无法安装。我取消了这两个手动指定的位置后,就安装正常了,
3、最后一次安装没有出现memory_target is not supported in this system,没有出现这个错误,如果有个错误,说明临时空间不够,解决办法:
修改/etc/fstab:
tmpfs这行中得default修改成default,size=4G
然后执行:
mount -o remount /dev/shm
4、安装就基本完成了。
六、最后总结:
1、不知道为什么,我创建完成后,在重启机器后,集群启动没有问题,但是数据库没有自动启动。
启动办法:srvctl start database -d orcl
2、RAC集群安装过程,最关键还是前期的准备工作,准备工作完成的好,安装过程中基本没有问题,或者只有一些小问题。
3、后面还要进一步,记录关于各种检测调整命令。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9606200/viewspace-745661/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9606200/viewspace-745661/