TNS-01190: The user is not authorized to execute the requested listener command
在Oracle RAC的使用过程中,你可能会遇到如题所示的问题。
关于这个问题的具体表现如下所示:
1 2 3 4 5 6 7 8 9 |
[oracle@dsrac1 alert]$ lsnrctl set log_status off; LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-OCT-2015 22:57:21 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) TNS-01190: The user is not authorized to execute the requested listener command [oracle@dsrac1 alert]$ |
该问题发生在RAC环境中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[root@dsrac1 app]# su - grid [grid@dsrac1 ~]$ crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora.CRS.dg ora....up.type 0/5 0/ ONLINE ONLINE dsrac1 ora.DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE dsrac1 ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE dsrac1 ora....YN.lsnr ora....er.type 0/5 0/ ONLINE ONLINE dsrac1 ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE dsrac2 ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE dsrac1 ora.cvu ora.cvu.type 0/5 0/0 ONLINE ONLINE dsrac2 ora....SM1.asm application 0/5 0/0 ONLINE ONLINE dsrac1 ora....C1.lsnr application 0/5 0/0 ONLINE ONLINE dsrac1 ora....C1.lsnr application 0/5 0/0 ONLINE ONLINE dsrac1 ora.dsrac1.gsd application 0/5 0/0 OFFLINE OFFLINE ora.dsrac1.ons application 0/3 0/0 ONLINE ONLINE dsrac1 ora.dsrac1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE dsrac1 ora....SM2.asm application 0/5 0/0 ONLINE ONLINE dsrac2 ora....C2.lsnr application 0/5 0/0 ONLINE ONLINE dsrac2 ora....C2.lsnr application 0/5 0/0 ONLINE ONLINE dsrac2 ora.dsrac2.gsd application 0/5 0/0 OFFLINE OFFLINE ora.dsrac2.ons application 0/3 0/0 ONLINE ONLINE dsrac2 ora.dsrac2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE dsrac2 ora.erp.db ora....se.type 0/2 0/1 ONLINE ONLINE dsrac2 ora.gsd ora.gsd.type 0/5 0/ OFFLINE OFFLINE ora....network ora....rk.type 0/5 0/ ONLINE ONLINE dsrac1 ora.oc4j ora.oc4j.type 0/1 0/2 ONLINE ONLINE dsrac2 ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE dsrac1 ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE dsrac1 ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE dsrac2 [grid@dsrac1 ~]$ |
在RAC环境里,grid和oracle都是可以开启监听器进程的:
1 2 3 4 5 |
[grid@dsrac1 ~]$ ps -ef | grep --color lsnr oracle 11683 1 0 Sep19 ? 00:00:38 /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER_BRYN -inherit grid 14097 13978 0 23:00 pts/2 00:00:00 grep --color lsnr grid 28041 1 0 21:44 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsn LISTENER -inherit [grid@dsrac1 ~]$ |
而当你欲用oracle用户的lsnrctl去管理与操纵grid的监听器,就会出现如题所示的“TNS-01190”错误。
oracle与grid都是有LSNRCTL工具的,位于它们各自的$ORACLE_HOME/BIN下面,它们的$ORACLE_HOME并不相同。
当使用正确的用户去管理正确的监听器进程,则不会出现上面的问题:
1 2 3 4 5 6 7 8 9 10 11 12 |
[oracle@dsrac1 alert]$ su - grid Password: [grid@dsrac1 ~]$ lsnrctl set log_status off; LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-OCT-2015 22:58:41 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) LISTENER parameter "log_status" set to OFF The command completed successfully [grid@dsrac1 ~]$ |
————————————————————————————
Done。