ORA-12514 টিএনএস: শ্রোতা বর্তমানে সংযুক্ত বিবরণীতে অনুরোধকৃত পরিষেবার সম্পর্কে জানেন না


226

আমাদের স্থানীয়ভাবে একটি অ্যাপ্লিকেশন চলছে যেখানে আমরা নিম্নলিখিত ত্রুটিটি অনুভব করছি:

ORA-12514: টিএনএস: শ্রোতা বর্তমানে সংযুক্ত বিবরণীতে অনুরোধকৃত পরিষেবার সম্পর্কে জানেন না

আমি সংযোগটি পরীক্ষা করেছি TNSPingযা সঠিকভাবে সমাধান হয়েছে এবং আমি SQLPlusসংযোগ দেওয়ার চেষ্টা করেছি, যা উপরের মতো একই ত্রুটির সাথে ব্যর্থ হয়েছিল। আমি এই বাক্য গঠনটি এর জন্য ব্যবহার করেছি SQLPlus:

sqlplus username/password@addressname[or host name]

আমরা তা যাচাই করেছি:

  • সার্ভারে টিএনএস শ্রোতা চলছে।
  • সার্ভারে ওরাকল নিজেই চলছে।

আমরা এই পরিবেশে যে কোনও পরিবর্তন হয়েছে তা জানি না। আমরা পরীক্ষা করতে পারি অন্য কিছু?


2
টিএনএসপিং কমান্ডটি (প্যারাম সহ) আপনি কী ব্যবহার করেছেন?
গ্রজেগোর্জ ডাব্লু

আপনি যখন "স্থানীয়ভাবে চলছেন" বলছেন তখন আপনি কি বোঝাতে চাইছেন যে অ্যাপ্লিকেশনটি একই হোস্টের কোনও ডাটাবেসে সংযুক্ত হচ্ছে? এছাড়াও, আপনার sqlnet.ora ফাইলের সামগ্রীগুলি কী কী? স্ক্যালপ্লাস এবং টিএনএস্পিংয়ের জন্য কোন সংস্করণগুলি প্রতিবেদন করা হয়েছে এবং আপনি কি নিশ্চিত যে সেগুলি একই অর্কেলহোমে আছে?
ডেভিড অ্যালড্রিজ

1
ডাটাবেস পুনরায় চালু করার চেষ্টা করুন। যেহেতু প্রারম্ভকালে তাদের শ্রোতাদের তাদের অস্তিত্ব সম্পর্কে অবহিত করার কথা বলে এটি আপনার সমস্যার সমাধান করতে পারে।
জেনস স্কাউডার

1
ডাটাবেস পুনঃসূচনা করার চেয়ে অলটার সিস্টেম রেজিস্টার কম কঠোর।
ডিসিকি

উত্তর:


209

আমি এই বিষয় ছিল এবং ফিক্স নিশ্চিত মধ্যে করতে যাচ্ছিলেন আপনার ডাটাবেস একটি বৈধ সেবা নাম। বৈধ পরিষেবার নামগুলি সন্ধান করার জন্য, আপনি নীচের প্রশ্নটি ওরাকলে ব্যবহার করতে পারেন:tnsnames.oraSERVICE_NAME

select value from v$parameter where name='service_names'

একবার আমি আপডেট করেছি tnsnames.ora:

TEST =
   (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = *<validhost>*)(PORT = *<validport>*))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = *<servicenamefromDB>*)
    )
)

তারপর আমি দৌড়ে:

sqlplus user@TEST

সফল! শ্রোতা মূলত আপনাকে বলে দিচ্ছেন যে আপনি যে নাম_র নাম ব্যবহার করছেন তা ডিবি অনুযায়ী বৈধ পরিষেবা নয়।

(* আমি উইন 7 ক্লায়েন্ট ওয়ার্কস্টেশন থেকে রিমোট ডিবিতে স্ক্যালপ্লাস চালিয়ে ডিবিএগুলিকে দোষ দিয়েছিলাম;) *)


2
উইন 7 এ,% ORACLE_HOME% \ নেটওয়র্ক \ অ্যাডমিন ns tnsnames.ora
ব্র্যাড

