今天碰到鬼了-----请HA高手替小民捉鬼除妖

发表于:2007-06-09来源:作者:点击数: 标签:
[这个贴子最后由jxbcpp在2002/11/1900:10am编辑] 我在F280(装的是SOLARIS802/02)上装ORACLE8.1.7,ORACLE的 数据库 放在T3上。我起ORACLE后(ORACLE启动正常、客户端访问也正常),拔掉T3的光纤做测试,结果发现系统没有报错,我仍旧能访问T3的目录机器文

[这个贴子最后由jxbcpp在 2002/11/19 00:10am 编辑]

我在F280(装的是SOLARIS 8 02/02)上装ORACLE 8.1.7,ORACLE的数据库放在T3上。我起ORACLE后(ORACLE启动正常、客户端访问也正常),拔掉T3的光纤做测试,结果发现系统没有报错,我仍旧能访问T3的目录机器文件,只是当我想在T3上创建文件时,系统报告:没有足够的空间。我用客户端连接ORACLE,客户端显示服务器不可用,但solaris仍没报错。

我试了好几次了,真是纳闷,我是见到鬼了吗!!!!

有谁知道是怎么回事吗?谢谢

 Fun-FreeBSD 回复于:2002-11-18 21:50:17
我没去你那里啊

 phoenixli 回复于:2002-11-18 21:50:58
[这个贴子最后由phoenixli在 2002/11/18 10:14pm 编辑]

唉,你

 phoenixli 回复于:2002-11-18 21:53:11
问过没有啊?你在不在?

 Fun-FreeBSD 回复于:2002-11-18 21:55:07
[quote][b]下面引用由[u]phoenixli[/u]在 [i]2002/11/18 09:53pm[/i] 发表的内容:[/b]
问过没有啊?你在不在?
[/quote]

我在啊

 :em01:  :em01:  :em01:             

 phoenixli 回复于:2002-11-18 21:58:10
椰子闭嘴.

 jxbcpp 回复于:2002-11-18 21:58:43
我在此!!!我老师好像现在不在

 phoenixli 回复于:2002-11-18 22:02:32
早干嘛了?

 jerry206 回复于:2002-11-18 22:04:54
有话就说了.

 jxbcpp 回复于:2002-11-18 22:15:31
我猜测是solaris在内存里面建立了一个最近搜索过的目录的清单,当我访问失去连接的T3的目录时,它其实去访问内存里面的东西

我做了试验:
SOLARIS 8的/mnt目录下挂接了一个外置硬盘c0t2d0s7
我先让SOLARIS检索/mnt目录:# find /mnt 
然后拔掉外置硬盘,再用find命令,系统仍能检索出/mnt目录下的文件
但是,我做试验的外置硬盘是SCSI,当我拔掉硬盘的时候,系统有报错。
我现在没有光纤设备可以做试验,不知道光纤是否得到的试验效果一样。

 race 回复于:2002-11-18 22:20:22
光纤通道也是特殊的SCSI接口。
YT,对不对,4哪去了?

 YT 回复于:2002-11-18 22:21:02
[quote][b]下面引用由[u]jxbcpp[/u]在 [i]2002/11/18 09:43pm[/i] 发表的内容:[/b]
我在F280(装的是SOLARIS 8 02/02)上装ORACLE 8.1.7,ORACLE的数据库放在T3上。我起ORACLE后(ORACLE启动正常、客户端访问也正常),拔掉T3的光纤做测试,结果发现系统没有报错,我仍旧能访问T3的目录机器文件 ...
[/quote]

你没事拔T3的光纤干什么啊?
先插回去吧。  

 jxbcpp 回复于:2002-11-18 22:25:17
测试HA啊!

 jxbcpp 回复于:2002-11-18 22:26:24
测试ROSE-HA
结果由于系统不报错,HA没有切换,ORACLE也僵死在那里

 jxbcpp 回复于:2002-11-18 22:29:19
上回我安装了SYBASE时,也发生了这个问题,不过那次连接的是一个外置硬盘,没有HA

 windflower 回复于:2002-11-18 22:31:18
说什么
 jerry206  你在那

 YT 回复于:2002-11-18 22:34:43
