اتصال از راه دور به دیتابیس بدون استفاده از listener

پرسش: چگونه می توان در زمان پایین بودن سرویس listener، به صورت از راه دور به دیتابیس متصل شد؟

در متن پیش رو، خواهیم دید که علاوه پروسس listener، پروسس های دیگری چون Dispatcher، هم امکان اتصال از راه دور را فراهم می کنند.

برای استفاده از چنین قابلیتی، باید پارامتر dispatchers از قبل تنظیم شده باشد البته این پارامتر، به صورت پیش فرض و با ایجاد دیتابیس، تنظیم می شود:

SQL> show parameter dispatchers

NAME                                          VALUE

—————-                     —————————–

dispatchers      (PROTOCOL=TCP) (SERVICE=noncdbXDB)

در اولین گام، شماره پورت dispatcher را با کمک ویوی v$dispatcher مشخص می کنیم:

SQL> select name,network from v$dispatcher;

NAME NETWORK
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=hkm2)(PORT=44910))

با دانستن شماره پورت، net service nameای را با نام dis در فایل tnsnames.ora تعریف می کنیم:

dis=

  (DESCRIPTION =

    (ADDRESS_LIST =

                (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.20)(PORT=44910)))

    (CONNECT_DATA =

      (sid = noncdb)

    )

  )

بعد از تنظیم net service name، سرویس listener را down می کنیم:

[oracle@myhost ~]$ lsnrctl stop

LSNRCTL for Linux: Version 18.0.0.0.0 – Production on 20-ESFAND     -1397 16:41:32

Copyright (c) 1991, 2018, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1521)))

The command completed successfully

با کمک net service nameای که ایجاد کردیم، به بانک متصل خواهیم شد:

[oracle@myhost ~]$ sqlplus  usef/a@dis

SQL*Plus: Release 18.0.0.0.0 – Production on Mon Esfand 20 16:42:32 1397

Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Last Successful login time: Mon Mar 11 2019 16:40:08 +03:30

Connected to:

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production

Version 18.3.0.0.0

SQL>  select p.SPID,s.SID,s.SERIAL# from v$session s,v$process p where sid = (select m.SID from v$mystat m where rownum <= 1) and s.PADDR=p.ADDR;

SPID                            SID    SERIAL#

———————— ———- ———-

28994                           261      38502

با دستور ps، جزییات بیشتری را در مورد این پروسس خواهیم دید:

[oracle@myhost ~]$ ps -eaf|grep 28994

oracle   28994     1  0 Mar09 ?        00:00:11 ora_s000_noncdb

ارتباط با نویسنده مطلب:vahidusefzadeh@ کانال تخصصی اوراکل و لینوکس: OracleDB@

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.