198
আমি ডিবিকে কীভাবে জিজ্ঞাসা করব, যদি আমি এর সাথে সংযোগ করতে সক্ষম না হই তবে ??
ইসাবেলে মার্টজ

2
আপনি কি সরাসরি ডিবি সার্ভারে এসএসএস করতে পারেন এবং সেখান থেকে স্ক্যালপ্লাস চালাতে পারবেন?
ব্র্যাড রিপ্পে

1
একাধিক ক্লায়েন্ট / সার্ভারগুলি একই মেশিনে ইনস্টল হওয়া বা ব্যবহৃত হতে পারে এমন ক্ষেত্রে এটি নাও হতে পারে। (ডিরেক্টরিটি এটি ব্যবহার করে তার অবস্থানটি আউটপুট করে দেয়) - আমার ক্ষেত্রে, সেই ডিরেক্টরিতে শ্রোতা.ওর মধ্যে একটি পুরানো ডাটাবেস সম্পর্কিত তথ্য ছিল যা আমি আনইনস্টল করে দিয়েছিলাম - দ্রুত এবং নোংরা উপায়টি শ্রোতার.ওর সম্পূর্ণ সামগ্রীর অনুলিপি করা ছিল from আমার বর্তমান ওরাকল এক্সপ্রেসের ইনস্টলেশনটি অন্য শ্রোতার কাছে শ্রোতা যাচাই করে দেখে মনে হচ্ছে (আমি মনে করি এটি আমি একটি রেজিস্ট্রি বা কোনও কিছুর মাধ্যমে এটিকে পরিবর্তন করেছি এবং এটি ওআরএসিএলহোম (?)) এর চেয়ে বেশি প্রাধান্য পেয়েছে
হ্যালো_আরথ

8
ORA-00942: টেবিল বা দর্শন বিদ্যমান নেই
টমি হলম্যান

44

আমি জানি এটি একটি পুরানো প্রশ্ন, তবে এখনও উত্তর নেই। এটি আমার গবেষণার একদিন লেগেছিল, তবে আমি সবচেয়ে সহজ সমাধানটি পেয়েছিলাম, আমার ক্ষেত্রে অন্তত (উইন্ডোজ ২০০৮ আর ২ এর ওরাকল ১১.২) এবং ভাগ করে নিতে চেয়েছিলাম।

ত্রুটিটি যদি সরাসরি দেখা হয় তবে ইঙ্গিত দেয় যে শ্রোতা পরিষেবার নামটি স্বীকৃতি দেয় না। তবে এটি পরিষেবাগুলির নাম কোথায় রাখবে? ভিতরে%ORACLE_HOME%\NETWORK\ADMIN\listener.ora

"SID_LIST" ঠিক তেমন, এসআইডি এবং পরিষেবার নামগুলির একটি তালিকা আপনি অনুলিপি করতে বা দেখতে পারেন এমন ফর্ম্যাটে তৈরি করা হয়েছে।

আমি পরিষেবা নামটি সমস্যা যুক্ত করেছি, তারপরে উইন্ডোজ "পরিষেবাদি" কন্ট্রোল প্যানেলে আমি ওরাকল শ্রোতার পরিষেবাটিতে একটি "পুনঃসূচনা" করেছি। এখন সব ঠিক আছে।


উদাহরণস্বরূপ, আপনার শ্রোতা.ওর ফাইলটি প্রাথমিকভাবে দেখতে পেল:

# listener.ora Network Configuration File: C:\app\oracle_user\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\oracle_user\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle_user\product\12.1.0\dbhome_1\bin\oraclr12.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

... এবং এটির একটি পরিষেবার নাম স্বীকৃত করার জন্য orcl, আপনি এটি এতে পরিবর্তন করতে পারেন:

