2014年11月27日星期四

grid的listener和oracle的listener

用了asm后,gh(grid_home)和oh(oracle_home)两边都有listener,到底该用谁的呢。我测试了一下,是不能删掉gh那边的listener的(我用的srvctl remove listener -l LISTENER),停止了后,就乱了,也就是说,gh这边的listener一定要让oracle restart去启动,不能删。当然oraclehome那边的是可以不用的。但为了方便,我两边都用,于是我修改了gh的lisener.ora。

名字修改为listenerasm,端口变成了1524,后
srvctl  stop listener
srvctl remove listener -l LISTENER
srvctl add listener -l LISTENERASM -p "TCP:1524" -o $ORACLE_HOME
另外还需要修改asm里面的local_listener参数
 以sysasm进去后,
alter system set local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.101.81)(PORT=1524))"
然后重启后,就可以了。
crsctl stat res -t可以看到有了ora.LISTENERASM.lsn的资源,并且是online的。

到这里,好像是结束了,但是用
srvctl config asm看时,发现listenr是空的
ASM home: /u01/app/grid/product/12.1.0/grid
Password file: +DG_GRID/orapwasm
ASM listener:
Spfile: +DG_GRID/ASM/ASMPARAMETERFILE/registry.253.864659509
ASM diskgroup discovery string: /dev/raw/*

找了google,用下面的法子给填上了
 crsctl modify resource ora.asm -attr START_DEPENDENCIES="hard(ora.cssd) weak(ora.LISTENERASM.lsnr)"

然后再次执行
[grid@orasrv localhost]$ srvctl config asm
ASM home: /u01/app/grid/product/12.1.0/grid
Password file: +DG_GRID/orapwasm
ASM listener: LISTENERASM
Spfile: +DG_GRID/ASM/ASMPARAMETERFILE/registry.253.864659509
ASM diskgroup discovery string: /dev/raw/*

也可以用下面的方法

srvctl remove asm
srvctl add asm -l LISTENERASM -p +DG_GRID/ASM/ASMPARAMETERFILE/registry.253.864659509
srvctl config asm

在12.1.0.2里面这样做了,passwordfile就空了,需要通过asmcmd的pwset去设置

没有评论:

发表评论