ওরাকল সিড এবং ডাটাবেসের নাম চেক করা হচ্ছে


115

আমি এসআইডি এবং বর্তমান ডাটাবেসের নাম চেক করতে চাই।

আমি ওরাকল এসআইডি চেক করার জন্য নিম্নলিখিত কোয়েরিটি ব্যবহার করছি

select instance from v$thread;

কিন্তু সারণী বা দর্শন উপস্থিত নেই ত্রুটি আসছে।

আমি বর্তমান ডাটাবেসের নাম পরীক্ষা করার জন্য নিম্নলিখিত কোয়েরি ব্যবহার করছি

select name from v$database;

কিন্তু সারণী বা দর্শন উপস্থিত নেই ত্রুটি আসছে।

উপরের দুটি সমস্যার জন্য কোনও ধারণা?

উত্তর:


148

আমার ধারণা SELECT user FROM dual;এখনকার ব্যবহারকারীকে দেওয়া উচিত

এবং SELECT sys_context('userenv','instance_name') FROM dual;উদাহরণের নাম

আমি বিশ্বাস করি আপনি এসআইডি হিসাবে পেতে পারেন SELECT sys_context('USERENV', 'SID') FROM DUAL;


1
দ্রুত প্রতিক্রিয়া জন্য ধন্যবাদ। উদাহরণস্বরূপ এবং ওরাকল এসআইডি একই জিনিস?
আদনান

2
@ আদনান তাদের একই হওয়ার দরকার নেই কারণ সেখানে সিআইডি দ্বারা চিহ্নিত একটি একক মেশিনে ডিবি চলার একাধিক উদাহরণ থাকতে পারে
ভি

@ আদনান আপনার প্রয়োজনীয় মানগুলি পেয়েছেন?
ভি

8
select sys_context('userenv','db_name') from dual;ডাটাবেসের নাম এবং সিডের জন্য আমি ইতিমধ্যে উত্তরে যুক্ত করেছি। আশা করি এটি আপনাকে যা চায় তা দেয়
ভি

2
দয়া করে এই লিঙ্কটি দেখুন
ভি

57

যদি, আমার মতো, আপনার লক্ষ্যটি ডাটাবেস হোস্ট এবং এসআইডিকে একটি ওরাকল জেডিবিসি ইউআরএল তৈরি করতে হবে,

jdbc:oracle:thin:@<server_host>:1521:<instance_name>

নিম্নলিখিত আদেশগুলি সাহায্য করবে:

এসআইডি (বা উদাহরণের নাম) যাচাই করার জন্য ওরাকল ক্যোয়ারী কমান্ড:

select sys_context('userenv','instance_name') from dual; 

ডাটাবেসের নাম (বা সার্ভার হোস্ট) চেক করতে ওরাকল ক্যোয়ারী কমান্ড:

select sys_context('userenv', 'server_host') from dual;

ATT। সার্জিও মার্সেলো lo


পারফেক্ট। এটি হ'ল আমি জানতে চেয়েছিলাম, তবে বাক্যাংশটি কীভাবে জানতাম তা জানতাম না।
অ্যাডিসন

আমিও. ধন্যবাদ সার্জিও!
ঘোড়াবিড়াল

48

কেবল সম্পূর্ণতার জন্য, আপনি ORA_DATABASE_NAME ব্যবহার করতে পারেন।

এটি লক্ষ্য করার মতো হতে পারে যে সমস্ত পদ্ধতি আপনাকে একই আউটপুট দেয় না:

SQL> select sys_context('userenv','db_name') from dual;

SYS_CONTEXT('USERENV','DB_NAME')
--------------------------------------------------------------------------------
orcl

SQL> select ora_database_name from dual;

ORA_DATABASE_NAME
--------------------------------------------------------------------------------
ORCL.XYZ.COM

SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
ORCL.XYZ.COM

উপরের প্রশ্নগুলির জন্য কোনও বিশেষ অনুমতিের প্রয়োজন নেই। কেবলমাত্র CONNECT সুবিধা দিয়ে নতুন ব্যবহারকারী তৈরি করে যাচাই করা হয়েছে।
বিডেম 3'15

22

ভি ভিউগুলি মূলত সিস্টেম মেট্রিকের গতিশীল দর্শন। তারা কর্মক্ষমতা টিউনিং, সেশন পর্যবেক্ষণ, ইত্যাদি সুতরাং এক্সেস ডিফল্টরূপে DBA ব্যবহারকারীদের সীমাবদ্ধ, যা তুমি কেন পেয়ে থাকেন জন্য ব্যবহার করা হয় ORA-00942

ডাটাবেসের নাম সন্ধানের সহজতম উপায় হ'ল:

select * from global_name;

এই মতামতটি পাবলিককে মঞ্জুর করা হয়েছে, সুতরাং যে কেউ এটি জিজ্ঞাসা করতে পারে।


ওরাকল এসআইডি সম্পর্কে কি? স্কট অ্যাকাউন্ট থেকে এটি পরীক্ষা করার কোনও পদ্ধতি আছে কি?
আদনান

1
এটি সার্ভিসের নাম, এসআইডি নয়।
jpmc26

5

sqlplusকমান্ড প্রম্পটে টাইপ করুন

SQL> select * from global_name;

তাহলে আপনি কমান্ড প্রম্পটে ফলাফল দেখতে পাবেন

SQL ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

এখানে প্রথমে একটি "ওআরসিএল" হ'ল ডাটাবেসের নাম, আপনার সিস্টেম "এক্সই" এবং অন্যটি যা ওরাকল ডাউনলোডের সময় দেওয়া হয়েছিল।


ধন্যবাদ, আপনি আমার দিনটি তৈরি করেছেন।
মুহাম্মদ আশিকুজ্জামান

2

যেমন উপরে বর্ণিত হয়েছে,

select global_name from global_name;

যাবার উপায়

আপনি v $ ডাটাবেস / v $ দৃষ্টান্ত / v $ থ্রেডটি জিজ্ঞাসা করতে পারেন নি কারণ আপনার ব্যবহারকারীর প্রয়োজনীয় অনুমতি নেই। আপনি এগুলি (একটি ডিবিএ অ্যাকাউন্টের মাধ্যমে) দিয়ে দিতে পারেন:

grant select on v$database to <username here>;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.