# listener.ora Network Configuration File: C:\app\oracle_user\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\oracle_user\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle_user\product\12.1.0\dbhome_1\bin\oraclr12.dll")
    )
    (SID_DESC = 
        (GLOBAL_DBNAME = orcl)
        (ORACLE_HOME = C:\app\oracle_user\product\12.1.0\dbhome_1)
        (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

3
listener.oraনামগুলি কীভাবে সংরক্ষণ করে তা সিনট্যাক্স সহ এই উত্তরটি আপডেট করা দরকার । আমার কাছে একটি listener.oraফাইলও নেই। আমি এসকিউএল বিকাশকারী চলমান একটি ক্লায়েন্ট ওয়ার্কস্টেশনেও আছি এবং যখন আমি ত্রুটি পাই তখন কেবল একটি ডাটাবেস লিঙ্ক তৈরি করার চেষ্টা করছি। পুনরায় আরম্ভ করার জন্য আমার কাছে ওরাকল শ্রোতা পরিষেবা নেই।
vapcguy

vapcguy, আপনার ডাটাবেস সার্ভারে থাকা দরকার। দেখে মনে হচ্ছে আপনি ক্লায়েন্টে আছেন
জোসেফ আর্জেনিও

নেট ম্যানেজারের সাথে জড়িত সিপিডির নির্দেশনা অনুসরণ করার পরে, আমি লক্ষ্য করেছি যে আমার শ্রোতাদের.ওর ফাইলটিতে একটি নতুন এসআইডি_লাইস্ট এন্ট্রি থাকতে আপডেট করা হয়েছিল। যে কোনও কারণেই নেট ম্যানেজার ব্যবহার করতে পারবেন না এমন পাঠকদের সুবিধার জন্য সিনট্যাক্সের আগে-পরে উদাহরণ অন্তর্ভুক্ত করার জন্য আমি এই উত্তরটি সম্পাদনা করেছি।
কেভিন

12

উইন্ডোজ সার্ভার ২০০৮ আর 2 এবং ওরাকল ১১ জি- তে আমার এই সমস্যাটি ছিল

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

আপনার যদি ডাটাবেস পরিষেবাদিগুলির জন্য কোনও প্রবেশপথ না থাকে তবে একটি তৈরি করুন এবং সঠিক গ্লোবাল ডাটাবেস সেট করুন, sidএবং ওরাকল হোম।


12

আমার পরিস্থিতিতে ত্রুটিটি শ্রোতার ডিবি পরিষেবা নিবন্ধিত না হওয়ার কারণে হয়েছিল। আমি পরিষেবাগুলি নিবন্ধ করে এটি সমাধান করেছি। উদাহরণ:

আমার বিবরণী এতে tnsnames.ora:

LOCALDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = LOCALDB)
    )
  )

সুতরাং, আমি listener.oraম্যানুয়ালি পরিষেবাটি নিবন্ধকরণ করতে এগিয়ে চলেছি:

SID_LIST_LISTENER =
    (SID_DESC =
      (GLOBAL_DBNAME = LOCALDB)
      (ORACLE_HOME = C:\Oracle\product\11.2.0\dbhome_1)
      (SID_NAME = LOCALDB)
    )

অবশেষে, শ্রোতাকে আদেশ দ্বারা পুনরায় চালু করুন:

> lsnrctl stop
> lsnrctl start

সম্পন্ন!


8

পরিষেবাদি.এমএসসি থেকে ওরাকেল সার্ভিস এক্সএক্সএক্সএক্স শুরু করা আমার জন্য উইন্ডোতে কাজ করেছিল।


উইন্ডোজগুলিতে, আপনি যদি ওরাকল রিলিজ 12.x ব্যবহার করে থাকেন তবে নিশ্চিত করুন যে পরিষেবাটি ওরাকলসেসরওআরসিএল চলছে কিনা। যদি এই পরিষেবাটি শুরু না করা হয় তবে আপনিও একই ত্রুটি কোডটি পাবেন।
রাস্তার বাজ

5

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

set ORACLE_SID=mydatabase
set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1

এবং তারপরে সংযোগ স্থাপন করে

sqlplus / as sysdba

এরপরে, ব্র্যাড রিপের উত্তর থেকে কমান্ডটি চালানো:

select value from v$parameter where name='service_names';

নামগুলি হুবহু মিলছে না তা দেখিয়েছে। ওরাকলের ডেটাবেস কনফিগারেশন সহকারী ব্যবহার করে তৈরি করা এন্ট্রিগুলি যেখানে প্রাথমিকভাবে:

MYDATABASE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mydatabase.mydomain.com)
    )
  ) 

