Oracle में डेटाबेस की सूची कैसे देखें?


33

क्या MySQL SHOW DATABASESस्टेटमेंट के बराबर है ?

क्या क्लस्टर में डेटाबेस ढूंढना संभव है? डेटाबेस किसी अन्य प्रणाली पर नेटवर्क पर मौजूद है?

क्या मैं उसी को खोजने के लिए ओरेकल इंस्टॉलेशन पर मौजूद फाइलों का विश्लेषण कर सकता हूं?

एक Oracle सिस्टम में पूर्ण एक्सेस क्रेडेंशियल्स को देखते हुए, आप सभी डेटाबेस को मौजूद करने के बारे में कैसे जानेंगे?


4
ध्यान दें कि MySQL और Oracle डेटाबेस के बीच एक शब्दावली बेमेल है। वास्तुकला के संदर्भ में, ओरेकल में टेबल-> स्कीमा-> डेटाबेस है, और एक ही समय में टेबल-> टेबलस्पेस-> डेटाबेस भी है। MySQL में केवल टेबल-> डेटाबेस है। तो हो सकता है कि आप वास्तव में ओरेकल स्कीमा सूची (तालिका के लिए SQL नाम स्थान) या Oracle टेबलस्पेस सूची (सोचें: तालिकाओं के लिए ओएस फ़ाइलों के समूह) की खोज कर रहे हैं।
कुबंझक

जवाबों:


22

क्या MySQL SHOW DATABASESस्टेटमेंट के बराबर है ?

ऐसा कुछ नहीं है। आप एक मशीन पर श्रोताओं को क्वेरी कर सकते हैं ( lsnrctl status) यह देखने के लिए कि वहाँ क्या सेवाएँ पंजीकृत हैं, लेकिन यह डेटाबेस के लिए वन-टू-वन मैप नहीं करता है (और एक ही मशीन पर कई श्रोता हो सकते हैं)। अन्यथा, आमतौर पर उपयोग किए जाने वाले उपकरण एक डेटाबेस उदाहरण से कनेक्ट होते हैं, और एक उदाहरण एक डेटाबेस से संबंधित होता है।

यदि आप ओरेकल आरएसी समूहों के बारे में बात कर रहे हैं, तो प्रत्येक उदाहरण को अपने साथियों (अन्य उदाहरण जो उसी डेटाबेस को सेवा देते हैं) के बारे में जानते हैं और आप उस डेटाबेस के लिए वर्तमान में शुरू किए गए अन्य उदाहरणों का उपयोग करके gv$instanceदेख सकते हैं।
आप crsctlउपयोगिता का उपयोग सेवाओं (डेटाबेस सहित) को सूचीबद्ध करने के लिए कर सकते हैं जो क्लस्टर में पंजीकृत हैं, और उनकी स्थिति।
यदि आप किसी अन्य विक्रेता के क्लस्टरिंग सॉफ़्टवेयर के बारे में बात कर रहे हैं, तो मुझे पूरा यकीन है कि इन सभी के पास इन प्रकार के संसाधन प्रबंधन उपयोगिताओं की क्वेरी करने के लिए है।

यदि आप मशीनों के एक समूह के बारे में बात कर रहे हैं, तो नहीं, नेटवर्क पर सभी डेटाबेसों की गणना करने का कोई 100% विश्वसनीय तरीका नहीं है।

सक्रिय (यानी शुरू किए गए) डेटाबेस को खोजने के लिए, *_pmon_*यूनिक्स पर प्रक्रियाओं (वहाँ प्रति डेटाबेस उदाहरण है) और Windows पर Oracle सेवाओं की तलाश करें।

Oracle डेटाबेस सॉफ्टवेयर की स्थापना का पता लगाने के लिए, /etc/oratabयूनिक्स को देखें। इसमें सभी ORACLE_HOMEs इंस्टॉल होने चाहिए । आप प्रत्येक के $ORACLE_HOME/dbsलिए spfile<SID>.oraऔर / या init<SID>.oraफ़ाइलों के अंदर देख सकते हैं - प्रत्येक डेटाबेस के लिए एक होगा।

(मेरा मानना ​​है कि आप oratabनीचे दी गई Windows रजिस्ट्री कुंजी में जानकारी के बराबर पा सकते हैं HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE, लेकिन मुझे इसकी संरचना नहीं पता है।)

अब, निश्चित रूप से, यदि आपने अपने सभी डेटाबेस को एक ओईएम (एंटरप्राइज मैनेजर) सर्वर के साथ पंजीकृत किया है, जब आप उन्हें स्थापित करते हैं, तो आप वहां पूरी सूची पा सकते हैं - लेकिन मुझे लगता है कि अगर आप पूछ रहे हैं कि ऐसा नहीं है।


