تا قبل از اوراکل 19c، عملیات rotate برای logهای xmlی سرویس listener(فایل log.xml) به صورت خودکار انجام می شد و معمولا حجم هر کدام از این logfileها می توانست حدودا به ده مگابایت برسد البته این عملیات برای فایل listener.log اتفاق نمی افتاد و rotate آن به صورت سیستم عاملی و توسط DBA کنترل می شد.
در اوراکل 19c دو پارامتر(پارامترهای listener.ora) برای Rotate خودکار لاگهای listener اضافه شده است که در این متن با این دو پارامتر اشنا خواهیم شد.
LOG_FILE_SIZE_LISTENER_NAME: اندازه logfile باید به چند مگابایت برسد تا عملیات rotate انجام شود البته این پارامتر سایز لاگ فایلهای xmlای listener را مشخص می کند و اندازه فایل listener.log، معمولا درصد ثابتی از لاگ فایلهای xmlای خواهد بود. توجه داشته باشید که مقدار این پارامتر بر مبنای مگابایت تعیین می شود.
LOG_FILE_NUM_LISTENER_NAME: مدتی بعد از عملیات log rotate، تعداد زیادی logfile در سرور موجود خواهند بود با کمک پارامتر LOG_FILE_NUM_LISTENER_NAME، تعیین می کنیم که چه تعداد از لاگ فایلهای آرشیو شده در سرور باقی بمانند بنابرین اگر تعداد logfileها از مقدار تعیین شده برای این پارامتر تجاوز کند، فایلهای قدیمی تر پاک خواهند شد.
برای بررسی تاثیر این پارامترها، این دو پارامتر را در فایل listener.ora به مقداری تنظیم می کنیم:
[oracle@ol7 ~]$ echo “LOG_FILE_NUM_LISTENER=4” >>/19c/home/network/admin/listener.ora
[oracle@ol7 ~]$ echo “LOG_FILE_SIZE_LISTENER=3” >>/19c/home/network/admin/listener.ora
[oracle@ol7 ~]$ lsnrctl reload
LSNRCTL for Linux: Version 19.0.0.0.0 – Production on 17-SEP-2020 03:10:13
Copyright (c) 1991, 2020, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ol7)(PORT=1521)))
The command completed successfully
حجم فعلی listener.log و log.xml را در قسمت زیر مشاهده می کنید:
[root@ol7 ~]# cd /u01/app/oracle/diag/tnslsnr/ol7/listener/alert/
[root@ol7 alert]# ls -lh
-rw-r—– 1 oracle oinstall 406K Sep 17 05:22 log.xml
[root@ol7 alert]# cd /u01/app/oracle/diag/tnslsnr/ol7/listener/trace/
[root@ol7 trace]# ls -lh
-rw-r—– 1 oracle oinstall 122K Sep 17 05:22 listener.log
برای آنکه اثر پارامترها را مورد بررسی قرار دهیم، لازم است تا حجم فایل log.xml را به 3 مگابایت برسانیم این کار را با restart مکرر سرویس لیسنر انجام می دهیم:
[oracle@ol7 ~]$ for i in {1..4000}; do lsnrctl stop >/dev/null;lsnrctl start >/dev/null; done
مشخصات فایلهای ایجاد شده را در قسمت زیر می بینید:
[root@ol7 ~]# cd /u01/app/oracle/diag/tnslsnr/ol7/listener/alert/
-rw-r—– 1 oracle oinstall 3.1M Sep 17 05:26 log_2.xml
-rw-r—– 1 oracle oinstall 3.1M Sep 17 05:27 log_3.xml
-rw-r—– 1 oracle oinstall 3.1M Sep 17 05:29 log_4.xml
-rw-r—– 1 oracle oinstall 3.1M Sep 17 05:30 log_5.xml
-rw-r—– 1 oracle oinstall 397K Sep 17 05:31 log.xml
[root@ol7 ~]# cd /u01/app/oracle/diag/tnslsnr/ol7/listener/trace/
[root@ol7 trace]# ls -lh
-rw-r—– 1 oracle oinstall 919K Sep 17 05:26 listener_2.log
-rw-r—– 1 oracle oinstall 918K Sep 17 05:27 listener_3.log
-rw-r—– 1 oracle oinstall 918K Sep 17 05:29 listener_4.log
-rw-r—– 1 oracle oinstall 918K Sep 17 05:30 listener_5.log
-rw-r—– 1 oracle oinstall 119K Sep 17 05:31 listener.log
Comment (1)