ক্যোয়ারী থেকে পরিষেবার নামটি কেবল mydatabaseতার চেয়ে ভাল ছিল mydatabase.mydomain.com। আমি tnsnames.ora ফাইলটি ডোমেন অংশ ব্যতীত কেবলমাত্র বেজ নেমটিতে সম্পাদনা করেছি যাতে তারা এ জাতীয় দেখতে পেল:

MYDATABASE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mylaptop.mydomain.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mydatabase)
    )
  ) 

আমি TNS শ্রোতা পরিষেবাতে পুনরায় আরম্ভ (আমি প্রায়ই ব্যবহার lsnrctl stopএবং lsnrctl startএকজন প্রশাসক কমান্ড উইন্ডো থেকে [বা উইন্ডোজ PowerShell] সার্ভিস কন্ট্রোল প্যানেল, তবে দুটো একসাথে হবে। পরিবর্তে) এর পর, আমি সংযোগ করতে সক্ষম হন।


4

আমারও একই সমস্যা ছিল। আমার জন্য, শুধু লিখছি

sqlplus myusername/mypassword@localhost

কৌতুকটি করেছে, এটি করা এটি ডিফল্ট পরিষেবা নামের সাথে সংযুক্ত করে তোলে, আমার ধারণা।


1
আমাদের ত্রুটির কারণে আমাদের সংযোগের স্ট্রিংয়ের একই সমস্যা ছিল issue আমরা সংযোগের স্ট্রিংয়ের সাথে ওরাকলের জেডিবিসি পাতলা ড্রাইভারটি ব্যবহার করে কানেক্ট করছি jdbc:oracle:thin:@//localhost:1521/orcl। এই ত্রুটি দূর করার সংশোধন সংযোগ স্ট্রিং ছিল: jdbc:oracle:thin:@localhost:1521
দান

এটি কাজ করবে কিনা তা নির্ভর করে - আমি মনে করি এই সংযোগের এই পদ্ধতিটি, অন্যেরা কী বলেছে তা বিচার করে, শ্রোতাকে পুরোপুরি বাইপাস করে এসআইডি-র পরিবর্তে কম্পিউটার হোস্টের নামটি ব্যবহার করে - সংযোগের এই পদ্ধতিটি তৃতীয় পক্ষের ক্লায়েন্টগুলিতে সমস্যা সৃষ্টি করে - এটি তখনই কাজ করে যখন EZCONNECT sqlnet.ora তে নির্দিষ্ট করা থাকে: NAMES.DIRECTORY_PATH = (টিএনএসএনএস, ইজকননেট)
হ্যালো_আরথ

3

আমার জন্য যা কাজ করেছে তা সত্যিই সহজ ছিল, আমাকে কেবল "উইন্ডোজ সার্ভিসেস" (পরিষেবাদি.এমএসসি ইন সেমিডি ট্রাম্প্ট) -র মাধ্যমে ম্যানুয়ালি পরিষেবাটি চালু করা দরকার ছিল। আমার পরিষেবাটির নাম: ওরাকল সার্ভিস এক্সএক্সএক্সএক্সএক্স।


আমার ক্ষেত্রে, স্টার্টআপ প্রকারটি স্বয়ংক্রিয়ভাবে সেট করা থাকলেও, মেশিন বুট হওয়ার পরে এটি শুরু হয় না। ম্যানুয়ালি পরিষেবা "ওরাকল সার্ভিসেক্সএই" শুরু করার পরে, এটি ডিবি এবং এপেক্স (ওরাকল অ্যাপ্লিকেশন এক্সপ্রেস) ওয়েবপৃষ্ঠায় সংযোগ স্থাপন করতে ওরেकल ডাটাবেস 11 জি এক্সপ্রেসের পক্ষে কাজ করে।
ইভান

2

ডাটাবেস আপ দেখতে দেখুন। সার্ভারে লগইন করুন, আপনার ডাটাবেস এসআইডিতে ORACLE_SID এনভায়রনমেন্ট ভেরিয়েবল সেট করুন এবং স্থানীয় সংযোগ হিসাবে এসকিউএল * প্লাস চালান।


