بکی از وظایف روزانه مدیریت نظارت و Startup/Shutdown یک Listener است. Listener در ماشین هایی که اوراکل سرور نصب شده قرار می گیرد و به درخواست های رسیده از سمت برنامه های ملاینتی برای اتصال به پایگاه داده گوش می دهد و یک خط ارتباطی را ایجاد می کند. در این پست چگونگی Startup/Shutdown و همچنین کنترل وضیعیت Listener را خواهم گفت. پیش از چگونگی Start/Shutdown/Restart کردن ابتدا باید از وضعیت یک Listener مطلع شویم. دستور lsnrctl برای مدیریت Listener ها استفاده می شود. اگر دستور lsnrctl را به تنهایی اجرا کنید وارد محیط اجرای دستور می شوید. پس از اجرا اعلان <LSNRCTL نشان داده می شود.از این پس می توانید دستور های مدیریتی Listener را در جلوی این اعلان اجرا کنید.
با اجرای فرمان help جلوی اعلان <LSNRCTL فهرست دستور های قابل اجرا نشان داده می شود. از دستور status برای اطلاع از وضعیت Listener استفاده می شود. اطلاعاتی مانند :
- زمان/تاریخ Start شدن Listener
- زمان Uptime بودن (چه مدت Listener در حال اجرا شدن است)
- محل فایل پارامترهای Listener که listener.ora نام دارد.
- محل فایل Log برای Listener
LSNRCTL> status
اگر کارت شبکه یا خود Listener غیر فعال باشند با خطای زیر مواجه می شوید.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
همچنین می توانید lsnrctl را به همراه دستور های خودش در خود خط فرمان سیستم عامل یکجا اجرا کنید.
lsnrctl status
در صورتی که Listener در حال اجرا باشد (در حالت Start باشد) با اجرای دستور بالا باید خروجی مشابه زیر را ببنید.
LSNRCTL for Linux: Version 11.1.0.6.0 – Production on 04-APR-2009 16:27:02
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 – Production
Start Date 29-APR-2009 18:43:13
Uptime 6 days 21 hr. 43 min. 49 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary…
Service “devdb” has 1 instance(s).
Instance “devdb”, status UNKNOWN, has 1 handler(s) for this service…
Service “devdb.thegeekstuff.com” has 1 instance(s).
Instance “devdb”, status READY, has 1 handler(s) for this service…
Service “devdbXDB.thegeekstuff.com” has 1 instance(s).
Instance “devdb”, status READY, has 1 handler(s) for this service…
Service “devdb_XPT.thegeekstuff.com” has 1 instance(s).
Instance “devdb”, status READY, has 1 handler(s) for this service…
The command completed successfully
برای فعال یا start کردن Listener از دستور start استفاده کنید.
lsnrctl start
OR
LSNRCTL> start
در صورت موقیت آمیز بودن اجرای دستور های بالا خروجی مشابه زیر مبنی بر Start شدن Listener نشان داده می شود.
$ lsnrctl start
LSNRCTL for Linux: Version 11.1.0.6.0 – Production on 04-APR-2009 16:27:42
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.1.0/bin/tnslsnr: please wait…
TNSLSNR for Linux: Version 11.1.0.6.0 – Production
System parameter file is /u01/app/oracle/product/11.1.0/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 – Production
Start Date 04-APR-2009 16:27:42
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary…
Service “devdb” has 1 instance(s).
Instance “devdb”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully
برای Shutdown یا غیرفعال کردن Listener از دستور زیر استفاده کنید.
LSNRCTL> stop
lsnrctl stop
در صورت اجرای موفقیت آمیز دستور بالا خروجی مشابه زیر خواهید دید.
LSNRCTL for Linux: Version 11.1.0.6.0 – Production on 04-APR-2009 16:27:37
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
The command completed successfully
و در نهایت برای Restart کردن یک Listener باید بجای اینکه آنرا Stop و دوباره Start کنید از دستور reload برای Restart کردن استفاده کنید. reload بدون stop کردن و دوباره start کردن فایل listener.ora اطلاعات آنرا می خواند.
LSNRCTL> reload
lsnrctl reload
و خروجی زیر را در صورت موفق بودن اجرای دستور خواهید دید.
LSNRCTL for Linux: Version 11.1.0.6.0 – Production on 04-APR-2009 17:03:31
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
The command completed successfully
توجه کنید که شاید بیش از یک Listener با نام های متفاوت وجود داشته باشند. تنها باید جلوی هر یک از دستور های بالا نان آن Listener را بیاورید.
lsnrctl CMD LISTENER_NAME
LSNRCTL> CMD LISTENER_NAME
همچنین با فرمت زیر می توانید Help یک دستور را بخوانید.
lsnrctl help CMD
LSNRCTL> help CMD