[quote][b]下面引用由[u]race[/u]在 [i]2002/11/18 10:20pm[/i] 发表的内容:[/b]
光纤通道也是特殊的SCSI接口。
YT,对不对,4哪去了?
[/quote]

at 这里!

要是在运行过程中拔掉光纤,呵呵,我就没有办法了。。。
我也不知道该说什么了


 jxbcpp 回复于:2002-11-18 22:36:57
就是在运行的过程中拔光纤,为了测试HA的可靠性

 YT 回复于:2002-11-18 22:49:27
哦,明白了。

 jxbcpp 回复于:2002-11-18 22:53:14
我现在怀疑跟数据库有关了,因为两次碰到这个问题都是数据库

明天我把数据库停了,只是mount T3,然后拔光纤试试

 johnyou 回复于:2002-11-19 00:08:06
是正常的,没有什么问题。但你在messages中能看到Online和offline的信息。在Oracle中有不能读取文件的错误。

 YT 回复于:2002-11-19 00:08:06
明天大家一起分析。。
我今天晚上有点事,sorry。

 johnyou 回复于:2002-11-19 00:11:48
[quote][b]下面引用由[u]jxbcpp[/u]在 [i]2002/11/18 10:26pm[/i] 发表的内容:[/b]
测试ROSE-HA
结果由于系统不报错,HA没有切换,ORACLE也僵死在那里
[/quote]

你的HA没有做好,做好后它会自动切换的。

好好的想想,老师是怎么教你的。..............................................................................................................................................................................................


 phoenixli 回复于:2002-11-19 00:21:31
咦,刚才你在干嘛?

 jxbcpp 回复于:2002-11-19 08:55:45
[quote][b]下面引用由[u]johnyou[/u]在 [i]2002/11/19 00:11am[/i] 发表的内容:[/b]
你的HA没有做好,做好后它会自动切换的。
好好的想想,老师是怎么教你的。............................................................................................................................... ...
[/quote]

我今天继续测试,先把HA停了,光测试ORACLE启动是拔光纤,看看是否ORACLE仍然僵死


另外,HA我别的测试都已经通过了,安装过程和以前都一样,我想应该没有问题吧。

不管怎么说,今天我试了再向大家汇报情况

谢谢


 mmmmn 回复于:2002-11-19 09:05:44
ha是和这个不相关吧?HA只是检查服务是否正常而已的吧?

 johnyou 回复于:2002-11-19 10:10:06
老师再给你讲一次了。HA探测到Oracle不能正常的服务后,将做切的动作。

 mmmmn 回复于:2002-11-19 10:46:39
[quote][b]下面引用由[u]johnyou[/u]在 [i]2002/11/19 10:10am[/i] 发表的内容:[/b]
老师再给你讲一次了。HA探测到Oracle不能正常的服务后,将做切的动作。
[/quote]
哦,好啊,老师先把这个问题讲明白了再说吧。
PS:切的动作是切西瓜的切吗?

 phoenixli 回复于:2002-11-19 11:55:18
mmmmn老大,别耍贫嘴,解决问题第一.

 mmmmn 回复于:2002-11-19 12:51:30
[quote][b]下面引用由[u]phoenixli[/u]在 [i]2002/11/19 11:55am[/i] 发表的内容:[/b]
mmmmn老大,别耍贫嘴,解决问题第一.
[/quote]
那不是有老师在讲吗,认真听着就成了

 johnyou 回复于:2002-11-19 12:58:06
看好了,这样切: 把刀拿来!

Active Server -> Standby Server
Standby Server -> Active Server

 badboys 回复于:2002-11-19 14:02:10
ha不是有一个日志文件,看该文件就知道拉,如果oracle,应用程序都安装在阵列上,你如果把连接到阵列的光线拔拉,oracle,应用程序无法挂接,肯定无法切换

 jxbcpp 回复于:2002-11-19 14:02:41
[这个贴子最后由jxbcpp在 2002/11/19 02:05pm 编辑]

昨天做测试的时候由于赶时间,太匆忙,未仔细查看现象,我描述有所错误