এটা ঠিক আমার সমস্যা ছিল। আমাদের ডেটাবেসটি কোনও ভিএম-তে হোস্ট করা হয়েছে যা আমি যখন ডিপি ব্যবহার করে এমন একটি প্রোগ্রাম ব্যবহার করার চেষ্টা করছিলাম তখন ডাউন ছিল। এই থ্রেডটি দেখার পরে আমি বুঝতে পারি এটি সম্ভবত ডাউন ছিল।
Sh4d0wsPlyr

2

এই ত্রুটিটি ঘটতে পারে যখন কোনও অ্যাপ্লিকেশন প্রতিটি ডাটাবেস ইন্টারঅ্যাকশন জন্য নতুন সংযোগ তৈরি করে বা সংযোগগুলি সঠিকভাবে বন্ধ না হয়। এটি নিরীক্ষণ এবং নিশ্চিত করার জন্য একটি নিখরচায় সরঞ্জাম হ'ল ওরাকল এসকিএল বিকাশকারী (যদিও এটি কেবলমাত্র ডিবি সেশনগুলি নিরীক্ষণ করতে আপনি ব্যবহার করতে পারবেন না)।

আপনি ওরাকল সাইট এসকিএল বিকাশকারী থেকে সরঞ্জামটি ডাউনলোড করতে পারেন

আপনার সেশনগুলি কীভাবে পর্যবেক্ষণ করা যায় তার একটি স্ক্রিনশট এখানে। (আপনি যদি ORA-12514 ত্রুটিটি দেখেন সেই সময় আপনি যদি আপনার অ্যাপ্লিকেশন ব্যবহারকারীর জন্য অনেকগুলি সেশন পাইল করে দেখেন তবে এটি আপনার সংযোগ পুলের সমস্যা হতে পারে এটি একটি ভাল ইঙ্গিত)।

এখানে চিত্র বর্ণনা লিখুন


2

আমি এই সমস্যাটি আমার লিনাক্স এনভায়ারোমেন্টে / ইত্যাদি / হোস্ট ফাইলগুলিতে আমার মেশিনের আইপি আপডেট করে resolved

আপনি আপনার নেটওয়ার্ক আইপি (ইনট এন্ড।) যাচাই করতে পারবেন:

$ifconfig

আপনার আইপি / ইত্যাদি / হোস্ট ফাইলের সাথে মেলে কিনা দেখুন:

$cat /etc/hosts

আপনার / ইত্যাদি / হোস্টগুলি ফাইল সম্পাদনা করুন, যদি জড়িত থাকে:

$sudo gedit /etc/hosts

বাই।


2
এটি পুরানো, তবে আপনার আইপি / ইত্যাদি / হোস্টগুলিতে যুক্ত করার কোনও অর্থ হয় না। ওপিতে SERVICE_NAME অনুপস্থিত রয়েছে, অন্যান্য
স্টাফগুলি

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

2

যারা ভিএম-তে ওরাকল চালাচ্ছেন তাদের জন্য (আমার মতো) আমি এই সমস্যাটি দেখেছি কারণ আমার ভিএম স্মৃতিশক্তি হারিয়েছে যা দেখে মনে হচ্ছে যে ওরাকলডিবি সঠিকভাবে শুরু / চালানো থেকে বিরত ছিল। আমার ভিএম মেমরি বাড়ানো এবং পুনরায় চালু করার ফলে সমস্যার সমাধান হয়েছে।


2

এখানে প্রচুর উত্তর, তবে এখানে কোড সহ একটি কার্যকরী উদাহরণ এসেছে যা আপনি অনুলিপি করে আটকান এবং তাৎক্ষণিকভাবে পরীক্ষা করতে পারেন:

