ওরাকল ইনস্ট্যান্ট ক্লায়েন্টের সাথে নামের জন্য এলডিএপ ব্যবহার করুন


14

আংশিকভাবে ওরাকল ক্লায়েন্টের সম্পূর্ণ ইনস্টলেশন সংক্রান্ত বিরোধী সংস্করণ বা সাক্ষ্যদানের সমস্যা হওয়ার ফলস্বরূপ, আমার বিকাশকারী দল (যার মধ্যে আমি একজন সদস্য) ওরাকল তাত্ক্ষণিক ক্লায়েন্ট ব্যবহার করার দিকে এগিয়ে চলেছে এবং বেশিরভাগ ক্ষেত্রে আমাদের ডেভলপমেন্ট মেশিনে ইনস্টলেশন এড়িয়ে চলেছে নতুন প্রকল্প। এটি বেশ ভালভাবে কাজ করেছে, এমনকি আমরা এই সেটআপটির সাহায্যে প্রযোজনার কাজে নিযুক্ত করি। যেহেতু আমরা বেশিরভাগই একটি নেট শপ, তাই আমরা জাভাের পরিবর্তে দেশীয় ক্লায়েন্ট (। নেট র‌্যাপার সহ) ব্যবহার করছি।

এখন একটি ক্লায়েন্টের প্রয়োজন হয় যে আমরা একটি এলডিএপি সার্ভারের সাথে ডাটাবেস পরিষেবাটি নিবন্ধভুক্ত করি এবং নাম সন্ধানের জন্য এলডিএপি সার্ভারটি ব্যবহার করি। তারা সরবরাহ করেছে sqlnet.oraএবং ldap.oraফাইলগুলি (এবং সাথে থাকা এনক্রিপশন কনফিগারেশন ফাইল) যা সঠিক বলে মনে হয়। বিশেষত sqlnet.oraফাইলটি নেট পরিষেবার নাম সন্ধানের জন্য সম্ভাব্য উত্স হিসাবে এলডিএপি নির্দিষ্ট করে:

names.directory_path=(tnsnames,ldap)

আমি আত্মবিশ্বাসী যে আমি যে মেশিনটির সাথে কাজ করছি সেগুলি এসকিউএল বিকাশকারী (যা আমাকে সরাসরি এলডিএপি তথ্য ইনপুট করার অনুমতি দিয়েছিল) ব্যবহার করে সে ক্ষেত্রে অ্যাক্সেস করতে এলডিএপি ব্যবহার করতে পারে। তারা সঠিক বলে ধরে নিচ্ছি, কীভাবে আমি এই কনফিগারেশনটি স্বীকৃতি জানাতে এবং নামের সন্ধানের জন্য এলডিএপি ব্যবহার করতে তাত্ক্ষণিক ক্লায়েন্ট পেতে পারি?

আমি এখন পর্যন্ত কি চেষ্টা করেছি

আমি TNS_ADMINপরিবেশিত পরিবর্তনশীলকে সেই ডিরেক্টরিটিতে সেট করার চেষ্টা করেছি যাতে সরবরাহ করা ফাইল রয়েছে এবং এটি তাত্ক্ষণিক ক্লায়েন্ট কোনও tnsnames.oraফাইলকে স্বীকৃতি দেওয়ার জন্য ভাল কাজ করে, এটি এলডিএপি অনুসন্ধান করা শুরু করার পক্ষে যথেষ্ট বলে মনে হয় না। এখানে ফলাফল (পাথ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড পরিবর্তিত রয়েছে):

(নিম্নলিখিত কমান্ডগুলি উইন্ডোজ কমান্ড প্রম্পট হিসাবে দেখা যায়, তবে আমি কল্পনা করেছিলাম যে লিনাক্সেও অনুরূপ কিছু কার্যকর হবে sqlplushere একই ডিরেক্টরিতে ইনস্ট্যান্ট ক্লায়েন্ট বাইনারি সহ এখানে তাত্ক্ষণিক সংস্করণটি দেখা যাচ্ছে))

C:\TEMP>SET TNS_ADMIN=C:\path\to\sqlnet\ldap\and\tnsnames\ora\files

