<

-oracle数据库恢复-Raid5数据恢复-RAID0数据恢复oracle安装与ORACLE基础知识 → VMWare+Linux AS3+Oraclce9i RAC安装


  共有5138人关注过本帖树形打印

主题:VMWare+Linux AS3+Oraclce9i RAC安装

oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
VMWare+Linux AS3+Oraclce9i RAC安装  发帖心情 Post By:2007-1-31 9:02:54

VMWare+Linux AS3+Oraclce9i RAC安装


本文档不会保证你按照该文档安装一定会成功,但是会详细的记
录我在安装过程中遇到的错误以及解决方法,并将所有的配置文件收
集在文档中.


为便于阅读,本文档中出现的配置信息,将以蓝色现实,错误的log,
将以红色显示.命令使用粗体褐色,并在前面带上了所需权限的提示
符.


一:硬件环境:


服务器:HP DL 380 G4服务器


内存: 3GB,可用内存1.3GB


硬盘:72GB*6,可用硬盘60GB,硬盘划分了6个RAID0


当然了,有了装虚拟机的服务器,最好有一个远程操作的客户机,
我最讨厌在服务器上直接操作,噪音太大了.



二:软件环境:


虚拟机软件:VMWare workstation 5.0.0


虚拟机操作系统:Red Hat Linux AS3


共享磁盘创建工具:Plainmaker


数据库: Oracle9i Enterprise Edition Release 9.2.0.4.0 – Production


Ok,硬件,软件都有了,让我们开始在VMWare上安装RAC的历程
吧,虽然这历程很艰辛.


三:虚拟机安装以及配置:


3.1安装VMWare


首先,在服务器上安装VMWare,这东西很好安装,基本上一路
Next下来即可,不过要记住,这玩意需要一个Key,我没有试过不要key
会怎么样,因为我从网络上找了一个keygen,嗯,我是用来作测试,没有
用于商业用途,应该不算违法吧.


3.2创建虚拟机


安装好VMWare以后,就该创建虚拟机了.


进入VMWare的主界面,来创建节点.在菜单上单击
File->New->New Virtual Machine Wizard.


在弹出的界面中,单击下一步,选择Typical,单击下一步,在操作系
统的选择中,选择Linux,在下面的下拉中,选择Red Hat Enterprise
Linux3,单击下一步以后,选择虚拟机的名字,可以命名为RAC1,下面选



择机器配置信息的存放路径,下一步以后,选择网络类型为默认的Use
Bridged Networking,继续


然后是调整磁盘大小,这个地方要特别注意了,如果你准备将
oracle安装软件解压在硬盘上再安装,偶建议你这里选择10GB以上空
间.俺在这里选择的是8GB,结果在安装oracle的时候,发现磁盘空间不
够,折腾磁盘空间,就花了我2个多小时,因为要把先ftp上去的文件给
rm掉,然后重新创建磁盘,重新上传,重新解压,所以,偶建议你1号机磁
盘在10GB以上,2号机给8GB就绝对足够了.


再下一步,这个虚拟机就创建好了.


同样的方法创建第二个机器,不过这个机器,硬盘可以给小点,理
由在上面已经有讲述.


虚拟机创建好以后,就该调整虚拟机了.可以在VMWare的主界面
中来调整虚拟机的内存,注意,内存可以在每次虚拟机关机后进行调整,
不过硬盘不可以,所以要想清楚了.


3.3安装虚拟机操作系统


将linux的4张安装盘的ISO文件上传到服务器上,准备安装虚拟
机了


在1号机的机器属性那里.单击 Edit virtual machine settings,然后
在弹出的界面中,选中CD-ROM,在右边的选项中,选择Use ISO Image,
然后单击那个browse,选中你上传上去的linux的iso文件,先选择第一
个,选择好了以后,启动虚拟机,现在就该安装了.



偶比较懒,而且对linux不是很熟悉,为了不在后面安装的时候缺
这个,缺那个,我一般安装linux都是选择的全部组件安装,多消耗点空
间吗.建议不熟悉的也这么作,可以省去后面发现系统这个包没有,那
个包没有的麻烦.


在安装过程中,如果要换盘,只要重复上面的操作,重新选择其他
的ISO文件,即可换盘.(如下图)



这些作好了以后,一路安装,应该问题不大的,同样的方法,装好2
号机,虚拟机装完了,不过现在还不是高兴的时候.


3.4为虚拟机配置网络


机器安装好以后,要给机器增加网卡了,因为RAC使用了两个网
卡,并且需要固定地址.



看上面的图,在虚拟机关机的时候,左下的ADD按钮是可以点的,
单击,然后按照提示,增加一个网卡.两个机器都要增加的.


然后要在linux中配置网络


我配置给内部通讯使用的地址如下:


RAC1_prv 192.168.0.241


RAC2_prv 192.168.0.242


外部通讯使用的地址如下:


RAC1 172.19.74.241


RAC2 172.19.74.242


3.5配置共享磁盘


下面该为虚拟机配置共享磁盘了,这就要使用到前面说到的
plainmaker了,在服务器上启动一个dos界面,并且到达plainmaker的路
径所在地


然后执行如下命令: plainmaker K:\rac_test\sharedisk.pln 4096M


该命令表示在k盘的rac_test目录下建立名字为sharedisk.pln,大
小为4096M的共享磁盘.


然后将两个虚拟机停止.编辑虚拟机属性.和增加网卡一样的选择,
但是增加的设备类型选择磁盘,并且要选择scsi磁盘,在这里要选择已
经存在的磁盘(如下图)




然后下一步,不过,在后面,要选择advance,在specify advanced
options中的virtual device node一定要选中scsi类型的,至于后面的数
字,网络上有的说必须是SCSI 1:0,但是我用SCSI 0:1(我本来的硬盘也
是选择的SCSI类型)一样可以成功.然后Finish,同样的方式,为2号机
增加共享磁盘.


但是,这并没有结束对磁盘的配置工作


下面,停止两个虚拟机,然后找到虚拟机的配置文件,该文件路径
在每个节点的目录下后缀为vmx的文件,一般来说,这个文件很小,大
概也就1k,然后用UE把它打开,并添加如下的内容:


disk.locking = FALSE


scsi1.sharedBus = "virtual"


scsi1:0.mode = "independent-persistent"


diskLib.dataCacheMaxSize = "0"


diskLib.dataCacheMaxReadAheadSize = "0"


diskLib.DataCacheMinReadAheadSize = "0"


diskLib.dataCachePageSize = "4096"


diskLib.maxUnsyncedWrites = "0"


