分享

vmware+linux+oracle10g rac全过程(3) - 主节点设置

 忧郁_小刚 2011-01-16
1,修改虚拟机的配置

在配置linux 系统之前,首先到主节点RAC1目录下,打开.vmx 文件,添加下列内容:

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk"

scsi1:3.deviceType = "disk"

scsi1:4.deviceType = "disk"

2,编辑/etc/hosts文件,添加如下内容:

192.168.1.100 rac1

192.168.1.101 rac2

192.168.1.200 rac1-vip

192.168.1.201 rac2-vip

192.168.2.100 rac1-priv

192.168.2.101 rac2-priv

这里简要说一下,192.168.1.100/101是在安装操作系统时在第一块网卡上配置好的,192.168.2.100/101是在安装操作系统时在第二块网卡上配置好的,至于192.168.1.200/201地址只用在/etc/hosts文件中指定即可,不用编辑到任何网卡,因为它只是作为虚拟IP地址在ORACLE RAC中使用。至于第三块网卡,因为我设定的动态IP获取方式,所以在这里用不到。

3,创建组oinstall,dba,用户oracle

[root@rac1 ~]# groupadd oinstall

[root@rac1 ~]# groupadd dba

[root@rac1 ~]# useradd -d /home/oracle -g oinstall -G dba oracle

设置oracle 用户密码(密码也设为oracle)

[root@rac1 ~]# passwd oracle

Changing password for user oracle.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

4,开通FTP功能(因为系统默认并没有打开FTP功能,这里需要人为的设置一番,在这个地方,就要用到我们前面添加的第三块网卡的动态获取IP功能)

4.1,启用第三块网卡功能:

通过ifconfig eth2可以看到第三块网卡自动获取的IP地址10.10.10.150,和我所使用笔记本的IP地址处于同一网段,且默认路由都设置为10.10.10.254,ping路由没有问题,在这种情况下,就能实现从本机到虚拟机的FTP互访。可能有人觉得奇怪,为什么要设定为动态获取,直接指定10.10.10.0网段的IP地址不就可以了吗?因为整个实验进度会很长,实验环境会随时发生变化,有时候在单位做实验,有时候在家里做实验,有时候又是在外面的茶楼、酒吧做实验,本机的IP地址跟路由都是不断变化的,有时候是10.10.10.0网段,有时候是192.168.1.0网段,有时候是其他网段,为了每次跟本机自适应来实现FTP功能的互访,所以设置第三块网卡为自动获取IP显得尤为重要。至于默认网关也经常发生变化,其实只需要通过一条命令route add/delete default gw x.x.x.x来进行默认路由的修改就可以了。

4.2,通过执行service vsftpd start来启动ftp功能,然后来到/etc/vsftpd目录,这里我们要编辑两个文件,分别是ftpusers和user_list:

4.3,下面这幅图显示的是/etc/ftpusers的内容,我们需要做的是在“root”字样前面添加注释符,通过这种手段来打开root用户对ftp功能的使用。同理,需要编辑的文件还有user_list:

通过编辑这两个文件,我们就可以在windows下以root用户登陆到虚拟机里同一网段的linux系统下,第三块网卡的使命就在于此。

4.4,FTP功能演示,这里我们简单上传一个文本文件:

1,修改oracle用户的初始化参数文件

[root@rac1 ~]# vi /home/oracle/.bash_profile

增加如下内容:

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/opt/ora10g

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORACLE_SID=RACDB1

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

umask 022

2,创建/opt/ora10g目录,要注意该目录所有者或oracle用户的权限

[root@rac1 ~]# mkdir /opt/ora10g

由于该目录主要由oracle 用户操作,因此我们将其所有者改为oracle

[root@rac1 ~]# chown oracle.oinstall /opt/ora10g

3,配置内核参数

[root@rac1 ~]# vi /etc/sysctl.conf

增加或修改下列内容

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

[root@rac1 ~]# sysctl -p

让设置生效

4,提高Oracle用户的shell限制

设置oracle 使用的文件数权限

[root@rac1 ~]# vi /etc/security/limits.conf

增加下列内容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

修改安全限制

[root@rac1 ~]# vi /etc/pam.d/login

增加:

session required /lib/security/pam_limits.so

配置Hangcheck 计时器

[root@rac1 ~]# vi /etc/rc.local

增加:

modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180

5,磁盘分区

