در مطلب های پیکربندی شبکه – فایل tnsnames.ora و پیکربندی شبکه – فایل listener.ora در مورد فایل های tnsnames.ora و listener.ora صحبت کردیم و گفتیم که فایل tnsnames.ora در کلاینت وجود دارد تا اطلاعات لازم برای اتصال به سرور را ذخیره کند. فایل listener.ora نیز در سمت سرور قرار دارد اطلاعات در مورد آدرس و شماره پورت را که اوراکل بر روی آنها به درخواست های کلاینت ها گوش می دهد را در خودش ذخیره می کند.

دو پروتکل tcp و icp، پروتکل هایی هستند که در listener و همین طور در فایل tnsnames.ora استفاده می شوند. tcp مربوط به ارتباط فرایندها از طریق سوکت های شبکه و ipc مربوط به ارتباط میان دو فرایند در یک ماشین است. اگر درخواست کلاینت ها زیاد باشد، می توانیم سرور را طوری تنظیم کنیم که از چندین پورت برای پاسخ دادن به درخواست ها استفاده شود.

برای اینکه اوراکل از طریق کارت های شبکه متفاوت به درخواست ها گوش دهد نیاز است تا یک listener جدید را در فایل listener.ora تعریف کنیم. هر listener دارای یک نام منحصر به فرد است و حداقل باید فرمت کلی زیر را داشته باشد.

کد بالا تعریف یک lsitener به نام LISTENER را نشان می دهد. به دلیل آنکه سرور و کلاینت هر دو بر روی یک ماشین هستند، در تنظیم پروتکل tcp در خط ۵، آدرس HOST برابر با localhost است ولی این می تواند مثلا یک آدرس ip برابر با 192.168.1.100 و یا یک نام oracledb.dataset-academy.com باشد. برای ایجاد یک listnere جدید باید گام های زیر را انجام دهیم:

۱ – برای listener باید یک نام جدید در نظر بگیرید.

۲ – تمامی listener ها در فایل listener.ora تعریف می شوند که به صورت پیشفرض در مسیر ORACLE_HOME/network/admin قرار دارند.

۳ – listener جدید باید روی پورت جدید به درخواست ها گوش دهد. شماره پورت پیشفرض عدد ۱۵۲۱ است. برای پورت جدید به طور مثال می توانید عدد ۱۵۲۵ را انتخاب کنید.

۴ – تنظیم های listener جدید باید روی فایل tnsnames.ora نیز اعمال شوند.

گام های تعریف  listener جدید

۱ – برای listener باید یک نام جدید در نظر بگیرید.

۲ – تمامی listener ها در فایل listener.ora تعریف می شوند که به صورت پیشفرض در مسیر ORACLE_HOME/network/admin قرار دارند.

۳ – listener جدید باید روی پورت جدید به درخواست ها گوش دهد. شماره پورت پیشفرض عدد ۱۵۲۱ است. برای پورت جدید به طور مثال می توانید عدد ۱۵۲۵ را انتخاب کنید.

۴ – تست درستی listener با استفاده از دستور lsnrctl

۵ – تنظیم های listener جدید باید روی فایل tnsnames.ora نیز اعمال شوند.

بنابراین برای ایجاد یک listener جدید به نام LISTENER_1525 که بر روی پورت ۱۵۲۱ به درخواست ها گوش می دهد، باید کدهای زیر را به انتهای فایل listener.ora اضافه کنیم.

بنابراین در کد بالا و شکل زیر (۱) می بینید که listener جدید را به نام LISTENER_1525 ایجاد کردیم که بر روی پورت ۱۵۲۵ به درخواست ها گوش می دهد. همچنین نام هاست نیز تغییر نکرده زیرا می خواهیم listener بر پورت متفاوت گوش دهد.

پس از ایجاد listener جدید می توانیم با دستور lsnrctl  به ترتیب دستورهای زیر آنرا آغاز (start) کنیم و وضعیت آنرا مشاهده و سپس آنرا متوقف (stop) کنیم. شکل زیر (۲) خروجی دستور lsnrctl start  را نشان می دهد.

پس از آنکه با موفقیت listener را ایجاد کردیم، باید فایل tnsnames.ora را مطابق با listener جدید ویرایش کنیم.فایل tnsnames.ora در مطلب “پیکربندی شبکه – فایل tnsnames.ora” توضیح داده شده است. فایل tnsnames.ora شامل دو بخش DESCRIPTION و CONTENT_DATA است. در بخش DESCRIPTION سه پارامتر PROTOCOL و HOST و PORT تعیین می شوند و در بخش  CONTENT_DATA نیز پارامترهایی تعیی می شوند که پایگاه داده هدف را تعیین می کنند. به طور مثال SID یا نام instance که پایگاه داده هدف را اداره می کند. همچنین اگر پایگاه داده به عنوان یک سرویس در lsitener ثبت شده باشد، نام سرویس توسط پارامتر SERVICE_NAME تعیین می شود. شکل زیر (۲) تغییرات اعمال شده بر روی فایل tnsnames.ora را نشان می دهد که با توجه به listener جدیدی است که به نام LISTENER_1525 ایجاد کرده ایم.

همانطور که در شکل ۲ می بینید پارامتر ADDRESS_LIST را به درون بخش DESCRIPTION اضافه کرده ایم و سپس دو بخش ADDRESS را به درون آن اضافه کردیم که شامل پورت جدید نیز می شود.