一、設置監聽的密碼
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db02.nowexit)(PORT=1521)))
Password changed for LISTENER
The command completed successfully
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db02.nowexit)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File /u01/app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Old Parameter File /u01/app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.bak
The command completed successfully
在listener.ora文件中添加LOCAL_OS_AUTHENTICATION_LISTENER = OFF,啓用監聽密碼
二、這下我們再來停止監聽
[oracle@db02 ~]$ lsnrctl stop
LSNRCTL for Linux: Version 10.2.0.2.0 - Production on 09-MAR-2014 23:59:53
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db02.nowexit)(PORT=1521)))
TNS-01169: The listener has not recognized the password
可以看出報密碼沒有指定。
LSNRCTL> set password
Password:
The command completed successfully
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db02.nowexit)(PORT=1521)))
The command completed successfully
執行密碼以後則可以正常關閉。
當我們在忘記密碼的時候,就算將監聽文件刪除、替換都沒有辦法重置密碼。這個時候,我們則需要查殺監聽進程。
[oracle@db02 admin]$ ps -elf | grep lsnr | grep -v grep
0 S oracle 18572 17481 0 78 0 - 4748 - 00:01 pts/0 00:00:00 lsnrctl
0 S oracle 18574 1 0 78 0 - 10591 stext 00:01 ? 00:00:00 /u01/app/oracle/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER –inherit
[oracle@db02 admin]$ kill -9 18574
同時註釋監聽文件文件中的以下兩項
#PASSWORDS_LISTENER = 7AAA926EC45D3A02
#LOCAL_OS_AUTHENTICATION_LISTENER = OFF
這樣既想當於無密碼,重啓監聽即可。