1、系统的确报错了,我今天在/var/adm/messages中找到错误(昨天未开CONSOLE窗口,以后做测试时一定记住打开CONSOLE窗口,或者用tail -f /var/adm/messages,以及时使看到系统报告的错误)
2、HA检测到ORACLE的错误,发出重起本地ORACLE的命令(我在ROSEHA里面配置了RESTART TIMES = 1),但是重起启动仍然不正常,HA的日志显示为:
11/19/02 13:48:42 [WARNING]The agent heartbeat of <ora> timeout.Restarting the s
ervice.
11/19/02 13:48:42 [INFO]The service <ora> execute </opt/roseha/bin/ora_start.sh
jobdown ora 3>&2 4>&2 5>&2 6>&2 7>&2 8>&2 9>&2 &>.
11/19/02 13:48:43 [INFO]Wait </opt/roseha/bin/ora_start.sh> to finish...
Can't open /dev/rdsk/c3t1d0s1
mount: /dev/dsk/c3t1d0s1 is already mounted, /dbs is busy,
        or the allowable number of mount points has been exceeded
stty: : No such device or address
Sun Microsystems Inc.   SunOS 5.8       Generic Patch   October 2001
stty: : No such device or address
Oracle Server Manager Release 3.1.7.0.0 - Production

Copyright (c) 1997, 1999, Oracle Corporation.  All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.0.0 - 64bit Production

SVRMGR> Connected.
SVRMGR> ORACLE instance started.
Total System Global Area                        921407164 bytes
Fixed Size                                         102076 bytes
Variable Size                                   101924864 bytes
Database Buffers                                819200000 bytes
Redo Buffers                                       180224 bytes
ORA-00205: error in identifying controlfile, check alert log for more info
SVRMGR> Server Manager complete.
stty: : No such device or address
Sun Microsystems Inc.   SunOS 5.8       Generic Patch   October 2001
stty: : No such device or address

LSNRCTL for Solaris: Version 8.1.7.0.0 - Production on 19-NOV-2002 13:49:03

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started
11/19/02 13:49:10 haapi--apiok(ora).


明明是ORACLE出了好多错,它居然报告apiok(ora)!!!


 johnyou 回复于:2002-11-19 14:14:07
老兄,HA配置有问题了。

 johnyou 回复于:2002-11-19 14:15:38
把Oracle的环境和/opt/roseha/etc/的配置贴出来看看。

 jxbcpp 回复于:2002-11-19 14:18:12
[quote][b]下面引用由[u]johnyou[/u]在 [i]2002/11/19 02:15pm[/i] 发表的内容:[/b]
把Oracle的环境和/opt/roseha/etc/的配置贴出来看看。
[/quote]

Server Configuration Section:
        SERVER_LIST:            SunDB2,SunDB1
        HOST_NAME:              SunDB2
          NIC:                  eri0,qfe0,qfe1
          IP_ADDRESS:           134.102.39.133,192.168.0.2,192.168.1.2
          ETHERNET_ADDRESS:     0:3:ba:18:1:c9,0:3:ba:18:1:c9,0:3:ba:18:1:c9
          SUBNET_MASK:          255.255.255.128,255.255.255.252,255.255.255.252
        HOST_NAME:              SunDB1
          NIC:                  eri0,qfe0,qfe1
          IP_ADDRESS:           134.102.39.132,192.168.0.1,192.168.1.1
          ETHERNET_ADDRESS:     0:3:ba:16:d8:86,0:3:ba:16:d8:86,0:3:ba:16:d8:86
          SUBNET_MASK:          255.255.255.128,255.255.255.252,255.255.255.252

License Information Section:
        HOST_NAME:              SunDB1
          SERIAL_NO:            3102111513332121
          EXPIRATION_DATE:      99999999
          LICENSE:              074760522235423826080160656522425139180341131304
24002223130024324435562432450925121078791200547356090425622934289834290012011185
47317496631611029664840033788316
        HOST_NAME:              SunDB2
          SERIAL_NO:            3102111513332121
          EXPIRATION_DATE:      99999999
          LICENSE:              070556301125476623472712875015133235623920249193
31159207110815472026771213379185115359510031217448322211552359401226875234582697
31252858103724801419710131950983