特别注意后面粗体的5行,在网络上,基本上无法找到添加这几行
的记录,但是如果你没有这几行,可能会导致OCM中的oracm无法在



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:04:34

其中一个机器上起来,也就是那个机器后启动oracm,那个机器就无法
启动oracm,应该是共享的投票盘的读写问题.该部分特别得到了刘明
辉(CNOUG ID:stopbegin)的帮助.


如果是上面的问题,后启动的oracm无法启动,一般会报如下的错
误,如果你的错误和这个类型,可考虑是这个部分的配置.(以下为不配
置最后5行粗体部分,在启动oracm时,可能会产生的错误代码)


--- Begin Dump ---


>TRACE: LogListener: Spawned with tid 0x8003., tid = 32771 file = logging.c, line =
116 {Thu Dec 7 16:59:36 2006 }


oracm, version[ 9.2.0.2.0.47 ] started {Thu Dec 7 16:59:36 2006 }


>WARNING: oracm fails to be made to priority 90.



, tid = main:16384 file = cmstartup.c, line = 167 {Thu Dec 7 16:59:36 2006 }


>TRACE: Can't read registry value for WatchdogTimerMargin, tid = main:16384 file =
unixinc.c, line = 1011 {Thu Dec 7 16:5


9:36 2006 }


>TRACE: Can't read registry value for WatchdogSafetyMargin, tid = main:16384 file =
unixinc.c, line = 1011 {Thu Dec 7 16:


59:36 2006 }


KernelModuleName is hangcheck-timer {Thu Dec 7 16:59:36 2006 }


>TRACE: Can't read registry value for ClientTimeout, tid = main:16384 file =
unixinc.c, line = 1011 {Thu Dec 7 16:59:36 2


006 }


>TRACE: InitNMInfo: setting clientTimeout to 20s based on MissCount 20 and
PollInterval 1000ms, tid = main:16384 file = n


mconfig.c, line = 137 {Thu Dec 7 16:59:36 2006 }


>TRACE: InitClusterDb(): getservbyname on CMSrvr failed - 1 : assigning 9998, tid =
main:16384 file = nmconfig.c, line = 2


12 {Thu Dec 7 16:59:36 2006 }


OemNodeConfig(): Network Address of node0: 172.19.74.241 (port 9998)


{Thu Dec 7 16:59:36 2006 }


OemNodeConfig(): Network Address of node1: 172.19.74.242 (port 9998)


{Thu Dec 7 16:59:36 2006 }


>TRACE: OemCreateListenPort: bound at 9998, tid = main:16384 file = oem.c, line
= 858 {Thu Dec 7 16:59:36 2006 }


>TRACE: InitClusterDb(): found my node info at 1 name RAC2, priv RAC2, port
3623, tid = main:16384 file = nmconfig.c, lin


e = 265 {Thu Dec 7 16:59:36 2006 }



>TRACE: InitClusterDb(): Local Node(1) NodeName[RAC2], tid = main:16384 file =
nmconfig.c, line = 283 {Thu Dec 7 16:59:36


2006 }


>TRACE: InitClusterDb(): Cluster(Oracle) with (2) Defined Nodes, tid = main:16384
file = nmconfig.c, line = 286 {Thu Dec


7 16:59:36 2006 }


>TRACE: OEMInits(): CM Disk File (/dev/raw/raw1), tid = main:16384 file = oem.c,
line = 243 {Thu Dec 7 16:59:36 2006 }