আমার জন্য ত্রুটি 12514 সঠিক SERVICE_NAME নির্দিষ্ট করার পরে সমাধান করা হয়েছিল। আপনি যে সার্ভারে tnsnames.ora3 টি পূর্বনির্ধারিত পরিষেবার নাম নিয়ে আসছেন সেই ফাইলের সার্ভারে (তার মধ্যে একটি "এক্সই") রয়েছে।

  1. আমি ওরাকল এক্সপ্রেস ডাটাবেস OracleXE112 ইনস্টল করেছি যা ইতিমধ্যে কিছু প্রাক-ইনস্টলড ডেমো টেবিল নিয়ে আসে।
  2. আপনি যখন ইনস্টলারটি শুরু করেন তখন আপনাকে একটি পাসওয়ার্ডের জন্য জিজ্ঞাসা করা হয়। আমি পাসওয়ার্ড হিসাবে "xxx" প্রবেশ করলাম। (উত্পাদন ব্যবহৃত হয় না)
  3. আমার সার্ভারটি 192.168.1.158 মেশিনে চলে
  4. সার্ভারে আপনাকে অবশ্যই উইন্ডোজ ফায়ারওয়ালে TNSLSNR.exe প্রক্রিয়াটির জন্য স্পষ্টভাবে অ্যাক্সেসের অনুমতি দিতে হবে। এই প্রক্রিয়াটি 1521 পোর্টে শোনে।
  5. বিকল্প এ: সি # (.NET2 বা .NET4) এর জন্য আপনি ODAC11 ডাউনলোড করতে পারেন , যেখান থেকে আপনাকে আপনার প্রকল্পে Oracle.DataAccess.dll যুক্ত করতে হবে। অতিরিক্তভাবে এই ডিএলএল নির্ভর করে: OraOps11w.dll, oci.dll, oraociei11.dll (130MB!), Msvcr80.dll। এই ডিএলএল EXE এর হিসাবে একই ডিরেক্টরির মধ্যে হতে হবে বা আপনি ডিএলএল পাথ নির্দিষ্ট করতে হবে: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\ODP.NET\4.112.4.0\DllPath। Bit৪ বিট মেশিনে অতিরিক্ত লিখুনHKLM\SOFTWARE\Wow6432Node\Oracle\...
  6. বিকল্প বি: আপনি যদি ওডিএসি 12 ডাউনলোড করে থাকেন তবে আপনার ওরেकल.ডাটাএ্যাক্সেস.ডিল, ওরাওএসপি 12 ডাব্লু.ডিএল, oci.dll, ওরাওসিআই 12.ডিএল (160 এমবি!), ওরাওন্স.ডিএল, এমএসভিসিআর 100.ডিল দরকার। রেজিস্ট্রি পথHKEY_LOCAL_MACHINE\SOFTWARE\Oracle\ODP.NET\4.121.2.0\DllPath
  7. বিকল্প সি: আপনি যদি 100 এমবি এর বেশি বিশাল ডিএলএল না চান তবে আপনার ODP.NET_Managed12.xxxxxxxx.zip ডাউনলোড করতে হবে যেখানে আপনি খুঁজে পান Oracle.ManagedDataAccess.dllযা কেবল 4 এমবি এবং খাঁটি পরিচালিত ডিএলএল যা 32 বিট এবং 64 বিট প্রক্রিয়াতে কাজ করে পাশাপাশি এবং অন্য কোনও ডিএলএল উপর নির্ভর করে এবং কোনও রেজিস্ট্রি প্রবেশের প্রয়োজন হয় না।
  8. নিম্নলিখিত সি # কোডটি সার্ভার সাইডে কোনও কনফিগারেশন ছাড়াই আমার জন্য কাজ করে (কেবলমাত্র ডিফল্ট ইনস্টলেশন):
Oracle.DataAccess.Client ব্যবহার করে;
অথবা
Oracle.ManagedDataAccess.Client ব্যবহার করে;

....

স্ট্রিং ওরেডবি = "ডেটা উত্স = (বর্ণিত =")
    + "(অ্যাড্রেস_লিস্ট = (অ্যাড্রেসিং = (প্রটোকল = টিসিপি)) (HOST = 192.168.1.158) (পোর্ট = 1521))"
    + "(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)));"
    + "ব্যবহারকারী আইডি = সিস্টেম; পাসওয়ার্ড = এক্সএক্সএক্স;";

