欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

删除RAC中的ASM和LISTENER资源的正确方法

程序员文章站 2022-04-24 20:35:55
...

在我们安装RAC的时候,有时候会因为种种报错装上了错误的ASM实例或者LISTENER监听,或者说加入了CLUSTERWARE资源,但是并没有真正起作用,如: 如图所示,这里在2个节点分别创建过ASM1和ASM2实例,对应的资源名称分别为ora.RAC1.ASM1.asm和ora.RAC2.ASM2.asm

在我们安装RAC的时候,有时候会因为种种报错装上了错误的ASM实例或者LISTENER监听,或者说加入了CLUSTERWARE资源,但是并没有真正起作用,如:

删除RAC中的ASM和LISTENER资源的正确方法

如图所示,这里在2个节点分别创建过ASM1和ASM2实例,对应的资源名称分别为ora.RAC1.ASM1.asm和ora.RAC2.ASM2.asm,他们的状态都是UNKONW的,还有每个节点都创建了3个监听,资源名称分别是节点1的ora.RAC1_LISTENER.RAC1.lsnr,ora.RAC1_LISTENER1.RAC1.lsnr,ora.RAC1_LISTENER2.RAC1.lsnr和节点2的ora.RAC2_LISTENER.RAC2.lsnr,ora.RAC2_LISTENER2.RAC2.lsnr,ora.RAC2_LISTENER2.RAC2.lsnr,状态也都是UNKNOW,很明显,这些是错误的资源,因为当执行crsctl start asm -n rac1的时候,会报错,原因可能是在安装的时候,并没有正确完成,如下图:

删除RAC中的ASM和LISTENER资源的正确方法

也无法直接用srvctl来删除喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140630/2014063008523049.jpg" alt="\">

注意,srvctl remove的用法中,object是没有listener的,不能写成srvctl remove listener -n rac1或srvctl remove ora.RAC1_LISTENER.RAC1.lsnr的,其实用srvctl -h查看一下就可以知道

那么应该如何正确删除以上两种资源呢?分两种情况:

一、ASM实例的删除(只列举删除ASM1的情况,ASM2同理可推)

1.查看资源
srvctl config asm -n rac1

2.注销资源

crs_unregister ora.rac1.ASM1.asm

3.注销资源
crs_unregister ora.rac1.ASM1.asm

特别要注意的是,不能在本节点上删除自己的ASM实例。要删除谁,就先停谁的crs,然后在另一个节点执行删除操作,才能成功
./init.crs stop (linux only)
crsctl stop crs (all)

srvctl remove asm -n rac1 -f

二、LISTENER资源的删除(不用像删除ASM那样,必须先停CRS)

1.查看资源
srvctl config listener -n rac1
srvctl config listener -n rac2

2.注销资源
crs_unregister ora.RAC1_LISTENER.RAC1.lsnr

3.停止资源
crs_stop ora.RAC1_LISTENER.RAC1.lsnr

下面放几张操作图作为示例

删除RAC中的ASM和LISTENER资源的正确方法

这里要删除的目标是节点2上的ASM2资源

删除RAC中的ASM和LISTENER资源的正确方法

节点2上停止CRS

删除RAC中的ASM和LISTENER资源的正确方法

此时再去删除节点2上ASM2

删除RAC中的ASM和LISTENER资源的正确方法

此时发现,ASM2已经从资源中删除了,依次全部删除后,正确效果如下图所示:

删除RAC中的ASM和LISTENER资源的正确方法

完成以后,我们就可以用NETCA重新创建监听,用DBCA重新创建ASM实例啦~很方便哦