>WARNING: OemInit2: Opened file(/dev/raw/raw1 8), tid = main:16384 file = oem.c,
line = 491 {Thu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(0) rcfg(3) wrtcnt(325) lastcnt(0) alive(325), tid
= main:16384 file = oem.c, line = 1442


{Thu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(1) rcfg(1) wrtcnt(3) lastcnt(0) alive(1), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(2) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(3) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(4) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(5) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(6) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(7) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(8) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(9) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {Th


u Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(10) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(11) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =



main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(12) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(13) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(14) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(15) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(16) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(17) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(18) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(19) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(20) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(21) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(22) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(23) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(24) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:05:00

>TRACE: ReadOthersDskInfo(): node(24) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(25) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }



>TRACE: ReadOthersDskInfo(): node(26) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(27) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(28) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(29) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(30) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(31) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(32) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(33) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(34) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(35) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(36) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(37) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(38) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(39) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(40) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T



hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(41) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(42) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(43) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(44) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(45) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(46) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(47) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(48) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(49) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(50) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(51) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(52) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(53) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(54) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(55) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =



main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(56) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(57) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(58) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(59) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(60) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(61) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(62) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ReadOthersDskInfo(): node(63) rcfg(0) wrtcnt(0) lastcnt(0) alive(0), tid =
main:16384 file = oem.c, line = 1442 {T


hu Dec 7 16:59:36 2006 }


>TRACE: ClusterListener: Spawned with tid 0xc004., tid = 49156 file = nmlistener.c,
line = 53 {Thu Dec 7 16:59:36 2006 }


Debug Hang : ClusterListener (PID=4418) Registered withwatchdog daemon. {Thu Dec
7 16:59:36 2006 }


>TRACE: ClusterListener (pid=4418, tid=49156): Registered with watchdog daemon.,
tid = 49156 file = nmlistener.c, line = 7


5 {Thu Dec 7 16:59:36 2006 }


InitializeCM: ModuleName = hangcheck-timer {Thu Dec 7 16:59:36 2006 }


InitializeCM: Kernel module hangcheck-timer is already loaded {Thu Dec 7 16:59:36
2006 }


>TRACE: CmConnectListener: Spawned with tid 0x10005., tid = 65541 file =
cmclient.c, line = 215 {Thu Dec 7 16:59:36 2006


}


Debug Hang : CmConnectListener (PID=4419):Registered with watchdog daemon. {Thu
Dec 7 16:59:36 2006 }


>TRACE: CmConnectListener (pid=4419, tid=65541): Registered with watchdog
daemon., tid = 65541 file = cmclient.c, line = 2


46 {Thu Dec 7 16:59:36 2006 }



Debug Hang :StartNMMon (PID=4413) Registered with watchdog daemon. {Thu Dec 7
16:59:36 2006 }


>TRACE: StartNMMon (pid=4413, tid=16384): Registered with watchdog daemon.,
tid = main:16384 file = cmnodemon.c, line = 25


1 {Thu Dec 7 16:59:36 2006 }


CreateLocalEndpoint(): Network Address: 172.19.74.242


{Thu Dec 7 16:59:36 2006 }


>TRACE: StartClusterJoin(): clusterState(0) nodeState(0), tid = main:16384 file =
nmmember.c, line = 277 {Thu Dec 7 16:59


:36 2006 }


>TRACE: PollingThread: Spawned with tid 0x14006., tid = 81926 file = nmmember.c,
line = 742 {Thu Dec 7 16:59:36 2006 }


Debug Hang :PollingThread (PID=135159169): Registered with {Thu Dec 7 16:59:36
2006 }


>TRACE: PollingThread (pid=4420, tid=81926): Registered with watchdog daemon.,
tid = 81926 file = nmmember.c, line = 760 {


Thu Dec 7 16:59:36 2006 }


>TRACE: DiskPingThread: Spawned with tid 0x18007., tid = 98311 file =
nmmember.c, line = 1050 {Thu Dec 7 16:59:36 2006 }


Debug Hang : DiskPingThread (PID=135159169): Registered with {Thu Dec 7
16:59:36 2006 }


>TRACE: DiskPingThread (pid=4421, tid=98311): Registered with watchdog daemon.,
tid = 98311 file = nmmember.c, line = 1074


{Thu Dec 7 16:59:36 2006 }


>TRACE: SendingThread: Spawned with tid 0x1c008, 0x0., tid = 114696 file =
nmmember.c, line = 511 {Thu Dec 7 16:59:36 200


6 }


Debug Hang :SendingThread (PID=135159169): Registered with {Thu Dec 7 16:59:36
2006 }


>TRACE: SendingThread (pid=4422, tid=114696): Registered with watchdog daemon.,
tid = 114696 file = nmmember.c, line = 576


{Thu Dec 7 16:59:36 2006 }


>TRACE: HandleJoin(): src[1] dest[1] dom[0] seq[1] sync[0], tid =
ClusterListener:49156 file = nmlisten.c, line = 346 {Thu


Dec 7 16:59:36 2006 }


>TRACE: HandleJoin(): JOIN from node(1)->(1), tid = ClusterListener:49156 file =
nmlisten.c, line = 362 {Thu Dec 7 16:59:


36 2006 }


>TRACE: HandleSync(): src[0] dest[1] dom[0] seq[9] sync[2], tid =
ClusterListener:49156 file = nmlisten.c, line = 506 {Thu


Dec 7 16:59:37 2006 }


>TRACE: SendAck(): node(0) domain(0) syncSeqNo(2) type(11), tid =
ClusterListener:49156 file = nmmember.c, line = 1913 {Th


u Dec 7 16:59:37 2006 }



>TRACE: HandleSync: resending ack to leader(0), tid = ClusterListener:49156 file =
nmlisten.c, line = 482 {Thu Dec 7 16:


59:38 2006 }


>TRACE: SendAck(): node(0) domain(0) syncSeqNo(2) type(11), tid =
ClusterListener:49156 file = nmmember.c, line = 1913 {Th


u Dec 7 16:59:38 2006 }


>TRACE: HandleVote(): src[0] dest[1] dom[0] seq[11] sync[2], tid =
ClusterListener:49156 file = nmlisten.c, line = 643 {Th


u Dec 7 16:59:39 2006 }


>TRACE: SendVoteInfo(): node(0) domain(0) syncSeqNo(2), tid =
ClusterListener:49156 file = nmmember.c, line = 1727 {Thu De


c 7 16:59:39 2006 }


>TRACE: HandleShutdown(): src[0] dest[1] dom[0] seq[0] sync[2] type[4], tid =
ClusterListener:49156 file = nmlisten.c, lin


e = 1087 {Thu Dec 7 16:59:40 2006 }


>TRACE: IncrementEventValue: *(80f2920) = (1, 1), tid = ClusterListener:49156 file
= unixinc.c, line = 253 {Thu Dec 7 16:


59:40 2006 }


--- End Dump ---


这些配置完成后,就应该可以正确的访问共享磁盘了.



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:05:24

在这里,我也把我的虚拟机的配置写在下面,供大家参考:


config.version = "8"


virtualHW.version = "4"


scsi0.present = "TRUE"


scsi0.virtualDev = "lsilogic"


memsize = "256"


scsi0:0.present = "TRUE"


scsi0:0.fileName = "Red Hat Enterprise Linux 3.vmdk"


ide1:0.present = "TRUE"


ide1:0.fileName = "K:\rac\linux\rhel-3-i386-as-disc1.iso"


ide1:0.deviceType = "cdrom-image"


floppy0.present = "FALSE"


ethernet0.present = "TRUE"


usb.present = "TRUE"


sound.present = "TRUE"


sound.virtualDev = "es1371"


displayName = "Red Hat Enterprise Linux 3-2"


guestOS = "rhel3"


nvram = "rhel3.nvram"



scsi0:0.redo = ""


ethernet0.addressType = "generated"



uuid.location = "56 4d 87 db 40 51 08 0d-2f 2e 9a 99 79 93 a4 85"


uuid.bios = "56 4d 87 db 40 51 08 0d-2f 2e 9a 99 79 93 a4 85"


ethernet0.generatedAddress = "00:0c:29:93:a4:85"


ethernet0.generatedAddressOffset = "0"



scsi1:0.present = "TRUE"


scsi1:0.fileName = "K:\rac_test\sharedisk.pln"


disk.locking = FALSE


scsi1.sharedBus = "virtual"


scsi1:0.mode = "independent-persistent"



scsi0:1.redo = ""



ethernet1.present = "TRUE"



ethernet1.addressType = "generated"


ethernet1.generatedAddress = "00:0c:29:93:a4:8f"


ethernet1.generatedAddressOffset = "10"



scsi1:0.redo = ""


scsi1.present = "TRUE"


scsi1.virtualDev = "lsilogic"


diskLib.dataCacheMaxSize = "0"


diskLib.dataCacheMaxReadAheadSize = "0"


diskLib.DataCacheMinReadAheadSize = "0"


diskLib.dataCachePageSize = "4096"


diskLib.maxUnsyncedWrites = "0"


然后,启动两虚拟机,进去系统后,打开一个终端,root用户执行 以
下命令 fdisk /dev/sdb 看看,有设备否.记得两个机器上都要作,任何
机器上出不来这个设备,表示前面的有问题,如果有设备,就可以继续
了,否则,返回去检查错误吧.


四:OCM安装以及配置:


4.1配置主机网络


为了能够正确的安装OCM,需要首先配置两个主机的/etc/hosts文



件,用vi配置,应该是比较好用的,linux的vi比aix好用多了.


废话少说,俺还是把俺1号主机和2号主机的配置贴这里,更有说
服力.


1号主机的/etc/hosts文件内容如下:


# Do not remove the following line, or various programs


# that require network functionality will fail.


172.19.74.241 RAC1


172.19.74.242 RAC2


192.168.0.241 RAC1_prv


192.168.0.242 RAC2_prv


配置好以后,可以测试下,就是在1号机上分别ping
RAC1,RAC2,RAC1_prv以及RAC2_prv,同样,在2号机上也要作一样
的操作,如果都能通,那就ok了,如果有地址不通,会在启动oracm的时
候报错,错误信息大致类似以下内容:


oracm, version[ 9.2.0.2.0.47 ] started {Thu Dec 7 17:02:48 2006 }


>WARNING: oracm fails to be made to priority 90.



, tid = main:16384 file = cmstartup.c, line = 167 {Thu Dec 7 17:02:48 2006 }


KernelModuleName is hangcheck-timer {Thu Dec 7 17:02:48 2006 }


OemNodeConfig(): Network Address of node0: 192.168.0.241 (port 9998)


{Thu Dec 7 17:02:48 2006 }


OemNodeConfig(): Network Address of node1: 192.168.0.242 (port 9998)


{Thu Dec 7 17:02:48 2006 }


>WARNING: OemCreateListenPort(): Network Address to bind: 0.0.0.0 (port 0)


, tid = main:16384 file = oem.c, line = 875 {Thu Dec 7 17:02:48 2006 }


>ERROR: OemCreateListenPort(): can't bind socket - errno=99 for Node (-1): (null),
tid = main:16384 file = oem.c, line = 8


85 {Thu Dec 7 17:02:48 2006 }


>ERROR: InitClusterDb(): couldn't figure out my nodeId, tid = main:16384 file =
nmconfig.c, line = 278 {Thu Dec 7 17:02:4


8 2006 }


--- DUMP GROUP STATE DB ---


--- END OF GROUP STATE DUMP ---


一般上面这个错误,是由于/etc/hosts文件配置不对,或者是网络不
通引起的.



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:05:59

4.2设置telnet访问


在安装OCM的时候,需要使用到telnet,在linux的服务中开启
telnet访问,这个具体就不说了,俺是用图形界面的,配置好以后,用下面
的命令启动telnet访问: (需要root权限)


# service xinetd restart


配置好这个以后,为了能使用root登陆telnet,默认root是不行的,
需要其他用户,然后su,所以需要修改文件/etc/pam.d/login,需要注释其
中的行authrequiredpam_securetty.so


下面是偶的/etc/pam.d/login的配置:


#%PAM-1.0


#auth required pam_securetty.so


auth required pam_stack.so service=system-auth


auth required pam_nologin.so


account required pam_stack.so service=system-auth


password required pam_stack.so service=system-auth


session required pam_stack.so service=system-auth


session optional pam_console.so


4.3设置rlogin,rsh等


由于RAC的安装,在第一台主机完成安装后,需要向第二台主机
拷贝文件,所以需要rlogin,rsh,rpc等,这些东西需要配置,同样,和配置
telent一样的配置,然后service xinetd restart(需要root权限)启动下服
务.


为了可以访问,需要设置安全,所以需要修改/etc/securetty,在里面
增加rexec,rlogin以及rsh,这三个每个独立占一行.下面贴出我的
/etc/securetty配置:



console


vc/1


vc/2


vc/3


vc/4


vc/5


vc/6


vc/7


vc/8


vc/9


vc/10


vc/11


tty1


tty2


tty3


tty4


tty5


tty6


tty7


tty8


tty9


tty10


tty11


rsh


rlogin


rexec


同样,这些操作要在两个机器上都作.


4.4配置节点互信任


为了两个机器可以互相信任,我们需要配置一些设置.主要有以下
几个部分.


在/etc下建立文件hosts.equiv,并设置内容,我的/etc/hosts.equiv配
置如下:


RAC1


RAC2


RAC1_prv


RAC2_prv



同时要在root的$HOME下建立文件.rhosts,并写入主机名称,以使
得在使用root用户作rlogin等操作的时候,可以不用密码.我的root的
$HOME/.rhosts文件配置如下:


RAC1 root


RAC2 root


RAC1_prv root


RAC2_prv root


这些操作,两个机器上都应该作.


作完以后,可以测试下是否通,大概可以使用如下的命令来测试
(测试需要root用户)


# rlogin RAC2


# rsh –l root RAC2 cat /etc/hosts


# rcp /tmp/test RAC2:/tmp


4.5修改linux内核参数


这个步骤不用罗嗦大家也知道为什么要作,在linux和unix上,如
果不修改内核参数,在建库的时候,会抛出典型的ora-03113错误,oracle
自动结束了.


我们要作的,就是编辑文件/etc/sysctl.conf,在该文件的末尾,添加
如下的内容:


kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536


我的/etc/sysctl.conf内容如下:


# Kernel sysctl configuration file for Red Hat Linux


#



# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and


# sysctl.conf(5) for more details.



# Controls IP packet forwarding


net.ipv4.ip_forward = 0



# Controls source route verification


net.ipv4.conf.def***t.rp_filter = 1



# Controls the System Request debugging functionality of the kernel


kernel.sysrq = 0



# Controls whether core dumps will append the PID to the core filename.


# Useful for debugging multi-threaded applications.


kernel.core_uses_pid = 1


kernel.shmmax = 2147483648


kernel.shmmni = 4096


kernel.shmall = 2097152


kernel.sem = 250 32000 100 128


fs.file-max = 65536


这个作完以后,为了是配置生效,可以执行下面的命令;


# /sbin/sysctl –p


这个完成以后,还要修改oracle用户的配置,虽然现在还没有建立
oracle用户,但是为了不忘记这个操作,还是现在作了吧,编辑文件
/etc/security/limits.conf,在里面增加如下的内容:


oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384


我的这个文件的内容是这样的:


# /etc/security/limits.conf


#


#Each line describes a limit for a user in the form:


#


#<domain> <type> <item> <value>


#


#Where:


#<domain> can be:



# - an user name


# - a group name, with @group syntax


# - the wildcard *, for def***t entry


#


#<type> can have the two values:


# - "soft" for enforcing the soft limits


# - "hard" for enforcing hard limits


#


#<item> can be one of the following:


# - core - limits the core file size (KB)


# - data - max data size (KB)


# - fsize - maximum filesize (KB)


# - memlock - max locked-in-memory address space (KB)


# - nofile - max number of open files


# - rss - max resident set size (KB)


# - stack - max stack size (KB)


# - cpu - max CPU time (MIN)


# - nproc - max number of processes


# - as - address space limit


# - maxlogins - max number of logins for this user


# - priority - the priority to run user process with


# - locks - max number of file locks the user can hold


#


#<domain> <type> <item> <value>


#



#* soft core 0


#* hard rss 10000


#@student hard nproc 20


#@faculty soft nproc 20


#@faculty hard nproc 50


#ftp hard nproc 0


#@student - maxlogins 4


oracle soft nofile 65536


oracle hard nofile 65536


oracle soft nproc 16384


oracle hard nproc 16384


# End of file


以上的操作,两个机器中都要执行.



4.6配置hangcheck-timer模块


在oracle 9202以后,将不再使用watchdog来监测两个机器是否挂
起,而是改用hangcheck-timer,这个的配置也要简单很多.


首先检查该模块是否存在:


# find /lib/modules -name "hangcheck-timer.o”


存在以后,使用下面的命令来加载该模块:


# /sbin/insmod hangcheck-timer hangcheck_tick=30
hangcheck_margin=180


简单解释上面命令中的参数的含义:


hangcheck_tick:该参数定义了模块启动的间隔时段。其默认值
为 60 秒。 Oracle建议将其设置为 30 秒。
hangcheck_margin:该参数定义了多少时间以后系统没响应就认为
是挂起。以秒为单位。其默认值为 180秒。Oracle 建议将其设置为
180 秒。


使用下面的命令查看该模块是否被正确的加载


#grep Hangcheck /var/log/messages


为了系统启动的时候,自动加载该模块,可以将如下内容写入到
/etc/modules.conf中.


options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:06:20

我的文件/etc/modules.conf内容如下:


alias eth0 pcnet32


alias scsi_hostadapter mptbase


alias scsi_hostadapter1 mptscsih


alias sound-slot-0 es1371



post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null
2>&1 || :


pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null
2>&1 || :


alias usb-controller usb-uhci


alias eth1 pcnet32


options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180


以上操作必须在两个机器上都要作.


到这里,总算把所有的系统的东西都配置好了,linux和unix装
oracle,就是准备系统环境要的时间太久了,真累呀.不过人生还要继续,
下面还有更麻烦的事情要干.


4.7建立oracle用户等


下面要建立oracle用户等,以进行安装.


首先是建立用户,俺使用了如下的命令来作:


# groupadd dba


# groupadd oinstall


# useradd –c “Oracle software owner” –g oinstall –G dba
oracle


# passwd oracle


# mkdir /opt/oracle


# mkdir /opt/oracle/product


# mkdir /opt/oracle/product/9.2.0


# chown –R oracle.oinstall /opt/oracle


# mkdir /var/opt/oracle


# chown oracle.dba /var/opt/oracle



# chmod 755 /var/opt/oracle


该部分操作,两个机器都要作,不要偷懒.


Ok,设置好oracle用户以后,该设置oracle的profile文件了,俺比较
懒,这些文件一直是从以前遗留下来的,俺就不改了,直接贴这里,大家
可以考虑直接用俺这个代码.


俺的/home/oracle/.bash_profile文件内容如下:


# .bash_profile



# Get the aliases and functions


if [ -f ~/.bashrc ]; then


. ~/.bashrc


fi



# User specific environment and startup programs



PATH=$PATH:$HOME/bin



export PATH


unset USERNAME


umask 022


TERM=xterm; export TERM


TMPDIR=/tmp; export TMPDIR



# +--------------------------+


# | SETUP ORACLE ENVIRONMENT |


# +--------------------------+



export ORACLE_SID=rac1


export ORACLE_BASE=/opt/oracle


export ORACLE_HOME=/opt/oracle/product/9.2.0



export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib


export TNS_ADMIN=$ORACLE_HOME/network/admin



export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK


export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data




export ORACLE_OWNER=oracle


export ORACLE_TERM=xterm



#export LDEMULATION=elf_i386_glibc21


export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/


# +--------------------------+


# | LINUX STUFF |


# +--------------------------+



export LD_ASSUME_KERNEL=2.4.1


#source /usr/i386-glibc2.1-linux/bin/i386-glibc21-linux-env.sh



# +--------------------------+


# | SETUP SEARCH PATH |


# +--------------------------+



PATH=$PATH:$ORACLE_HOME/bin:/opt/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/opt/oracle/9.2.0/jdk/jre/bin:.


export PATH


# +--------------------------+


# | SETUP JAVA ENVIRONMENT |


# +--------------------------+



export JAVA_HOME=/opt/oracle/jre/1.1.8



export
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes12.zip:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/


network/jlib:.



# +-------------+


# | "GREETINGS" |


# +-------------+


echo ".bash_profile executed"


这个文件,两个机器上应该都有的,只有一个地方不一样,那就是
ORACLE_SID,1号机上是rac1,2号机上是什么,当然是rac2了.所以就
不贴2号机的/home/oracle/.bash_pforile文件了.



4.8为共享磁盘划分裸设备


安装OCM就需要一个共享的裸设备,前文也有提到,这个设备的读
写问题,会严重影响到整个系统的使用,可能导致oracm无法在第二个
节点上启动。另外,Linux上最多只能划分15个分区。超过的部分,
linux是无法识别的,至于如何扩展,将不在本文讨论范围。对每个分区
的规划如下表所示:


分区名称


大小(MB)


用途


/dev/sdb1


10


存放Cluster Manager Quorum文件


/dev/sdb2


350


回滚段表空间1:Undotbs1


/dev/sdb3


350


回滚段表空间2:Undotbs2


/dev/sdb5


500


系统表空间:system


/dev/sdb6


10


Spfile


/dev/sdb7


300


临时表空间:temp


/dev/sdb8


300


用户表空间:user可以不设置该分区


/dev/sdb9


10


控制文件:control file


/dev/sdb10


10


控制文件:control file


/dev/sdb11


20


第一个节点的第一组联机日志文件


/dev/sdb12


20


第一个节点的第二组联机日志文件


/dev/sdb13


20


第二个节点的第一组联机日志文件


/dev/sdb14


20


第二个节点的第二组联机日志文件


/dev/sdb15


100


Srvconfig模块所需要的Shared Configuration文件



规划好以后,我们可以开始实际创建这些分区了。在linux中执
行命令:



#fdisk /dev/sdb


首先输入n,然后输入p,再输入1,回车接受缺省值,再输入
+10M,这样我们就创建了/dev/sdb1。同样的方法,我们可以创建sdb2
和sdb3。再次输入n,然后输入e,回车接受缺省值,再回车接受缺
省值,这样,我们就创建了扩展分区sdb4,同时把剩下的空间全都给
了sdb4(这也是为什么没有/dev/sdb4的原因)。接下来,我们输入n,
然后回车接受缺省值,再输入+500M,这样,我们就创建了sdb5。同
样的方法,我们可以把剩下的所有分区都创建出来。


创建完毕以后,输入p,显示我们刚才所创建的所有分区,确认
无误以后,输入w,从而保存我们所创建的分区,并更新分区表。


磁盘分区好以后,需要将两个机器全部重启一次,这样才能在没
有进行分区的机器上看到磁盘的信息.


如果重启后还是看不到磁盘的信息,那么就继续重启了,一直到
能看到为止..



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:06:47

分区看见以后,需要挂载到裸设备上,偶使用了如下的脚本:


raw /dev/raw/raw1 /dev/sdb1


raw /dev/raw/raw2 /dev/sdb2


raw /dev/raw/raw3 /dev/sdb3


raw /dev/raw/raw4 /dev/sdb5


raw /dev/raw/raw5 /dev/sdb6


raw /dev/raw/raw6 /dev/sdb7


raw /dev/raw/raw7 /dev/sdb8


raw /dev/raw/raw8 /dev/sdb9


raw /dev/raw/raw9 /dev/sdb10



raw /dev/raw/raw10 /dev/sdb11


raw /dev/raw/raw11 /dev/sdb12


raw /dev/raw/raw12 /dev/sdb13


raw /dev/raw/raw13 /dev/sdb14


raw /dev/raw/raw14 /dev/sdb15


可以把以上的内容,写到一个shell中,再执行shell,或者懒点,干脆
拷贝到linux里面去执行,记得用root用户.


然后要修改裸设备的属性,俺同样使用的是脚本:


chown oracle.dba /dev/raw/raw1


chown oracle.dba /dev/raw/raw2


chown oracle.dba /dev/raw/raw3


chown oracle.dba /dev/raw/raw4


chown oracle.dba /dev/raw/raw5


chown oracle.dba /dev/raw/raw6


chown oracle.dba /dev/raw/raw7


chown oracle.dba /dev/raw/raw8


chown oracle.dba /dev/raw/raw9


chown oracle.dba /dev/raw/raw10


chown oracle.dba /dev/raw/raw11


chown oracle.dba /dev/raw/raw12


chown oracle.dba /dev/raw/raw13


chown oracle.dba /dev/raw/raw14


ok,这些都搞好以后,我们要开始安装了,准备好了吗?


稍等,linux as3上安装oracle有一个bug,需要打个不定,补丁号
是:3006854,如果不打该不定,oracle的安装界面可能show不出来,那就
惨兮兮了.如果没有这个补丁,请到metalink上去下载了(千万别问我要
这个.).该补丁文件的名字为: p3006854_9204_LINUX.zip


将补丁ftp到主机上,然后


#unzip p3006854_9204_linux.zip


#cd 3006854


#chmod 777 rhel3_pre_install.sh


#./rhel3_pre_install.sh



这玩意安装下很快的.


终于所有的东西都搞好了,开始安装OCM(Oracle Cluster Manager)


4.9安装OCM


首先需要生成一个Quorum Disk File,因为我们是单机,所以需
要用命令来生成一个


#dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=1024


这个文件至少需要4+(4*number_of_node)KB,我们给它1M,足够
了。


把oracle安装的原文件解压缩,这个时候,就可以运行安装ocm


$cd /Disk1


$./runInstaller


在产品选择画面,选择 Oracle Cluster Manager,


出现Public Node Information 的时候,填好两个机器的的
hostname,也就是hostname 命令返回的值。我这里分别填
RAC1,RAC2


因为是单机,只要填写第一个,同样,在Private Node Information
中,填写配置的prv地址,也就是分别为RAC1_prv,RAC2_prv


在出现Quorum Disk Information选项的时候,填写刚才生成的文
件/dev/raw/raw1



这玩意也很小,很快就能安装好.


安装好以后,启动oracm看看,是不是都好了.


为了执行oracm,需要首先确保hangcheck-timer已经在正常工作,
确认的命令如下:


#lsmod | grep hang


如果没有结果,那就手工加载这东西(两机器上都要加载)


#/sbin/insmod hangcheck-timer hangcheck_tick=30
hangcheck_margin=180


现在,先修改oracm的配置文件,该文件位
于:$ORACLE_HOME/oracm/admin下,文件名字为:cmcfg.ora,我的该
文件内容如下:


HeartBeat=15000


ClusterName=Oracle Cluster Manager, version 9i


PollInterval=1000


MissCount=20


PrivateNodeNames=RAC1_prv RAC2_prv


PublicNodeNames=RAC1 RAC2


ServicePort=9998


HostName=RAC1


CmDiskFile=/dev/raw/raw1


KernelModuleName=hangcheck-timer


记得两个机器上都要作,否则会有机器起不来,2号机上的内容,除
了HostName为RAC2以外,其他的和1号机一样,就不再贴出2号机
的内容.


下面,该启动oracm了,该命令要root用户执行


#cd $ORACLE_HOME/oracm/bin


#./ocmstart.sh



#ps –ef |grep oracm


如果你看到了类似下面的结果,那就恭喜了:


oracle 4106 1 0 Dec07 ? 00:00:00 oracm


oracle 4108 4106 0 Dec07 ? 00:00:00 oracm


oracle 4109 4108 0 Dec07 ? 00:00:04 oracm


oracle 4110 4108 0 Dec07 ? 00:00:00 oracm


oracle 4111 4108 0 Dec07 ? 00:00:12 oracm


oracle 4112 4108 0 Dec07 ? 00:00:00 oracm


oracle 4113 4108 0 Dec07 ? 00:00:00 oracm


oracle 4114 4108 0 Dec07 ? 00:00:07 oracm


oracle 4115 4108 0 Dec07 ? 00:00:00 oracm


oracle 4628 4108 0 Dec07 ? 00:00:02 oracm


oracle 22276 20823 0 17:53 pts/4 00:00:00 grep oracm


记得两个机器上都要有类似的结果,任何一个机器上如果没有,那
就不用继续下面的操作了.


如果没有,首先,去路径$ORACLE_HOME/oracm/log下看log 文
件cm.log中记录了啥.


修正在这里面提到的错误以后,要先删除文件
/opt/oracle/product/9.2.0/oracm/log/ocmstart.ts,否则会报错,说你频繁的
启动oracm,这东西不晓得是不是oracle的bug,反正你出错了,再要启
动,就必须先rm这个文件.


当你的oracm正确启动以后,就可以继续下面的操作了.


五:Oracle软件安装以及配置:


5.1安装Oracle软件


其实前面的OCM也是oracle的软件,这里的软件,指的是oracle
database的软件.



和安装OCM一样,在一台机器上启动oracle的安装,选择安装
Oracle Database,选择在cluster上安装,然后,选择不创建数据库,然后要
记得指定两个节点的名字,我的是RAC1和RAC2.


在中间有个选择Shared Configuration file的路径的界面,俺也不
知道选择啥,就选了个/dev/raw/raw1,和前面OCM的一样,反正后面也
是要改的,就不管了.


基本上除了换换盘,没有啥要作的.到link到99%的时候,会将
oracle的软件弄到另外一个机器上,所以只需要安装一个机器即可.


5.2配置Shared Configuration文件


这个部分,俺也是吃了个亏的,没弄好,结果gsdctl在2号机上无法
启动.


在这里,要执行以下的命令:


$su – root


#mkdir –p /var/opt/oracle


#touch /var/opt/oracle/srvConfig.loc


#chown oracle:dba /var/ opt/oracle/srvConfig.loc


#chmod 777 /var/ opt/oracle/srvConfig.loc


到了这步以后,把文件/var/opt/oracle/srvConfig.loc手工修改下,只
保留一行内容,我的如下:


srvconfig_loc=/dev/raw/raw14


俺开始这个文件中配置有错误,导致2号机永远起不来gsdctl,只
是提示说失败的启动,后来作了gsdctl的trace后,才最终发现是这个文



件中有问题,所以建议直接修改该文件,然后再作.


好了,配置好了,该初始化了.


使用以下的命令:


#su – oracle


#dd if=/dev/zero of=/dev/raw/raw14 bs=1024 count=102400


#srvconfig –init


都执行完成以后,就该在两个机器上分别启动gsdctl了,命令如下


#gsdctl start


注意看这里的提示,runnig和not runnig实在差别不大,仔细看看哟,
一定要是启动了,才算对.


搞定以后,就进入到下一步吧.



http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
  发帖心情 Post By:2007-1-31 9:07:22

六:Oracle数据库建库以及配置:


建库和部分,其实和单击dbca建库,并无太大区别,俺是一个比较
懒的人,喜欢先用dbca把走到创建的时候,保存为脚本,然后去手工建
库.


记得在填写servcie name和sid的前缀,我都是设置的为rac,这样
的话,1号机上的sid是rac1,2号机上的sid是rac2.


保存了脚本以后,我们就该修改脚本了,因为那个脚本是无法启动
数据库的.


首先要检查下,脚本中的裸设备的大小,千万不要和你创建的裸设
备大小一样,否则会报内部错误的.应该比创建的裸设备稍微小那么一



点点.


要修改的脚本,这些脚本的路径在这里:
/opt/oracle/admin/rac/scripts,主要是init.ora,要屏蔽两个参数,一个是
remote_listener=LISTENERS_RAC,另外一个是
remote_login_passwordfile=exclusive,另外对于监听要作一些重新的配
置,增加如下的内容:


rac1.local_listener=LISTENER_rac1


rac2.local_listener=LISTENER_rac2


rac1.remote_listener=LISTENERS_rac


rac2.remote_listener=LISTENERS_rac


老规矩,我把我整个init.ora文件全部贴出来:


################################################################
##############


# Copyright (c) 1991, 2001, 2002 by Oracle Corporation


################################################################
##############


###########################################


# Cache and I/O


###########################################


db_block_size=8192


db_cache_size=25165824


db_file_multiblock_read_count=16


###########################################


# Cluster Database


###########################################


cluster_database_instances=2


#remote_listener=LISTENERS_RAC


###########################################


# Cursors and Library Cache


###########################################


open_cursors=300


###########################################


# Database Identification



###########################################


db_domain=""


db_name=rac


###########################################


# Diagnostics and Statistics


###########################################


background_dump_dest=/opt/oracle/admin/rac/bdump


core_dump_dest=/opt/oracle/admin/rac/cdump


timed_statistics=TRUE


user_dump_dest=/opt/oracle/admin/rac/udump


###########################################


# File Configuration


###########################################


control_files=("/dev/raw/raw8", "/dev/raw/raw9")


###########################################


# Miscellaneous


###########################################


compatible=9.2.0.0.0


###########################################


# Optimizer


###########################################


hash_join_enabled=TRUE


query_rewrite_enabled=FALSE


star_transformation_enabled=FALSE


###########################################


# Pools


###########################################


java_pool_size=33554432


large_pool_size=8388608


shared_pool_size=83886080


###########################################


# Processes and Sessions


###########################################


processes=150


###########################################


# Redo Log and Recovery


###########################################



fast_start_mttr_target=300


###########################################


# Security and Auditing


###########################################


#remote_login_passwordfile=exclusive


###########################################


# Sort, Hash Joins, Bitmap Indexes


###########################################


pga_aggregate_target=25165824


sort_area_size=524288


###########################################


# System Managed Undo and Rollback Segments


###########################################


undo_management=AUTO


undo_retention=10800


undo_tablespace=UNDOTBS1


cluster_database=true


rac2.instance_name=rac2


rac1.instance_name=rac1


rac1.instance_number=1


rac2.instance_number=2


rac2.thread=2


rac1.thread=1


rac1.undo_tablespace=UNDOTBS1


rac2.undo_tablespace=UNDOTBS2


rac1.local_listener=LISTENER_rac1


rac2.local_listener=LISTENER_rac2


rac1.remote_listener=LISTENERS_rac


rac2.remote_listener=LISTENERS_rac


记得两个机器上都要修改,否则在2号机上无法启动instance,呵
呵.


修改好了以后,直接执行文件rac1.sh.


手工创建数据库以后,这个时候,2号机的数据库是没有办法起来
的,因为undotbs还没有给2号机创建(图形界面肯能不用手工改),但是
既然是手工,那就继续改了.



在1号机中的sqlplus中,执行如下语句:


SQL>create undo tablespace undotbs2 datafile '/dev/raw/raw3'
size 330m;


创建好了以后,就可以去用2号机上的init.ora文件启动数据库了,
如果有2号机启动不了的问题,那咋们再研究研究了.


启动2号机的数据库以后,记得要为2号机的instance创建一个
spfile,1号机的在建库的时候就自己创建了,执行如下命令创建:


SQL> create spfile='/dev/raw/raw5' FROM
pfile='/opt/oracle/admin/rac/scripts/init.ora';


可以看的出来,俺把两个instance的spfile都创建到一个裸设备了,
这样就共享了吗.


这个作完以后,数据库就创建好了,不过别急,你的RAC现在应该
不能进行failover,或者说是不能正确的进行failover.


接下来,该配置网络了.


七:Oracle网络配置:


7.1Oracle网络配置


网络的配置,主要要配置5个文件,它们是:


1号机的listener.ora,tnsnames.ora,2号机的listener.ora,tnsnames.ora
以及客户端的tnsnames.ora文件.


我开始的时候,就是因为1号机的tnsnames.ora文件配置错误,导
致整个RAC中,2号机可向1号机failover,1号机无法向2号机failover,



请教了biti以后,才解决这个问题.这个部分,啥都不说了,俺贴出这5个
文件,供大家参考,并指出那里需要注意.


RAC1上的listener.ora配置:


LISTENER =


(DESCRIPTION_LIST =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))


)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


)


)


)


