متغیر TWO_TASK

برای اتصال از راه دور به یک بانک اطلاعاتی در محیط sqlplus، معمولا از فرمت زیر استفاده می شود:

[oracle@ol7 ~]$ sqlplus usef/abc@pdb1

با این توضیح که منظور از pdb1 همان net service nameای است که در فایل tnsnames.ora تعریف شده است:

pdb1=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol7)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb1)))

در این زمینه متغیری به نام TWO_TASK هم وجود دارد که طریق دیگری را برای اتصال از راه دور ممکن می سازد به این صورت که با تنظیم این متغیر به نام یک net service name دلخواه، دیگر از متغیر ORACLE_SID که سبب اتصال به instance محلی(local) می شد، استفاده نخواهد شد و به عبارتی دیگر، این متغیر در صورت استفاده، بر متغیر ORACLE_SID ارجحیت دارد.

مثال زیر را ببینید:

[oracle@ol7 ~]$ export TWO_TASK=pdb1
[oracle@ol7 ~]$ echo $ORACLE_SID
db

در چنین شرایطی، استفاده از دستور sqlplus سبب اتصال به محیط pdb1 خواهد شد البته به شرط وارد کردن نام کاربری و رمز صحیح:

[oracle@ol7 ~]$ sqlplus usef/abc
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
SQL>

همچنین دستور زیر نشان می دهد که این اتصال به صورت LOCAL برقرار نشده است:

[root@ol7 ~]# ps -eaf |grep LOCAL
oracle 14499 1 0 12:23 ? 00:00:00 oracledb (LOCAL=NO)

یکی از موارد کاربرد این متغیر به هنگام استفاده از pluggable database و اتصال به یک pdb مشخص برمی گردد. همچنین در صورت استفاده از سیستم عامل ویندوز، باید به جای تنظیم متغیر TWO_TASK از متغیر LOCAL استفاده شود.

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

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

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