it-swarm.asia

كيفية استخدام sqlplus للاتصال بقاعدة بيانات Oracle الموجودة على مضيف آخر دون تعديل tnsnames.ora الخاص بي

أريد الاتصال بقاعدة بيانات Oracle الموجودة على مضيف آخر باستخدام sqlplus. هذه الصفحة اقترحت إضافة عنصر إلى أسماء أسماء النطاقات الخاصة بي ليتم ربطها بقاعدة البيانات هذه

local_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
    (CONNECT_DATA = (SID = remote_SID))
  )

ثم استخدم ذلك في sqlplus

sqlplus user/[email protected]_SID

ومع ذلك ، في ظروفي ، لا يمكن تعديل أسماء tnsnames المحلية. هل من الممكن الاتصال بقاعدة بيانات بعيدة فقط باستخدام الوسيطة sqlplus دون الحاجة إلى تغيير أسماء tnsn؟ شيء مثل

sqlplus user/[email protected][email protected] ;( I know, this one is not valid)
83
Louis Rhys
 sqlplus user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))

ربما ، وقد يعتمد ذلك على بيئة سطر الأوامر التي تستخدمها ، تحتاج إلى اقتباس السلسلة ، شيء من هذا القبيل

 sqlplus "user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"

أو

 sqlplus 'user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
88
René Nyffenegger

يمكنك استخدام اتصال سهل لهذا:

sqlplus usr/[email protected]/remote_service_name

لتمكين سهولة الاتصال على جهازك ، يلزمك إضافته إلى NAMES.DIRECTORY_PATH في sqlnet.ora ، على سبيل المثال:

NAMES.DIRECTORY_PATH=(EZCONNECT)

إذا كان المستمع الخاص بك على منفذ غير افتراضي استخدم [email protected]:port/....

في الواقع ، يبدو أن عليك تقديم اسم خدمة ، وليس SID ؛ قد تكون هي نفسها ولكن إذا لم يكن الأمر كذلك ، فستحتاج إلى الحصول عليها من الخادم.

37
Alex Poole

قم بإنشاء نسخة من ملف tnsnames.ora في دليل يمكنك الكتابة إليه ، وقم بتعديل الملف وفقًا لذلك ، ثم قم بتعيين متغير البيئة TNS_ADMIN إلى موقع هذا الدليل.

مثل:

cp $Oracle_HOME/network/admin/tnsnames.ora /tmp/tnsnames.ora
# edit the /tmp/tnsnames.ora file to add your entries

# Set the $TNS_ADMIN environment variable so that sqlplus knows where to look 
export TNS_ADMIN=/tmp
18
Philᵀᴹ

في نظام Unix/Linux ، يمكنك استخدام ملفات التكوين على مستوى المستخدم لتجاوز الإدخالات على مستوى النظام.

 على مستوى المستخدم 
 ملف التكوين ملف التكوين 
 ------------------ ------- ------------ 
 sqlnet.ora $ HOME/.sqlnet.ora 
 tnsnames.ora $ HOME/.tnsnames.ora 

يمكن العثور على ملفات التكوين على مستوى النظام في الدليل $TNS_ADMIN. إذا كان المتغير TNS_ADMIN لم يتم ضبطها ثم يتم البحث عنها في الدليل $Oracle_HOME/network/admin.

لا تستبدل ملفات التكوين على مستوى المستخدم ملفات التكوين على مستوى النظام ككل (مثل TNS_ADMIN الدليل يستبدل كله $Oracle_HOME/network/admin directory) لكنها تضيف إلى أو تغير إدخالات ملفات التكوين على مستوى النظام. في حالة وجود إدخال في ملف تكوين على مستوى المستخدم ، يتم استخدام هذا الإدخال ، إذا لم يكن موجودًا في ملف التكوين على مستوى المستخدم ، فسيتم استخدام إدخال ملف التكوين على مستوى النظام.

3
miracle173