(ওরাকল সংযোগ সংযোগ = নতুন ওরাকল সংযোগ (ওরেডবি)) ব্যবহার করে 
{
    conn.Open ();
    (ওরাকলকম্যান্ড সেন্টিমিডি = নতুন ওরাকলকম্যান্ড ()) ব্যবহার করে
    {
        cmd.Connication = সং;
        সেমিডি.কম্যান্ডটেক্সট = "ডিবিএ_ডাটা_ফাইলেস থেকে টেবিলস্প্যাক নির্বাচন করুন";

        (ওরাকলডেটাআরডার ডাঃ = ​​সেমি। এক্সেক্সিউটআরডার ()) ব্যবহার করে
        {
            যখন (dr.Rad ())
            {
                listBox.Items.Add (ড [ "TABLESPACE_NAME"]);
            }
        }
    }
}

যদি SERVICE_NAME=XEভুলটি হয় তবে আপনার ত্রুটি 12514 হবে The SERVICE_NAMEএটি alচ্ছিক । আপনি এটিকেও রেখে দিতে পারেন।


অনেক ধন্যবাদ, আপনার সমাধান থেকে আমি কৌশলটি পেয়েছি, আমার ক্ষেত্রে এটি অ্যান্টি-ভাইরাসই প্রোগ্রামটি ব্লক করছে, সুতরাং ওরাকল ডিবিতে সংযোগ পেতে সক্ষম হয় নি।
রোবট_লিয়েন

2

আমিও একই সমস্যার মুখোমুখি হয়েছি এবং এটি খনন করতে 3 দিন ব্যয় করেছি।

আপনার ভুল টিএনএস পরিষেবা প্রবেশের কারণে এটি ঘটে।

প্রথমে আপনি sql> sqlplus sys@orastand as sysdba( orastandস্ট্যান্ডবাই ডাটাবেস) ব্যবহার করে প্রাথমিক ডাটাবেস থেকে স্ট্যান্ডবাই ডাটাবেসে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করুন ।

আপনি যদি সংযোগ করতে সক্ষম না হন তবে এটি পরিষেবাতে সমস্যা। প্রাথমিক প্রান্তে টিএনএস ফাইলে পরিষেবার নামের প্রবেশদ্বারটি সংশোধন করুন।

একইভাবে স্ট্যান্ডবাই ডাটাবেস পরীক্ষা করুন। প্রয়োজনে এখানে পরিবর্তন করুন।

নিশ্চিত করুন যে log_archive_dest_2প্যারামিটারটির সঠিক পরিষেবার নাম রয়েছে।


1

আমি একই ত্রুটি পেয়েছি কারণ নির্দিষ্ট করা দূরবর্তী এসআইডিটি ভুল ছিল:

 > sqlplus $DATASOURCE_USERNAME/$DATASOURCE_PASSWORD@$DB_SERVER_URL/$REMOTE_SID 

আমি সিস্টেম ডাটাবেস অনুসন্ধান করেছি:

গ্লোবাল নাম থেকে * নির্বাচন করুন;

এবং আমার দূরবর্তী এসআইডি ("এক্সই") পেয়েছি।

তাহলে আমি কোনও সমস্যা ছাড়াই সংযোগ করতে পারতাম।


0

আমার ক্ষেত্রে ডাটাবেসের ডিস্কের জায়গাগুলি খুব কম ছিল। যার ফলে এটি কোনও প্রতিক্রিয়া না জানায়। একবার আমি এই বিষয়টি পরিষ্কার করে ফেললাম সবকিছু আবার কাজ করে।


আমি এটি কীভাবে খুঁজে পেতে পারি?
কোডস্লেভ

0

আমার জন্য এটি ইনস্টলেশনটি ব্যবহার করে গতিশীল আইপ্যাড্রেস ব্যবহার করার কারণে ঘটেছে। আমি স্থির আইপ্যাড্রেস ব্যবহার করে ওরাকল পুনরায় ইনস্টল করেছিলাম এবং তারপরে সবকিছু ঠিক আছে


0

ভিএম পুনরায় চালু করা আমার পক্ষে কাজ করেছে



0

tnslsnr আপ আছে তবে ডাটাবেস ডাউন আছে।

ওরাকল নববিদের পক্ষে স্পষ্ট নয় যে সংযোগগুলি গ্রহণ করার সময় ডাটাবেস ডাউন হতে পারে database

আমাকে সেইভাবে ম্যানুয়ালি ডাটাবেস শুরু করতে হয়েছিল

