Time and time again, you may need to archive the listener log in the ORACLE_HOME mount point. If you simply rename or remove the log file, you may see the log file disappears in the directory, and the space is released. Although the file descriptor help by listener is mark as “deleted”, the listener will not generate a new file, the log is still flushed to the removed file.
[oracle@appsever fd]$ lsnrctl LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 05-JAN-2012 15:28:00 Copyright (c) 1991, 2006, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> show log_directory Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) LISTENER parameter "log_directory" set to /home/oracle/RAC/10.2.0/network/log/ The command completed successfully LSNRCTL> sho log_file Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) LISTENER parameter "log_file" set to listener_appsever.log The command completed successfully LSNRCTL> exit [oracle@appsever fd]$ cd /home/oracle/RAC/10.2.0/network/log/ [oracle@appsever log]$ ls -l listener_appsever.log -rw-r--r-- 1 oracle oinstall 537774814 Jan 5 15:29 listener_appsever.log [oracle@appsever log]$ du -sh 521M . [oracle@appsever log]$ rm listener_appsever.log [oracle@appsever log]$ ls -l listener_appsever.log ls: listener_appsever.log: No such file or directory [oracle@appsever log]$ du -h 7.2M . [oracle@appsever log]$ ps -ef | grep lsnr oracle 13126 9110 0 15:30 pts/0 00:00:00 grep lsnr oracle 30017 1 0 2011 ? 00:00:10 /home/oracle/RAC/10.2.0/bin/tnslsnr LISTENER_appsever -inherit [oracle@appsever log]$ cd /proc/30017/fd [oracle@appsever fd]$ ls -l total 23 lrwx------ 1 oracle oinstall 64 Jan 5 15:19 0 -> /dev/null lrwx------ 1 oracle oinstall 64 Jan 5 15:19 1 -> /dev/null lrwx------ 1 oracle oinstall 64 Jan 5 15:19 10 -> socket:[62869] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 11 -> socket:[62870] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 12 -> socket:[62872] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 13 -> socket:[63158] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 14 -> socket:[7596135] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 15 -> socket:[7596175] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 16 -> socket:[63235] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 17 -> socket:[67502] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 18 -> socket:[68706] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 19 -> socket:[68708] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 2 -> /dev/null lrwx------ 1 oracle oinstall 64 Jan 5 15:19 20 -> socket:[69906] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 21 -> socket:[69909] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 22 -> socket:[70880] l-wx------ 1 oracle oinstall 64 Jan 5 15:19 3 -> /home/oracle/RAC/10.2.0/network/log/listener_appsever.log (deleted) lr-x------ 1 oracle oinstall 64 Jan 5 15:19 4 -> pipe:[62841] lr-x------ 1 oracle oinstall 64 Jan 5 15:19 5 -> /home/oracle/RAC/10.2.0/network/mesg/nlus.msb lr-x------ 1 oracle oinstall 64 Jan 5 15:19 6 -> /home/oracle/RAC/10.2.0/network/mesg/tnsus.msb l-wx------ 1 oracle oinstall 64 Jan 5 15:19 7 -> pipe:[62842] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 8 -> socket:[62866] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 9 -> socket:[62867]
If you copy back the file descriptor to the log directory, you can see there are updated entries in the log file. The file size has increase from 537774814 to 537775803.
[oracle@appsever fd]$ cp 3 /home/oracle/RAC/10.2.0/network/log/listener_appsever.log [oracle@appsever fd]$ cd - /home/oracle/RAC/10.2.0/network/log [oracle@appsever log]$ ls -l listener_appsever.log -rw-r--r-- 1 oracle oinstall 537775803 Jan 5 15:44 listener_appsever.log
There is a set log_file command in lsnrctl tool, to let the listener new a log file and release the previous one, so you can safely archive the old log file. Here comes a little demo.
[oracle@appsever log]$ lsnrctl LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 05-JAN-2012 15:47:08 Copyright (c) 1991, 2006, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> set log_file listener_appsever_2012_JAN_05.log Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) LISTENER parameter "log_file" set to listener_appsever_2012_jan_05.log The command completed successfully LSNRCTL> exit [oracle@appsever log]$ ls -ltr total 532968 -rw-r--r-- 1 oracle oinstall 0 Jan 4 2010 listener.log -rw-r----- 1 oracle oinstall 8 Mar 10 2010 listener_appsever.log.size -rw-r--r-- 1 oracle oinstall 7426228 Jan 5 15:33 sqlnet.log -rw-r--r-- 1 oracle oinstall 537775803 Jan 5 15:44 listener_appsever.log -rw-r--r-- 1 oracle oinstall 36 Jan 5 15:47 listener_appsever_2012_jan_05.log [oracle@appsever log]$ cd - /proc/30017/fd [oracle@appsever fd]$ ls -l total 23 lrwx------ 1 oracle oinstall 64 Jan 5 15:19 0 -> /dev/null lrwx------ 1 oracle oinstall 64 Jan 5 15:19 1 -> /dev/null lrwx------ 1 oracle oinstall 64 Jan 5 15:19 10 -> socket:[62869] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 11 -> socket:[62870] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 12 -> socket:[62872] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 13 -> socket:[63158] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 14 -> socket:[7596135] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 15 -> socket:[7596175] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 16 -> socket:[63235] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 17 -> socket:[67502] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 18 -> socket:[68706] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 19 -> socket:[68708] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 2 -> /dev/null lrwx------ 1 oracle oinstall 64 Jan 5 15:19 20 -> socket:[69906] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 21 -> socket:[69909] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 22 -> socket:[70880] l-wx------ 1 oracle oinstall 64 Jan 5 15:19 3 -> /home/oracle/RAC/10.2.0/network/log/listener_appsever_2012_jan_05.log lr-x------ 1 oracle oinstall 64 Jan 5 15:19 4 -> pipe:[62841] lr-x------ 1 oracle oinstall 64 Jan 5 15:19 5 -> /home/oracle/RAC/10.2.0/network/mesg/nlus.msb lr-x------ 1 oracle oinstall 64 Jan 5 15:19 6 -> /home/oracle/RAC/10.2.0/network/mesg/tnsus.msb l-wx------ 1 oracle oinstall 64 Jan 5 15:19 7 -> pipe:[62842] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 8 -> socket:[62866] lrwx------ 1 oracle oinstall 64 Jan 5 15:19 9 -> socket:[62867]