邪恶八进制信息安全团队技术讨论组's Archiver

pub!1c 2006-9-9 10:19

[转载]Vmware server1.0 + Linux As4 + Oracle 10g RAC

<p>信息来源: CU</p><p>由于本人的硬件条件所限,所以采用的是虚拟机技术,虚拟机软件采用的是vmwareserver1.0 <br />宿主机,dell2850,配置如下 <br />_____________________________________ <br />Intel(R)Xeon(TM)CPU2.80GHz两颗 <br />内存2G <br />硬盘144G <br />oslinuxas3 <br /><br />虚拟服务器2台,配置如下 <br />______________________________________ <br />Intel(R)Xeon(TM)CPU2.80GHz1颗 <br />内存1G <br />硬盘15G <br />oslinuxas4 <br /><br />1.安装vmwareserver软件 <br />从www.vmware.com下载vmwareserver1.0forlinux软件,安装过程很简单,基本上是一路Enter.只是需要sn,在这里提供几个使用 <br />928WH-Y65AW-21394-4C70J,92EY4-Y4NAT-23L07-4U7CH,9AWPN-Y400W-2179N-4K5HM <br />安装vmwareserverconsole,以便远程管理vmwareserver <br />2.安装虚拟服务器操作系统 <br />我用的是OS是RedhatAS4,kernel2.6.9-22,虚拟出两块网卡,开始安装操作系统,主机名叫ha1pub,eth0:10.1.250.17,eth1:192.168.100.100.具体过程省略.安装结束后,使用ntsysv命令,关闭掉一些不常使用的进程,只留下一下一些需要的,如ssh,ftp等等.然后关机! <br />然后cpha1pub的所有配置文件到一个新的目录,在虚拟机console里面打开,就会出现一个新的系统,但是由于里面的ip信息和第一台机器的重复,进入系统后修改一下 <br />编辑/etc/sysconfig/network文件,将ha1pub修改为ha2pub,然后修改ip,eth0:10.1.250.18,eth1:192.168.100.200. <br />注意,redhat系统里面,ip的配置文件ifcfg-eth文件里面,有可能包含mac地址的信息,需要删除掉,否则会mac地址重复的错误.ha2pub也关机 <br />3.设置共享存储 <br />由于安装RAC需要共享存储,所以必须为两台机器设置共享存储,我使用vmware-vdiskmanager命令创建一些虚拟硬盘 <br />________________________________________________________________________ <br />vmware-vdiskmanager-c-s1Gb-alsilogic-t2"/vmware/share/ocfs.vmdk"|用于Oracle集群注册表文件和CRS表决磁盘 <br />________________________________________________________________________ <br />vmware-vdiskmanager-c-s2Gb-alsilogic-t2"/vmware/share/asm1.vmdk"|用于Oracle的数据文件 <br />________________________________________________________________________ <br />vmware-vdiskmanager-c-s2Gb-alsilogic-t2"/vmware/share/asm2.vmdk"|用于Oracle的数据文件 <br />________________________________________________________________________ <br />vmware-vdiskmanager-c-s2Gb-alsilogic-t2"/vmware/share/asm3.vmdk"|用于Oracle的数据文件 <br />________________________________________________________________________ <br />vmware-vdiskmanager-c-s2Gb-alsilogic-t2"/vmware/share/asm4.vmdk"|用于Oracle的闪回恢复区 <br />____________________________________________________________________ <br /> <br />然后分别在两个虚拟服务器的的配置文件,ha1.vmx和ha2vmx文件里面添加如下信息 <br />scsi1.present="TRUE" <br />scsi1.virtualDev="lsilogic" <br />scsi1.sharedBus="virtual" <br /><br />scsi1:1.present="TRUE" <br />scsi1:1.mode="independent-persistent" <br />scsi1:1.filename="/vmware/share/ocfs.vmdk" <br />scsi1:1.deviceType="disk" <br /><br />scsi1:2.present="TRUE" <br />scsi1:2.mode="independent-persistent" <br />scsi1:2.filename="/vmware/share/asm1.vmdk" <br />scsi1:2.deviceType="disk" <br /><br />scsi1:3.present="TRUE" <br />scsi1:3.mode="independent-persistent" <br />scsi1:3.filename="/vmware/share/asm2.vmdk" <br />scsi1:3.deviceType="disk" <br /><br />scsi1:4.present="TRUE" <br />scsi1:4.mode="independent-persistent" <br />scsi1:4.filename="/vmware/share/asm3.vmdk" <br />scsi1:4.deviceType="disk" <br /><br />scsi1:5.present="TRUE" <br />scsi1:5.mode="independent-persistent" <br />scsi1:5.filename="/vmware/share/asm4.vmdk" <br />scsi1:5.deviceType="disk" <br /><br />disk.locking="false" <br />diskLib.dataCacheMaxSize="0" <br />diskLib.dataCacheMaxReadAheadSize="0" <br />diskLib.DataCacheMinReadAheadSize="0" <br />diskLib.dataCachePageSize="4096" <br />diskLib.maxUnsyncedWrites="0" <br />保存后,打开vmwareconsole就可以看到添加的硬盘,启动ha1pub和ha2pub!随便进入一台系统,用fdisk格式化这些新添加的硬盘. <br />fdisk-l可以看到如下 <br />__________________________________________________________________ <br />Disk/dev/sda:16.1GB,16106127360bytes <br />255heads,63sectors/track,1958cylinders <br />Units=cylindersof16065*512=8225280bytes <br /><br />DeviceBootStartEndBlocksIdSystem <br />/dev/sda1*11310439183Linux <br />/dev/sda214275210451582Linuxswap <br />/dev/sda3276195813518697+83Linux <br /><br />Disk/dev/sdb:1073MB,1073741824bytes <br />255heads,63sectors/track,130cylinders <br />Units=cylindersof16065*512=8225280bytes <br /><br />DeviceBootStartEndBlocksIdSystem <br />/dev/sdb111301044193+83Linux <br /><br />Disk/dev/sdc:2147MB,2147483648bytes <br />255heads,63sectors/track,261cylinders <br />Units=cylindersof16065*512=8225280bytes <br /><br />DeviceBootStartEndBlocksIdSystem <br />/dev/sdc11261209645183Linux <br /><br />Disk/dev/sdd:2147MB,2147483648bytes <br />255heads,63sectors/track,261cylinders <br />Units=cylindersof16065*512=8225280bytes <br /><br />DeviceBootStartEndBlocksIdSystem <br />/dev/sdd11261209645183Linux <br /><br />Disk/dev/sde:2147MB,2147483648bytes <br />255heads,63sectors/track,261cylinders <br />Units=cylindersof16065*512=8225280bytes <br /><br />DeviceBootStartEndBlocksIdSystem <br />/dev/sde11261209645183Linux <br /><br />Disk/dev/sdf:2147MB,2147483648bytes <br />255heads,63sectors/track,261cylinders <br />Units=cylindersof16065*512=8225280bytes <br /><br />DeviceBootStartEndBlocksIdSystem <br />/dev/sdf11261209645183Linux <br />____________________________________________________________________ <br /><br />修改/etc/hosts文件,如下所示 <br />127.0.0.1localhost(这里必须这样修改,否则RAC节点名出现在回送地址中,安装RAC期间可能会报错) <br />10.1.250.17ha1pub <br />10.1.250.18ha2pub <br /><br />192.168.100.100ha1prv <br />192.168.100.200ha2prv <br /><br />10.1.250.19ha1vip <br />10.1.250.20ha2vip <br /> <br />4.调整网络设置,设置共享内存和信号参数 <br />分别在ha1pub和ha2pub上,编辑/etc/sysctl.conf文件,添加如下信息,这些信息可以根据自己的机器实际情况来调整 <br />net.core.rmem_default=262144 <br />net.core.wmem_default=262144 <br />net.core.rmem_max=262144 <br />net.core.wmem_max=262144 <br /><br />kernel.shmall=2097152 <br />kernel.shmmax=536870912 <br />kernel.shmmni=4096 <br />kernel.sem=25032000100128 <br />fs.file-max=65536 <br />net.ipv4.ip_local_port_range=102465000 <br /><br />5.配置hangcheck-timer内核模块 <br />该模块是用来监控集群的状态情况,linuxas4中已经安装了此模块,使用下面的命令确认 <br />find/lib/modules-name"hangcheck-timer.o"看看有没有,如果有,配置并加载该模块 <br />#echo"/sbin/modprobehangcheck-timer">>/etc/rc.local <br />#modprobehangcheck-timer <br />#grepHangcheck/var/log/messages|tail-2 <br />Jul3115:01:49ha2pubkernel:Hangcheck:startinghangchecktimer0.5.0(tickis30seconds,marginis180seconds). <br />如果看到上面的信息,说明模块的设置工作正确 <br />6.在两个节点上创建oracle用户和目录 <br />groupaddoinstall <br />groupadddba <br />useradd-goinstall-Gdbaoracle <br />passwdoracle <br />以oracle用户登陆,分别建立两个目录 <br />mkdir/home/oracle/app用于安装oracle数据库 <br />mkdir/home/oracle/orcl用于Oracle集群文件系统(OCFS)的挂载点 <br /><br />修改oracle用户的.bash_profile文件如下所示 <br />__________________________________________________________________ <br />exportORACLE_BASE=/home/oracle/app/oracle <br />exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 <br />exportORA_CRS_HOME=/home/oracle/app/oracle/product/10.2.0/crs/ <br />exportORACLE_SID=orcl1 <br /><br />exportPATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin <br />exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin <br />exportPATH=${PATH}:$ORACLE_BASE/common/oracle/bin <br />exportORACLE_TERM=xterm <br />exportTNS_ADMIN=$ORACLE_HOME/network/admin <br />exportORA_NLS10=$ORACLE_HOME/nls/data <br />exportLD_LIBRARY_PATH=$ORACLE_HOME/lib <br />exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib <br />exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib <br />exportCLASSPATH=$ORACLE_HOME/JRE <br />exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib <br />exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib <br />exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib <br />exportTHREADS_FLAG=native <br />exportTEMP=/tmp <br />exportTMPDIR=/tmp <br />________________________________________________________________________ <br />注意,在第二个节点上,修改SID=orcl2 <br /><br />7.建立节点之间的互信 <br />我采用的是ssh,具体过程有很多文档说明,这里省略.分别要建立root用户,oracle用户的互信. <br />然后在分别以root用户,oracle在两个节点上执行如下命令 <br />sshlocalhost <br />sshha1pub <br />sshha2pub <br />sshha1prv <br />sshha2prv <br />8.安装配置ocfs2 <br />从[url]http://oss.oracle.com/projects/ocfs2/[/url]下载与自己操作系统版本相符合的ocfs,ocfsconsole <br />比如我的内核是2.6.9-22.EL,于是我下载的就是ocfs2-2.6.9-22.EL-1.2.2-1.i686.rpm,这点非常重要 <br />安装很简单,把该下载的包都下载了rpm安装就ok了 <br />8.1ocfs2的配置 <br />先使用下面命令禁用SElinux <br />#system-config-securitylevel& <br />然后在集群中的每个节点上生成和配置/etc/ocfs2/cluster.conf <br />可以使用ocfs2console命令调出图形界面,将ha1pub和ha2pub两个节点都加入,点击apply,然后退出. <br />在/etc/ocfs2/目录下面将有cluster.conf文件,内容应该如下 <br />______________________________________________________ <br />node: <br />ip_port=7777 <br />ip_address=10.1.250.17 <br />number=0 <br />name=ha1pub <br />cluster=ocfs2 <br /><br />node: <br />ip_port=7777 <br />ip_address=10.1.250.18 <br />number=1 <br />name=ha2pub <br />cluster=ocfs2 <br /><br />cluster: <br />node_count=2 <br />name=ocfs2 <br />________________________________________________________ <br />接着编辑/etc/init.d/o2cb,删除开始带#的配置行 <br />然后/etc/init.d/o2cbofflineocfs2 <br />/etc/init.d/o2cbunloadocfs2 <br />/etc/init.d/o2cbconfigureocfs2输入y就ok了 <br />8.2创建ocfs2文件系统 <br />mkfs.ocfs2-b4k-C32k-Loradatafiles/dev/sdb1 <br />然后挂载ocfs2文件系统 <br />mount-tocfs2-odatavolume/dev/sdb1/home/oracle/orcl <br />修改/etc/fstab,添加 <br />/dev/sdb1/home/oracle/orclocfs2_netdev,datavolume00 <br />8.3调O2CB的心跳阀值 <br />修改文件/etc/sysconfig/o2cb将O2CB_HEARTBEAT_THRESHOLD设置为301 <br />修改文件/etc/sysconfig/o2cb后,需要更改o2cb配置。同样,应在集群的所有节点上执行以下操作。 <br />#umount/home/oracle/orcl/ <br />#/etc/init.d/o2cbunload <br />#/etc/init.d/o2cbconfigure <br />reboot两个节点 <br />9.安装,配置自动存储管理ASM2.0 <br />可以从[url]http://www.oracle.com/technology...x/asmlib/rhel4.html[/url]这里下载相关rpm包 <br />rpm安装过程省略 <br />执行/etc/init.d/oracleasmconfigure <br />默认用户输入oracle,默认组输入dba,其他都y,y就可以了 <br />9.1创建ASM磁盘 <br />在一个节点上执行 <br />/etc/init.d/oracleasmcreatediskVOL1/dev/sdc1 <br />/etc/init.d/oracleasmcreatediskVOL2/dev/sdd1 <br />/etc/init.d/oracleasmcreatediskVOL3/dev/sde1 <br />/etc/init.d/oracleasmcreatediskVOL4/dev/sdf1 <br />创建好后,执行/etc/init.d/oracleasmlistdisks可以看到 <br />VOL1 <br />VOL2 <br />VOL3 <br />VOL4 <br />然后在另外一个节点上执行 <br />/etc/init.d/oracleasmscandisks <br />完成后执行 <br />/etc/init.d/oracleasmlistdisks应该可以看到和的一个节点相同的内容 <br />10.安装Oracle10Gcluster软件 <br />从oracle网站下载10201_clusterware_linux32 <br />以oracle用户登录,unset掉一些环境变量,如下 <br />$unsetORA_CRS_HOME <br />$unsetORACLE_HOME <br />$unsetORA_NLS10 <br />$unsetTNS_ADMIN <br /> <br />开始安装cluster软件 <br />./runInstaller-ignoreSysPrereqs <br />*确认安装目录是/home/oracle/app/oracle/product/10.2.0/crs/ <br />*如果愿意可以将clustername由crs修改成其他的名称 <br />*添加两个节点,如下所示 <br />____________________________________________________________________ <br />PublicNodeNamePrivateNodeNameVirtualNodeName <br />ha1pubha1prvha1vip <br />ha2pubha2prvha2vip <br />____________________________________________________________________ <br />*要修改一下eth0的类型,他默认的是private,修改为public <br />*指定OCR和mirror的路径 <br />SpecifyOCRLocation:/home/oracle/orcl/OCRFile <br />SpecifyOCRMirrorLocation:/home/oracle/orcl/OCRFile_mirror <br />*指定Voting磁盘路径 <br />VotingDiskLocation:/home/oracle/orcl/CSSFile <br />AdditionalVotingDisk1Location:/home/oracle/orcl/CSSFile_mirror1 <br />AdditionalVotingDisk2Location:/home/oracle/orcl/CSSFile_mirror2 <br />*安装快结束时.会要求以root执行orainsRoot.sh和root.sh脚本,以root用户打开一个新的终端,一个一个节点顺序执行,千万不要抢时间一起执行 <br />*执行最后一个root.sh的时候,可能会报""eth0"isnotpublic.PublicinterfacesshouldbeusedtoconfigurevirtualIPs."这样的错误.这时候需要以root用户去执行$ORA_CRS_HOME/bin/vipca,选择两个节点,配置一下虚拟ip的信息. <br />至此,clusterware安装就ok了,检查一下集群节点 <br />$ORA_CRS_HOME/bin/olsnodes-n <br />ha1pub1 <br />ha2pub2 <br /><br />11.安装Oracle10g软件 <br />从oracle网站下载10201_database_linux32 <br />unset掉一些环境变量 <br />$unsetORA_CRS_HOME <br />$unsetORACLE_HOME <br />$unsetORA_NLS10 <br />$unsetTNS_ADMIN <br />Oracle的安装省略,既然敢玩RAC,肯定以前也安装过oracle,只是有些地方需要注意 <br />*节点的选择上,一定要选上所有的节点 <br />*选择"Installdatabasesoftwareonly",先不要建instance,等数据库安装完毕后时候dbca创建 <br />*安装完成后,需要执行root.sh脚本,不要着急,一个节点一个节点执行 <br />12.建立TNS侦听 <br />以oracle用户执行 <br />$netca& <br />*选择所有节点 <br />*选择Listenerconfiguration <br />*其他的都选择默认即可 <br />结束后可以验证一下侦听是否已经在所有节点上运行 <br />ps-ef|grepLISTEN <br />应该可以看到 <br />/home/oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnrLISTENER_HA1PUB-inherit <br />另外一个节点应该是 <br />/home/oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnrLISTENER_HA2PUB-inherit <br />13.创建数据库实例 <br />以oracle用户在任一节点执行 <br />dbca& <br />*选择CreateaDatabase <br />*选择所有节点 <br />*选择CustomDatabase <br />*全局数据库名输入orcl,SID也是orcl <br />*选择使用相同的密码对所有用户 <br />*存储选项选择useASM <br />*修改“Createserverparameterfile(SPFILE)”为/home/oracle/orcl/dbs/spfile+ASM.ora。所有其他选项可以保留其默认值。 <br />*在ASMDiskGroups配置界面,选择CreateNew,会显示之前通过ASMlib创建的4个卷VOL1到VOL4 <br />选择前三个,VOL1,VOL2,VOL3,Diskgroupname输入DATA,Redundancy,选择Normal,单击ok,完成后再次单击CreateNew.选择最后一个VOL4,Diskgroupname输入FLASH_RECOVERY_AREA,Redundancy选择External,单击ok,完成ASM的磁盘组创建. <br />*DatabaseFileLocations选择DATA <br />*RecoveryConfiguration选择FLASH_RECOVERY_AREA <br />*DatabaseContent由于是测试,可以取消掉所有选项 <br />*Servicename可以输入orcltest,TAFPolicy选择Basic <br />*DatabaseStorage根据自己系统的硬件条件可以更改一些参数. <br />完成dbca,OracleRAC就可以所已经完全安装成功了! <br /><br />14.RAC的启动和关闭 <br />如果都遵循了上面的安装步骤,那么每次节点重新启动的时候,所有服务都会自动启动,如果需要关闭或者启动某个节点,如下所示 <br />*停止RAC <br />1.emctlstopdbconsole <br />2.srvctlstopinstance-dorcl-iorcl1 <br />3.srvctlstopasm-nha1pub <br />4.srvctlstopnodeapps-nha1pub <br />*启动RAC <br />和上面的步骤正好相反即 <br />1.srvctlstartnodeapps-nha1pub <br />2.srvctlstartasm-nha1pub <br />3.srvctlstartinstance-dorcl-iorcl1 <br />4.srvctlstartdbconsole <br /><br />15.RAC的验证和测试 <br />有很多文档写的都很详细,本文就不赘述了 <br /> <br />16.参考文档 <br />在Linux和FireWire上构建您自己的OracleRAC10g第2版集群 <br />作者:JeffreyHunter <br /> <a href="http://www.oracle.com/technology/global/cn/documentation/index.html">[url]http://www.oracle.com/technology/global/cn/documentation/index.html[/url]</a></p>

页: [1]
© 1999-2008 EvilOctal Security Team