PrivateNet Configuration Section:
PRIVATENET_LIST:                sock,rs232
PRIVATENET_TYPE:                socket
        NAME:                   sock
        PRIORITY:               99
        HEARTBEAT_INTERVAL:     5
        HEARTBEAT_MAXMISS:      3
        HOST_NAME1:             SunDB2
          IP_ADDRESS:           192.168.0.2
          PORT_NO:              3000
        HOST_NAME2:             SunDB1
          IP_ADDRESS:           192.168.0.1
          PORT_NO:              3000
PRIVATENET_TYPE:                rs232
        NAME:                   rs232
        PRIORITY:               66
        HEARTBEAT_INTERVAL:     5
        HEARTBEAT_MAXMISS:      3
        HOST_NAME1:             SunDB1
          DEVICE_NAME1:         /dev/ttya
        HOST_NAME2:             SunDB2
          DEVICE_NAME2:         /dev/ttya
        BAUDRATE:               9600

Service Configuration Section:
SERVICE_LIST:                   ora
     SERVICE_NAME:              ora
        TYPE:                   ORACLE
        SID:                    jksx
        USERNAME:
        PATH:
        LICENSE:                E12C7EC84D605353
        ACTIVE_SERVER:          SunDB1
          IP_HOLDING_NIC:       eri0,qfe1,
          ACTIVE_VOLUME:
        BACKUP_SERVER:          SunDB2
          IP_HOLDING_NIC:       eri0,qfe1,
          BACKUP_VOLUME:
        ACTIVE_IP_ADDRESS:      134.102.39.131
        ACTIVE_ETHERNET:
        ACTIVE_SUBNET_MASK:     255.255.255.128
        MOUNT_POINT:
        START_SCRIPT:           ora_start.sh
        STOP_SCRIPT:            ora_stop.sh
        AGENT_SCRIPT:           ha_ag_oracle.x
        START_TIMEOUT:          150
        CHECK_INTERVAL:         30
        RESTART_TIMES:          1
        AUTO_SWITCHBACK:        N


请师父指教



 jxbcpp 回复于:2002-11-19 14:20:05
ora_start.sh

#!/bin/sh
TERM=sun-cmd
export TERM

out=$HAHOME/bin/APIOUT.x
JOBNAME=$2
DISKDEV=/dev/dsk/c3t1d0s1
RDISKDEV=/dev/rdsk/c3t1d0s1

#DG=dg
#/opt/roseha/bin/vmstart.sh $DG
#if test $? -ne 0
#then
#       ${out} "[INFO] The service <${JOBNAME}> cannot start because vmdg <${DG}
> fails."
#       exit
#fi
#DISKDEV=/dev/vx/dsk/$DG/vol01
#RDISKDEV=/dev/vx/rdsk/$DG/vol01

fsck -m $RDISKDEV
if test $? -eq 32
then
        ${out} "[INFO] fsck ${RDISKDEV}......"
        fsck -y $RDISKDEV
fi

mount $DISKDEV /dbs

grep $DISKDEV /etc/mnttab >/dev/null 2>&1
if test $? -ne 0
then
        ${out} "[INFO] Cannot mount ${DISKDEV}."
        exit
fi

/opt/roseha/bin/ha_ag_oracle.x $JOBNAME 0
if test $? -eq 1
then
        ${out} "[INFO] The service <${JOBNAME}> has started."
        exit
else
        ${out} "[INFO] Start Oracle server...."
        su - oracle -c "/oracle/app/oracle/product/8.1.7/bin/svrmgrl <<!
                connect internal
                startup
                exit
                !"
        su - oracle -c "/oracle/app/oracle/product/8.1.7/bin/lsnrctl start"
fi

${out} "[INFO] Start shell <$0> finished."


 jxbcpp 回复于:2002-11-19 14:21:13
ora_stop.sh

#!/bin/sh
TERM=sun-cmd
export TERM

out=$HAHOME/bin/APIOUT.x
DISKDEV=/dev/dsk/c3t1d0s1
JOBNAME=$2

#DG=dg
#DISKDEV=/dev/vx/dsk/$DG/vol01