12

ओरेकल के पास कोई डेटाबेस नहीं है, लेकिन स्कीमा, आप उन्हें सूचीबद्ध कर सकते हैं

SELECT USERNAME FROM ALL_USERS ORDER BY USERNAME; 

या इस तरह का कुछ :

SELECT TABLESPACE_NAME FROM USER_TABLESPACES;

2
टेबलस्पेस सामान्य रूप से स्कीमा से जुड़े नहीं हैं।
Mat

2
सभी उपयोगकर्ताओं? USER_TABLESPACES?
kubanczyk

"क्या MySQL SHOW DATABASES स्टेटमेंट के बराबर है?" कि सवाल का जवाब देने की कोशिश कर im।
मत

1
@DYYudh: ओरेकल का एक टेबलस्पेस MySQL में "डेटाबेस" से पूरी तरह से अलग है। पहली क्वेरी यदि सही है, तो दूसरी क्वेरी सादे गलत है
a_horse_with_no_name

11

सीधे शब्दों में, MySQL 'डेटाबेस' या Oracle पर 'क्लस्टर' के लिए कोई प्रत्यक्ष सादृश्य नहीं है: निकटतम मैच एक 'स्कीमा' है, लेकिन यह अभी भी बहुत अलग है।

यह स्पष्ट रूप से 12c में बदलने योग्य डेटाबेस की शुरूआत के साथ बदलने वाला है :

उपयोगकर्ता की सामग्री से डेटाबेस संचालन को सफाई से विभाजित करना पारंपरिक डेटाबेस आर्किटेक्चर से एक बड़ा परिवर्तन है। क्यूईटी ने कहा कि ओरेकल 11 जी, और इसके सभी पूर्ववर्ती, एक समय में केवल एक डेटाबेस चला सकते हैं। यदि कोई संगठन एकल सर्वर पर कई डेटाबेस चलाना चाहता है, तो उसे Oracle 11g के कई उदाहरणों को चलाने की आवश्यकता होगी, प्रत्येक डेटाबेस के लिए एक। जैसा कि नाम से प्रतीत होता है, प्लग करने योग्य डेटाबेस ओरेकल 12 सी की एक प्रति के तहत कई किरायेदार डेटाबेस को चलाने की अनुमति देते हैं।


उह महान, अधिक जटिलता, अधिक नौकरी की सुरक्षा ...
kubanczyk

6

मुझे लगता है कि * nix पर भविष्य के ब्राउज़रों के लिए एक उत्तर हो सकता है:

बिल्ली / आदि / ओरतब


3

बस ASM से कनेक्ट करें और डेटाबेस क्लाइंट की जाँच करें।

set pages 999 lines 120
col SOFTWARE_VERSION for A15
col INSTANCE_NAME for A20
col DB_NAME for A20 trunc
select INSTANCE_NAME, DB_NAME, STATUS, SOFTWARE_VERSION as "version"
from  V$ASM_CLIENT;

1
यह माना जाता है कि ASM का उपयोग किया जा रहा है! क्या एक फाइल सिस्टम या SAN पर संग्रहीत डेटाबेस के बारे में?
कोलिन टी हार्ट

3

यदि आपके पास Oracle 12 पर प्लग करने योग्य डेटाबेस (अनुशंसित) है, तो आप निम्न कार्य कर सकते हैं:

SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;

0

स्टैंडबोन डेटाबेस के लिए डेटाबेस की सूची प्राप्त करने के लिए जो होस्ट रिबूटिंग के बाद स्वचालित रूप से शुरू की जाती है:

cat /etc/oratab | grep -i ":y" | grep -v "^#"

या सिर्फ सभी डेटाबेस की सूची प्राप्त करने के लिए:

cat /etc/oratab | grep -v "^#"

RAC डेटाबेस के लिए निम्नलिखित विधि उपयोगी हो सकती है:

crsctl stat res -t | grep "\.db"

जैसा कि यह पहले ही उल्लेख किया गया था कि MySQL में डेटाबेस Oracle में डेटाबेस के समान नहीं है। ओरेकल में यह स्कीमा के अधिक करीब है - जिसे उपयोगकर्ता की वस्तुओं के लिए कंटेनर का नाम दिया गया है। स्कीम सूची प्राप्त करने के लिए आप एसक्यूएल स्टेटमेंट का उपयोग कर सकते हैं:

select username from dba_users order by 1;

या सिस्टम से संबंधित योजनाओं की सूची प्राप्त करने के लिए (Oracle 12B से शुरू होने वाले RDBMS में उपलब्ध):

select username from dba_users where ORACLE_MAINTAINED='N' order by 1;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.