SID_LIST_LISTENER =


(SID_LIST =


(SID_DESC =


(SID_NAME = PLSExtProc)


(ORACLE_HOME = /opt/oracle/product/9.2.0)


(PROGRAM = extproc)


)


(SID_DESC =


(ORACLE_HOME = /opt/oracle/product/9.2.0)


(SID_NAME = rac1)


)


)


RAC1上的tnsnames.ora配置:


LISTENER =


(DESCRIPTION_LIST =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))


)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


)


)


)


SID_LIST_LISTENER =


(SID_LIST =



(SID_DESC =


(SID_NAME = PLSExtProc)


(ORACLE_HOME = /opt/oracle/product/9.2.0)


(PROGRAM = extproc)


)


(SID_DESC =


(ORACLE_HOME = /opt/oracle/product/9.2.0)


(SID_NAME = rac1)


)


)


[root@RAC1 admin]#


[root@RAC1 admin]# more tnsnames.ora


LISTENERS_rac =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


)


)


LISTENER_rac1 =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


)


)


rac1 =


(DESCRIPTION =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


(CONNECT_DATA =


(SERVICE_NAME = rac)


(INSTANCE_NAME = rac1)


)


)


rac2 =


(DESCRIPTION =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


(CONNECT_DATA =


(SERVICE_NAME = rac)


(INSTANCE_NAME = rac2)


)


)


