Oracle Listener Startup/Shutdown

بکی از وظایف روزانه مدیریت نظارت و 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