আমার নিজের tnsnames.ora পরিবর্তন না করে অন্য হোস্টে অবস্থিত ওরাকল ডেটাবেস সাথে সংযোগ করতে কীভাবে স্ক্যালপ্লাস ব্যবহার করবেন?


80

আমি স্ক্যালপ্লাস ব্যবহার করে অন্য হোস্টে অবস্থিত একটি ওরাকল ডাটাবেসের সাথে সংযোগ করতে চাই। এই পৃষ্ঠাটি সেই ডাটাবেসে সংযুক্ত হওয়ার জন্য আমার tnsname এ একটি আইটেম যুক্ত করার পরামর্শ দিয়েছে

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

এবং তারপরে স্ক্যালপ্লাসে এটি ব্যবহার করুন

sqlplus user/pass@local_SID

তবে আমার পরিস্থিতিতে স্থানীয় ট্যাননাম সংশোধন করা সম্ভব নয়। Tns নাম পরিবর্তন না করে কেবল sqlplus আর্গুমেন্ট ব্যবহার করে কি কোনও দূরবর্তী ডাটাবেসে সংযুক্ত হওয়া সম্ভব? কিছুটা এইরকম

sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)

1
এমনকি আরও ছোট - স্ক্যালপ্লাস ব্যবহারকারী / পাসওয়ার্ড @ ডাটাবেস

@ গ্লেনলং - তবে আপনার সংস্করণে databaseএখনও একটি টিএনএস এলিফ রয়েছে, যা এর মধ্যে বিদ্যমান ছিল tnsnames.ora, সুতরাং লুই যেমন এড়াতে চাইছিলেন তেমনই একই?
অ্যালেক্স পুল

উত্তর:


85
 sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))

হতে পারে, এবং এটি আপনি যে কমান্ড লাইনের পরিবেশটি ব্যবহার করছেন তার উপর নির্ভরশীল, আপনার স্ট্রিংটি উদ্ধৃত করতে হবে, এরকম কিছু

 sqlplus "user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"

অথবা

 sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'

35

আপনি এর জন্য সহজ সংযোগ ব্যবহার করতে পারেন :

sqlplus usr/pass@hostname.network/remote_service_name

আপনার মেশিনে সহজ সংযোগ সক্ষম করতে , আপনাকে এটি NAMES.DIRECTORY_PATH স্ক্যালনেট.ওর মধ্যে যুক্ত করতে হবে , যেমন:

NAMES.DIRECTORY_PATH=(EZCONNECT)

যদি আপনার শ্রোতা অ-ডিফল্ট পোর্ট ব্যবহারে থাকে ...@hostname.network:port/...

আসলে মনে হচ্ছে আপনাকে কোনও সার্ভিসের নাম সরবরাহ করতে হবে, এসআইডি নয়; তারা একই হতে পারে তবে তা না হলে আপনাকে সার্ভার থেকে এটি নেওয়া দরকার।


1
যদি পরিষেবার নামটি হোস্টনামের মতো হয় তবে কানেক্ট করার সময় আপনাকে পরিষেবার নাম উল্লেখ করার প্রয়োজন নেই। (ব্যবহারিকভাবে কেউ এটি করেন না, তবে এটি জেনে ভাল লাগবে))
ডিউরেট

মৃত লিঙ্ক .......
হারভে

1
@ হার্ভে - আপডেট হয়েছে, ধন্যবাদ
অ্যালেক্স পুল

17

আপনি যে ডিরেক্টরিতে লিখতে পারেন সেই ডিরেক্টরিতে 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

2
এটি অনেক বেশি, আরও ভাল প্রতিক্রিয়া
অ্যান্ড্রু স্লেজ

এই পদ্ধতির এমন একটি সিস্টেমের সাথে কাজ করে যার স্কেলপ্লাস ক্লায়েন্ট ব্যতীত অন্য কোনও ওরাকল অবকাঠামো ইনস্টল করা নেই। কেবল db সার্ভার থেকে tnsname.ora অনুলিপি করুন, এবং ফিলের প্রক্রিয়াটি অনুসরণ করুন।
দ্য রিলে

3

ইউনিক্স / লিনাক্স সিস্টেমে আপনি সিস্টেম স্তরের এন্ট্রিগুলিকে ওভাররাইড করতে ব্যবহারকারী স্তর কনফিগারেশন ফাইলগুলি ব্যবহার করতে পারেন ।

সিস্টেম-স্তরের ব্যবহারকারী-স্তর 
কনফিগারেশন ফাইল কনফিগারেশন ফাইল
------------------ -------------------
sqlnet.ora OME হোম /। sqlnet.ora
tnsnames.ora OME হোম / .tnsnames.ora

সিস্টেম-স্তরের কনফিগারেশন ফাইল ডিরেক্টরিতে পাওয়া যাবে $TNS_ADMIN। যদি ভেরিয়েবল TNS_ADMINসেট না করা থাকে তবে সেগুলি ডিরেক্টরিতে অনুসন্ধান করা হয় $ORACLE_HOME/network/admin

ব্যবহারকারী-স্তরের কনফিগারেশন ফাইলগুলি সামগ্রিকভাবে সিস্টেম স্তরের কনফিগারেশন ফাইলগুলিকে প্রতিস্থাপন করে না ( TNS_ADMINডিরেক্টরিটি পুরো $ORACLE_HOME/network/adminডিরেক্টরিটিকে বিকল্প হিসাবে প্রতিস্থাপন করে ) তবে তারা সিস্টেম-স্তরের কনফিগারেশন ফাইলগুলির এন্ট্রিগুলিতে যুক্ত বা পরিবর্তন করে। যদি কোনও ব্যবহারকারী-স্তরের কনফিগারেশন ফাইলে কোনও এন্ট্রি উপস্থিত থাকে তবে এটি ব্যবহার করা হয়, এটি যদি ব্যবহারকারী-স্তরের কনফিগারেশন ফাইলে উপস্থিত না থাকে তবে সিস্টেম-স্তর কনফিগারেশন ফাইলের প্রবেশ ব্যবহার করা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.