rac =


(DESCRIPTION =


(LOAD_BALANCE = yes)



(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = rac)


)


)


EXTPROC_CONNECTION_DATA =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))


)


(CONNECT_DATA =


(SID = PLSExtProc)


(PRESENTATION = RO)


)


)


RAC2上的listener.ora配置:


LISTENER =


(DESCRIPTION_LIST =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))


)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


)


)


)


SID_LIST_LISTENER =


(SID_LIST =


(SID_DESC =


(SID_NAME = PLSExtProc)


(ORACLE_HOME = /opt/oracle/product/9.2.0)


(PROGRAM = extproc)


)


(SID_DESC =


(ORACLE_HOME = /opt/oracle/product/9.2.0)


(SID_NAME = rac2)


)


)


RAC2上的tnsnames.ora配置:



LISTENERS_rac =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


)


)


LISTENER_rac2 =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


)


)


rac1 =


(DESCRIPTION =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


(CONNECT_DATA =


(SERVICE_NAME = rac)


(INSTANCE_NAME = rac1)


)


)


rac2 =


(DESCRIPTION =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


(CONNECT_DATA =


(SERVICE_NAME = rac)


(INSTANCE_NAME = rac2)


)


)


rac =


(DESCRIPTION =


(LOAD_BALANCE = yes)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = rac)


)


)