C:\TEMP>echo %TNS_ADMIN%
C:\path\to\sqlnet\ldap\and\tnsnames\ora\files

C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LOCALTNSNAME

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:22:25 2014

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Produ
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LDAPTNSNAME

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:24:21 2014

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

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

সাইড নোট

টিএনএস, এলডিএপি, বা তাত্ক্ষণিক ক্লায়েন্ট (বা এমনকি কেবলমাত্র সাধারণ ওরাকল ক্লায়েন্ট) এর জন্য ট্যাগ রয়েছে যা এই প্রশ্নের সাথে যুক্ত হতে পারে? আমি কোন সনাক্ত করতে পারেনি।


এটি কি সঠিক নির্বাহযোগ্য? "যেখানে স্ক্লাল্প্লাস"
ব্র্যান্ড্ট

@BjarteBrandt হ্যাঁ, এটা এক আমি এটা যখন আমি রান বলে আশা করা হয় where( C:\TEMP\sqlplus.exe)। আরও নির্দিষ্ট sqlplusকরে বলতে গেলে, মেশিনে "ইনস্টল" করা হয় না। এটি কেবল বর্তমান ডিরেক্টরিতে বসে আছে, পাশে ক্লায়েন্ট বাইনারি রয়েছে। এটি অবশ্যই পরিবেশের ভেরিয়েবলটি tnsnames.oraব্যবহার করে ফাইলটি TNS_ADMINতুলেছে, কারণ এটি সম্পূর্ণ ভিন্ন ডিরেক্টরিতে বন্ধ রয়েছে।
jpmc26

@ বার্জারবার্ট এটি সঠিক ক্লায়েন্ট বাইনারি ব্যবহার করছে তা নিশ্চিত করতে আমি এগিয়ে গিয়ে দৌড়েও এসেছি where oci.dll। এছাড়া প্রত্যাশিত ফলাফলের দেয়: C:\TEMP\oci.dll
jpmc26

একটি ডোমেন সমস্যা হতে পারে। আপনি কি এফকিউ নাম দিয়ে চেষ্টা করেছেন? (dbname_or_w काहीही.domainname)
ik_zelf

2
@ ora-600 দুঃখিত, আমি এই প্রশ্নটি ভুলে গেছি। এটি কনফিগারেশন ফাইলগুলির নিজেরাই সমস্যা হিসাবে দেখা গেছে, যা আমাদের ক্লায়েন্ট আমাদের সরবরাহ করেছিল। (সম্ভবত কার্বেরোস কনফিগারেশন ফাইলটি; আমি হাতছাড়া করতে পারি না)) মজার বিষয়টি হ'ল আমি কোনও পরিবেশ পরিবেশে এটি করার চেষ্টা করছিলাম, এটি মঞ্চে কাজ করা সমানভাবে সমস্যাযুক্ত ছিল, এবং এটি এখনও নেই isn't আমি জানি যতদূর প্রোডে কাজ করা। (আমরা অ্যাপ্লিকেশনটি কাজ করতে স্থানীয় টিএনএস নাম ব্যবহার করে শেষ করে দিয়েছি Def) অবশ্যই প্রকল্পটির জন্য অর্থের অপচয় হবে; এমনকি / যখন এটি প্রোডে কাজ করে তবে ব্যয়ের তুলনায় বিনিয়োগের ক্ষেত্রে রিটার্ন কম হবে।
jpmc26

উত্তর:


1

আপনার ডিরেক্টরিতে ফাইলগুলি রাখুন sqlnet.oraএবং পরিবেশের ভেরিয়েবলগুলি সেট করা নিশ্চিত করুন। আমি আমার ডিরেক্টরি তৈরিldap.ora$ORACLE_ADMINTNS_ADMIN

(লিনাক্স) আমার .bashrc

export TNS_ADMIN=/opt/oracle/instantclient_12_1/network/admin
export ORACLE_ADMIN=${TNS_ADMIN}

[ku14lts:/opt/oracle/instantclient_12_1/network/admin]
$ ls
ldap.ora  sqlnet.ora  tnsnames.ora

এবং আমি আমার মধ্যে নেই এমন একটি ডিবিতে সংযোগ করতে সক্ষম হয়েছি tnsnames.ora

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