FatalExit()
{
        if test -f $HAHOME/bin/ha_stop_fail.sh
        then
                $HAHOME/bin/ha_stop_fail.sh $JOBNAME
        fi
}

/opt/roseha/bin/ha_ag_oracle.x $JOBNAME 0
if test $? -ne 0
then
        ${out} "[INFO] Stop Oracle server...."
        su - oracle -c "/oracle/app/oracle/product/8.1.7/bin/lsnrctl stop"
        su - oracle -c "/oracle/app/oracle/product/8.1.7/bin/svrmgrl <<!
                connect internal
                shutdown abort
                exit
                !"
fi
sync

/opt/roseha/bin/UMOUNT $DISKDEV /dbs
grep $DISKDEV /etc/mnttab >/dev/null 2>&1
if test $? -eq 0
then
        ${out} "[WARNING] Cannot umount ${DISKDEV}."
        FatalExit
fi

#/opt/roseha/bin/vmstop.sh $DG
#if test $? -ne 0
#then
#       ${out} "[INFO] The service <${JOBNAME}> cannot stop because vmdg <${DG}>
 fails."
#       FatalExit
#fi

${out} "[INFO] Stop shell <$0> finished."

 johnyou 回复于:2002-11-19 14:23:07
你的ORACLE_SID = jksx 吗?看看你现在还有没有Oracle的进程。应该有。
ps -ef | grep ora

 jxbcpp 回复于:2002-11-19 14:35:38
[quote][b]下面引用由[u]johnyou[/u]在 [i]2002/11/19 02:23pm[/i] 发表的内容:[/b]
你的ORACLE_SID = jksx 吗?看看你现在还有没有Oracle的进程。应该有。
ps -ef | grep ora
[/quote]

ORACLE_SID是jksx
另外,我把RESTART TIMES改成 0,这样,HA过了2分钟探测到ORACLE出问题了,就在ACTIVE SERVER上运行ora_stop.sh,但是运行的结果是不能正常结束ORACLE,过了1分钟左右,ACTIVE SERVER自动重新启动,然后BACKUP SERVER自动接管服务。

 johnyou 回复于:2002-11-19 14:58:27
能切换就行了。ROSE HA的Agent有一个BUG,上次ROSE HA的工程弄了两天都有没有做好,后来我们想了一个折综的办法解决了。一分钱一分货啊。

 jxbcpp 回复于:2002-11-19 15:00:57
[quote][b]下面引用由[u]johnyou[/u]在 [i]2002/11/19 02:58pm[/i] 发表的内容:[/b]
能切换就行了。ROSE HA的Agent有一个BUG,上次ROSE HA的工程弄了两天都有没有做好,后来我们想了一个折综的办法解决了。一分钱一分货啊。
[/quote]

我估计这个问题是由于ROSEHA的BUG


 zhangwh 回复于:2002-11-19 15:36:10
我觉得你的ha应该设置mount T3上文件系统,而oracle启动的先决条件是那么文件系统正常的mount。这样那个文件系统不在了系统应该能够察觉的

 wsy1017 回复于:2002-11-19 15:40:15
在两个主机上检测到T3的NAME都是c3t1d0???????

 jxbcpp 回复于:2002-11-19 15:41:47
我查到原因了,不是ORSEHA的BUG,是新版本要求在配置的时候填入ACTIVE VOLUME

 zhangwh 回复于:2002-11-19 16:06:31
你的ha是怎么配置的,我在做ha时,一般盘阵上的东西要做成一个单独的分区,oracle是否能够正常启动要看所在分区是否正常mount,这样你一把光纤相应的分区肯定不在了,ha就回去切换业务了

 dsk 回复于:2002-11-19 18:19:29
你用的是t3-es还是parter group
如果是es,则走另一光通道。

 jxbcpp 回复于:2002-11-19 20:44:09
谢谢各位
已经查到原因了,ROSEHA新版本要求配置服务的时候填入ACTIVE VOLUME ,而MOUNT POINT不用配置。然后修改ora_start.sh和ora_stop.sh

我犯的错误是没有填写ACTIVE VOLUME

原文转自:http://www.ltesting.net