EXTPROC_CONNECTION_DATA =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))



)


(CONNECT_DATA =


(SID = PLSExtProc)


(PRESENTATION = RO)


)


)


注意两个机器的tnsnames.ora配置中粗体部分,这两个host一定
要颠倒过来,否则,你作不了failover可和我没关系哟..这个部分郁闷
了我会,最后是找biti才发现的.


最后的配置,自然是客户端的tnsnames.ora配置了:


RAC =


(DESCRIPTION =


(load_balance=on)


(failover=on)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC1)(PORT = 1521))


(ADDRESS = (PROTOCOL = TCP)(HOST = RAC2)(PORT = 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = rac)


(FAILOVER_MODE =


(TYPE = SELECT)


(METHOD = BASIC)


(RETRIES = 180)


(DELAY = 5)


)


)


)


到这里基本上完成了,如果你的客户端不认识RAC1和RAC2的
话,那么需要修改windows客户端的一个文件,路径
为:c:\windows\system32\drivers\etc,文件名字为hosts,我的配置如下:


127.0.0.1 localhost


172.19.74.241 RAC1


172.19.74.242 RAC2


到了这里,可以测试下RAC的failover了,具体咋测,俺就不写了,
方法比较多.



八:配置cluster database


8.1配置cluster database


因为我们使用的是手工建库,所以并为向系统中注册cluster
database的信息,为了可以使用srvctl来管理cluster database,需要手工
向系统注册,在oracle用户下,依次执行以下命令