su - oracle
export ORACLE_SID=XE
sqlplus sys as sysdba

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

startup

আমার ক্ষেত্রে আমি শুরু করতে ব্যর্থ হয়েছি কিন্তু অন্য একটি ত্রুটি বার্তা পেয়েছি এবং সমস্যার উত্স পেয়েছি - আমাকে হোস্টের নামটি পরিবর্তন করতে হয়েছিল এবং তারপরে ডাটাবেস অটো স্টার্টআপটি আবার কার্যকর ছিল।


0

আমি এই সমস্যাটি সমাধান করার জন্য নীচের দিকে বাস্তবায়ন করেছি।

  1. আমি কমান্ড প্রম্পটটি ব্যবহার করে ORACLE_Home সেট করেছি (ডান ক্লিক করুন cmd.exe এবং সিস্টেম প্রশাসক হিসাবে চালান)।

  2. কমান্ডের নীচে ব্যবহার করা হয়েছে

    set oracle_home="path to the oracle home"

  3. সমস্ত প্রোগ্রামগুলিতে যান -> ওরাকল-ওড়া হোম 1 -> কনফিগারেশন মাইগ্রেশন সরঞ্জাম -> নেট ম্যানেজার -> শ্রোতা

  4. ড্রপডাউন থেকে ডাটাবেস পরিষেবাদিগুলি নির্বাচন করুন। গ্লোবাল ডাটাবেস নাম এবং এসআইডি উভয়ই সেট করা আছে (আমার ক্ষেত্রে ওআরসিএল)। ওরাকল হোম ডিরেক্টরি সেট করুন।

ওরাকল নেট ম্যানেজার উইন্ডো উদাহরণটি ওরাকল ডকুমেন্টেশন থেকে: ওরাকল নেট ম্যানেজার উদাহরণ

  1. ফাইল ক্লিক করুন এবং নেটওয়ার্ক কনফিগারেশন সংরক্ষণ করুন।

0

সমস্যাটি ছিল আমার সংযোগের স্ট্রিং url এ SID এর পরিবর্তে ডাটাবেসের নাম রয়েছে। ওরাকল ডাটাবেস সংযোগ এসআইডি দিয়ে ডাটাবেসের নাম প্রতিস্থাপন করা এই সমস্যার সমাধান করেছে।

আপনার ওরাকল এসআইডি এর জন্য আপনি tnsnames.oraফাইল ব্রাউজ করতে পারেন ।

XE প্রকৃত এসআইডি ছিল, সুতরাং আমার টমক্যাট সংযোগ স্ট্রিংটি এখন দেখতে কেমন লাগে:

    <Resource
       name="jdbc/my_db_conn"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@//127.0.0.1:1521/XE"
       username="test_user"
       password="test" />

আমার সার্ভার সংস্করণটি ছিল "ওরাকল 11.2 এক্সপ্রেস", তবে সমাধানটি অন্যান্য সংস্করণগুলিতেও কাজ করা উচিত।


0

আমার ক্ষেত্রে, SERVICE_NAME- র চারপাশের বৃত্তাকার বন্ধনীগুলি tnsnames.ora ফাইলটিতে অনুপস্থিত ছিল ।

<DBNAME> =
  (DESCRIPTION =
    (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL=TCP)(HOST = nupark-cnvr-ora )(PORT=1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = <DBNAME> ***CLOSING ROUND BRACKET WAS MISSING HERE***
    )
  )

LISTENER_<DBNAME> =

  (ADDRESS = (PROTOCOL = TCP)(HOST = nupark-cnvr-ora)(PORT = 1521))

0

সংযোগের জন্য যারা স্প্রিং-বুট এবং জেডিবিসি ব্যবহার করছেন For আপনি jdbcUrl প্রয়োগ করার সময় সাবধান থাকতে হবে

ডাটাবেস সংযোগে এসআইডি সহ - source.datasource.jdbcUrl = jdbc:oracle:thin:@[HOST][:PORT]:SID

ডিবি সংযোগে পরিষেবার নাম সহ globe.datasource.jdbcUrl = jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

এটি আমার জন্য কাজ করেছে :)

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