通过fdisk -l可以看看所有磁盘的状态,如果前期裸设备规划正确的话,在诸如/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde下面是看不到任何分区信息的,这也表明这些磁盘都是干净的磁盘,不像/dev/sda那样不干净(有了文件系统)。下面我们要对/dev/sdb到/dev/sde的四块磁盘进行分区,分区过程如下图所示(这里以/dev/sdb为例,其他磁盘操作类似):

经过这样的步骤,裸设备就创建好了。之所以称之为裸设备,就是因为自身不带任何文件系统,如下图所示:

到这个地方,要跟前面的文章首尾呼应一下了。把前面的那副图片专门提出来说明一下:

在这个地方,我取消了/dev/sdb到/dev/sde前面小方框里面的勾,之所以这样做,就是为这个地方的磁盘分区做准备的。取消那个地方的勾和不取消是有着很大关系的,如果不取消的话,在磁盘分区的时候会出现什么状况?系统会提示你这块盘上面已经分好区不用你再分了!如果你强行要分区,那么就必须把之前的分区信息给删除掉重新分配。如果这时采取这样的动作,那么危险就来了,在下一刻你关闭系统、重新启动的时候系统会报告一个严重错误,说系统磁盘所属卷组受到了严重破坏,然后系统无法启动。

分析一下为什么会出现这样的情况,如果我们在系统安装的时候没有取消掉/dev/sdb到/dev/sde前面小方框里面的勾,那么相当于我们用于安装操作系统的磁盘从一个变成了五个,虽然/dev/sdb到/dev/sde没有直接参与操作系统部分的安装,但是他们已经和/dev/sda这块盘被一起划分到了同一个卷组,因此也自动的获得了分区信息。在磁盘分区这个阶段,如果再对包括/dev/sdb到/dev/sde这几块盘进行分区信息的重建,那么就破坏了原有卷组信息。举个简单的例子,一个银行有一个金库,打开这个金库大门需要五把钥匙,五把钥匙分别放在五个人手里,这五个人都是银行的核心职工,这样做当然是为了提高安全性。试想假如有一天同时丢了四把钥匙,那仅剩的一把钥匙自然是不能打开金库大门的。在安装linux操作系统的时候我们本来只需要一块硬盘来与之发生关联,但是现在我们让其他四块磁盘也参与了进来,在实验过程中又变相的毁掉了那四块磁盘,自然系统就发生紊乱了。