srvctl add database -d <db_name> -o $ORACLE_HOME


srvctl add instance -d <db_name> -i <instance_name> -n
<node1>


srvctl add instance -d <db_name> -i <instance_name> -n
<node2>


srvctl config database -d <db_name>


例如,我的是这么执行的:


$ srvctl add database -d rac -o $ORACLE_HOME


$ srvctl add instance -d rac -i rac1 -n RAC1


$ srvctl add instance -d rac -i rac2 -n RAC1


$ srvctl config database -d rac


如果你不执行上面的步骤,则你在执行srvctl config database
-d rac的时候,会报出如下的错误:


PRKR-1007 : getting of cluster database rac configuration failed,
PRKR-1001 : cluster database rac does not exist


PRKO-2005 : Application error: Failure in getting Cluster Database
Configuration for: rac


至此,整个配置全部完成,可以开始享受RAC带来的乐趣了.



[此贴子已经被作者于2007-1-31 9:08:34编辑过]


http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
velika
  9楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:新手上路 帖子:1 积分:23 威望:0 精华:0 注册:2007-2-2 8:52:10
  发帖心情 Post By:2007-2-2 12:02:45

多谢lz


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
阿华light
  10楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:新手上路 帖子:4 积分:38 威望:0 精华:0 注册:2007-1-30 9:37:25
  发帖心情 Post By:2007-2-3 17:33:59

图片点击可在新窗口打开查看图片点击可在新窗口打开查看


顶,可我到哪去弄HP服务器去

图片点击可在新窗口打开查看图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 12 1 2 下一页

返回版面帖子列表

VMWare+Linux AS3+Oraclce9i RAC安装








签名