ChinaUnix.net
 >> ChinaUnix.net > Solaris

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

作者:jxbcpp     发表时间:2002/11/18 09:43pm

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

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

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

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


此文章相关评论:
该文章有47个相关评论如下:(点这儿可以发表评论)
Fun-FreeBSD 发表于: 2002/11/18 09:50pm
我没去你那里啊
 
phoenixli 发表于: 2002/11/18 09:50pm
[这个贴子最后由phoenixli在 2002/11/18 10:14pm 编辑]

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

我在啊

:em01:  :em01:  :em01:  :em02:  :em02:  :em04:  :em04:  :em11:  :em11:

 
phoenixli 发表于: 2002/11/18 09:58pm
椰子闭嘴.
 
jxbcpp 发表于: 2002/11/18 09:58pm
我在此!!!我老师好像现在不在
 
phoenixli 发表于: 2002/11/18 10:02pm
早干嘛了?
 
jerry206 发表于: 2002/11/18 10:04pm
有话就说了.
 
jxbcpp 发表于: 2002/11/18 10:15pm
我猜测是solaris在内存里面建立了一个最近搜索过的目录的清单,当我访问失去连接的T3的目录时,它其实去访问内存里面的东西

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

 
race 发表于: 2002/11/18 10:20pm
光纤通道也是特殊的SCSI接口。
YT,对不对,4哪去了?
 
YT 发表于: 2002/11/18 10:21pm
[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的光纤干什么啊?
先插回去吧。 :em06:

 
jxbcpp 发表于: 2002/11/18 10:25pm
测试HA啊!
 
jxbcpp 发表于: 2002/11/18 10:26pm
测试ROSE-HA
结果由于系统不报错,HA没有切换,ORACLE也僵死在那里
 
jxbcpp 发表于: 2002/11/18 10:29pm
上回我安装了SYBASE时,也发生了这个问题,不过那次连接的是一个外置硬盘,没有HA
 
windflower 发表于: 2002/11/18 10:31pm
说什么
jerry206  你在那
 
YT 发表于: 2002/11/18 10:34pm
[quote][b]下面引用由[u]race[/u]在 [i]2002/11/18 10:20pm[/i] 发表的内容:[/b]
光纤通道也是特殊的SCSI接口。
YT,对不对,4哪去了?
[/quote]

at 这里!

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

 
jxbcpp 发表于: 2002/11/18 10:36pm
就是在运行的过程中拔光纤,为了测试HA的可靠性啊
 
YT 发表于: 2002/11/18 10:49pm
哦,明白了。
 
jxbcpp 发表于: 2002/11/18 10:53pm
我现在怀疑跟数据库有关了,因为两次碰到这个问题都是数据库

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

 
johnyou 发表于: 2002/11/19 00:08am
是正常的,没有什么问题。但你在messages中能看到Online和offline的信息。在Oracle中有不能读取文件的错误。
 
YT 发表于: 2002/11/19 00:08am
明天大家一起分析。。
我今天晚上有点事,sorry。
 
johnyou 发表于: 2002/11/19 00:11am
[quote][b]下面引用由[u]jxbcpp[/u]在 [i]2002/11/18 10:26pm[/i] 发表的内容:[/b]
测试ROSE-HA
结果由于系统不报错,HA没有切换,ORACLE也僵死在那里
[/quote]

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

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

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

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


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

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

谢谢

 
mmmmn 发表于: 2002/11/19 09:05am
ha是和这个不相关吧?HA只是检查服务是否正常而已的吧?
 
johnyou 发表于: 2002/11/19 10:10am
老师再给你讲一次了。HA探测到Oracle不能正常的服务后,将做切的动作。
 
mmmmn 发表于: 2002/11/19 10:46am
[quote][b]下面引用由[u]johnyou[/u]在 [i]2002/11/19 10:10am[/i] 发表的内容:[/b]
老师再给你讲一次了。HA探测到Oracle不能正常的服务后,将做切的动作。
[/quote]
哦,好啊,老师先把这个问题讲明白了再说吧。
PS:切的动作是切西瓜的切吗?
 
phoenixli 发表于: 2002/11/19 11:55am
mmmmn老大,别耍贫嘴,解决问题第一.
 
mmmmn 发表于: 2002/11/19 12:51pm
[quote][b]下面引用由[u]phoenixli[/u]在 [i]2002/11/19 11:55am[/i] 发表的内容:[/b]
mmmmn老大,别耍贫嘴,解决问题第一.
[/quote]
那不是有老师在讲吗,认真听着就成了
 
johnyou 发表于: 2002/11/19 12:58pm
看好了,这样切: 把刀拿来!

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

 
badboys 发表于: 2002/11/19 02:02pm
ha不是有一个日志文件,看该文件就知道拉,如果oracle,应用程序都安装在阵列上,你如果把连接到阵列的光线拔拉,oracle,应用程序无法挂接,肯定无法切换
 
jxbcpp 发表于: 2002/11/19 02:02pm
[这个贴子最后由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 02:14pm
老兄,HA配置有问题了。
 
johnyou 发表于: 2002/11/19 02:15pm
把Oracle的环境和/opt/roseha/etc/的配置贴出来看看。
 
jxbcpp 发表于: 2002/11/19 02:18pm
[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 02:20pm
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 02:21pm
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 02:23pm
你的ORACLE_SID = jksx 吗?看看你现在还有没有Oracle的进程。应该有。
ps -ef | grep ora
 
jxbcpp 发表于: 2002/11/19 02:35pm
[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 02:58pm
能切换就行了。ROSE HA的Agent有一个BUG,上次ROSE HA的工程弄了两天都有没有做好,后来我们想了一个折综的办法解决了。一分钱一分货啊。
 
jxbcpp 发表于: 2002/11/19 03:00pm
[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 03:36pm
我觉得你的ha应该设置mount T3上文件系统,而oracle启动的先决条件是那么文件系统正常的mount。这样那个文件系统不在了系统应该能够察觉的
 
wsy1017 发表于: 2002/11/19 03:40pm
在两个主机上检测到T3的NAME都是c3t1d0???????
 
jxbcpp 发表于: 2002/11/19 03:41pm
我查到原因了,不是ORSEHA的BUG,是新版本要求在配置的时候填入ACTIVE VOLUME
 
zhangwh 发表于: 2002/11/19 04:06pm
你的ha是怎么配置的,我在做ha时,一般盘阵上的东西要做成一个单独的分区,oracle是否能够正常启动要看所在分区是否正常mount,这样你一把光纤相应的分区肯定不在了,ha就回去切换业务了
 
dsk 发表于: 2002/11/19 06:19pm
你用的是t3-es还是parter group
如果是es,则走另一光通道。
 
jxbcpp 发表于: 2002/11/19 08:44pm
谢谢各位
已经查到原因了,ROSEHA新版本要求配置服务的时候填入ACTIVE VOLUME ,而MOUNT POINT不用配置。然后修改ora_start.sh和ora_stop.sh

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

 
 

Copyright © ChinaUnix.net  *  转载请注明出处及作者