磁盘分区过程完毕之后,下面要来到主节点设置的最后一个步骤:打补丁。之所以把这部分单独罗列出来,因为打补丁在整个实验过程中的重要地位不容忽视。很多时候,无论是windows操作系统还是unix操作系统,我们在进行某项重要实验的时候,总是发生一些莫名其妙的错误,让你不明白到底疏漏了什么地方。其实每到这种情况,尤其是在ORACLE RAC或者HA环境部署情况下,关注系统补丁是否安装完整变得很重要。
工作中接触UNIX多一些,所以这方面的感触也多一些,补丁,无论是操作系统补丁还是软件补丁,对生产或者应用,对安全性或者功能性都很重要。为什么要做到面面俱到,尤其是在打补丁方面更不能忽略每一个细节,这对整个实验过程的顺利进行实在太过重要,因此下面专门用完整的篇幅来介绍vmware+linux+oracle rac环境下系统补丁或者数据库补丁的安装。
满足linux操作系统下ORACLE RAC的搭建,主要要打两种类型的补丁,一种是系统内核补丁,一种是满足于ORACLE数据库的补丁。对于本次实验而言,所需的大部分补丁可以在以下两个链接上下载:
除此之外,我们还需要额外的下载两、三个补丁,否则从链接地址上下载的补丁不能完全安装好。值得注意的是,在linux下安装补丁,补丁一定要严格对应操作系统版本,否则有可能导致系统全面紊乱。我就遇到不止一次,一次在linux5.2的操作系统下打了一个linux5.1操作系统的字符方面的补丁,导致图形界面启动不来。这个还好办一些,直接在系统启动的时候中断掉,然后到命令行模式下手工删除之前安装的补丁包,再重新启动系统,就ok。更倒霉的一次,因为错误打了一个其他版本操作系统的补丁,导致系统启动直接黑屏,连单用户模式都进不去了。这两次都是在实验进行过程中出现的,究其原因就是因为没有引起足够的重视,也是因为还不熟悉linux操作系统下打补丁,一次解决了,一次无法解决,结果很无奈的重装操作系统,累计到这里就已经重复安装操作系统七次了。
下面介绍一下本实验过程中打补丁的全过程:
1,将下载所有补丁压缩到一个zip包里,以ftp方式上传到linux系统的“ly_media”目录下:
2,在“ly_media”文件系统用unzip命令解压缩补丁包,我们可以看到实验所需所有补丁:
以上图片就是此次实验所需所有补丁包,这里简单的介绍一下,其中:
oracleasm打头的六个补丁包是从http://www.oracle.com/technology/software/tech/linux/asmlib/rhel5.html上下载的。
compat打头的四个补丁包、openmotif21打头的两个补丁包,以及xorg-x11打头的一个补丁包是在http://oss.oracle.com/projects/compat-oracle/files/Enterprise_Linux/上下载的。
剩下三个补丁(kernel打头的两个补丁包和libXp打头的补丁包)是我额外单独下载的,为什么要下载这几个补丁包,那是大有来头。因为在linux下的补丁包,很多都是相互关联的,比如我在打oracleasm-2.6.18-53.el5debug-2.0.4-1.el5.i686这个补丁包的时候,系统提示无法安装,缺乏kernel-debug补丁包;在打oracleasm-2.6.18-53.el5PAE-2.0.4-1.el5.i686补丁包的时候,系统提示需要kernel-PAE补丁包,否则操作无法继续进行。
遇到这种情况的时候,就需要我们单独下载匹配的、和操作系统版本相符合的补丁包,像本实验中的kernel-debug-2.6.18-53.el5.i686、kernel-PAE-2.6.18-53.el5.i686这两个补丁包就是单独从外网下载的。除了这两个,我还用到了libXp-1.0.0-8.1.el5.i386这个补丁包,这就牵涉出了打补丁的第二个要点:先后顺序,这也是我几经折腾之后方才发现的。在我打补丁包compat-oracle-el5-1.0-5.i386的时候,系统提示我需要安装openmotif21-2.1.30-11.EL5.i386补丁包,我心里一乐,有啊。于是乐不可支的去安装这个补丁包,岂料系统又出一提示:请先安装libXp,这就涉及到了我额外下载的第三个补丁包libXp-1.0.0-8.1.el5.i386,到我下载好这个补丁包,再按照前后反复多次打补丁的经历,总结出了在本实验过程中,应该按照这样的细则打补丁:先独立、再关联。也就是先把不依赖于其他补丁包存在的补丁打好,然后再打前后关联那些补丁包,这样一来,就不存在任何问题了。
在打补丁这个环节,我多次尝试,才总结出其中的规律,现将本实验打补丁包顺序罗列如下:
1,compat-binutils215-2.15.92.0.2-24.i386
2,compat-libcwait-2.1-1.i386
3,compat-libstdc++-egcs-1.1.2-1.i386
4,openmotif21-debuginfo-2.1.30-11.EL5.i386
5,xorg-x11-libs-compat-6.8.2-1.EL.33.0.1.i386
6,oracleasm-support-2.1.2-1.el5.i386
7,oracleasm-2.6.18-53.el5-2.0.4-1.el5.i686
8,oracleasm-2.6.18-53.el5xen-2.0.4-1.el5.i686
这八个补丁,安装无先后顺序,因为他们都是相互独立的,下面就有些讲究了:
1,kernel-debug-2.6.18-53.el5.i686
2,oracleasm-2.6.18-53.el5debug-2.0.4-1.el5.i686
其中1、2相互关联
3,kernel-PAE-2.6.18-53.el5.i686
4,oracleasm-2.6.18-53.el5PAE-2.0.4-1.el5.i686
其中3、4相互关联
5,libXp-1.0.0-8.1.el5.i386
6,openmotif21-2.1.30-11.EL5.i386
7,compat-oracle-el5-1.0-5.i386
其中5、6、7相互关联
8,oracleasmlib-2.0.3-1.el5.i386
这个补丁之所以放到最后打,是因为他跟oracleasm打头的补丁整体有个先后顺序,先安装oracleasm打头的补丁,再安装这个,才满足要求。
3,下面继续本次实验的补丁安装过程:
4,配置裸设备:

由于RHEL5 中取消了rawdevices,如果不想将映射命令放到rc.local 中的话,我们就需要将其配置到/etc/udev/rules.d/文件夹中

修改文件

[root@rac1 ~]# vi /etc/udev/rules.d/60-raw.rules,添加内容如下图所示:

5,重启服务以及验证:

这样,主节点的设置过程完毕,下面就要开始副节点的设置了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多