ओरेकल ग्रिड इन्फ्रास्ट्रक्चर में क्लस्टर हेल्थ मॉनिटर (सीएचएम) शामिल है जो नियमित रूप से ओएस से संबंधित प्रदर्शन जानकारी को कैप्चर करता है। प्रारंभिक संस्करणों में, सीएचएम अपने डेटा स्टोर के लिए बर्कले डीबी का उपयोग करता है। ग्रिड इन्फ्रास्ट्रक्चर 12.1.0.2 में, अब डेटा स्टोर के लिए Oracle डेटाबेस का उपयोग करना आवश्यक है। इस Oracle डेटाबेस को ग्रिड इंफ्रास्ट्रक्चर मैनेजमेंट रिपोजिटरी (GIMR) कहा जाता है। बहुत से लोग पहले से ही जानते हैं कि GIMR डेटाबेस नाम "-MGMTDB" के साथ चलता है और GI क्लस्टर के केवल एक नोड पर चलता है। यदि वह नोड उपलब्ध हो जाता है, तो जीआई स्वचालित रूप से शेष नोड पर जीआईएमआर शुरू कर देगा।
उपरोक्त पैराग्राफ उन सभी पृष्ठभूमि की जानकारी के बारे में है जो मैं GIMR पर प्रदान करने जा रहा हूँ। यदि पाठक अधिक जानना चाहता है, तो वे निश्चित रूप से इस बारे में जानकारी के लिए वेब खोज कर सकते हैं कि कैसे प्रबंधित किया जाए (इस डेटाबेस के लिए कितना छोटा प्रबंधन आवश्यक है), और डेटाबेस और उसके समर्पित श्रोता को कैसे शुरू और बंद किया जाए।
इस ब्लॉग पोस्ट का उद्देश्य पाठक को GIMR डेटाबेस तक पहुँचने और उससे सार्थक जानकारी निकालने के बारे में शिक्षित करना है। अधिक वेब खोज यह दिखा सकती है कि GIMR से डेटा निर्यात करने के लिए कमांड लाइन उपयोगिताओं का उपयोग कैसे करें। और एक ग्राफिकल उपयोगिता है, CHMOSG, जिसका उपयोग रिपॉजिटरी में CHM डेटा देखने के लिए किया जा सकता है। लेकिन सिर्फ मनोरंजन के लिए, मैंने सोचा कि मैं दिखाऊंगा कि सीधे डेटा कैसे प्राप्त किया जाए।
सबसे पहले, आपको यह जानना होगा कि डेटाबेस किस नोड पर चल रहा है। किसी भी नोड पर, मैं निम्नलिखित जारी कर सकता हूं:
[oracle@host01 bin]$ cd /u01/app/crs12.1.0.2[oracle@host01 bin]$ ./crs_stat -t | grep -i mgmtora.MGMTLSNR ora....nr.type ONLINE ONLINE host01 ora.mgmtdb ora...db.type ONLINE ONLINE host01
उपरोक्त दिखाता है कि डेटाबेस और श्रोता host01 पर चल रहे हैं। अब जब मैं इंस्टेंस के नोड को जानता हूं, तो मैं उस नोड पर साइन इन कर सकता हूं, और इंस्टेंस से कनेक्ट करने के लिए अपने पर्यावरण चर सेट कर सकता हूं। यह डेटाबेस ग्रिड इन्फ्रास्ट्रक्चर होम से बाहर चलता है, आरडीबीएमएस होम से नहीं। इसलिए मुझे अपना ORACLE_HOME सही ढंग से सेट करने की आवश्यकता है। साथ ही, उदाहरण का नाम डैश से शुरू होता है इसलिए मुझे SID को दोहरे उद्धरण चिह्नों में लपेटने की आवश्यकता है।
[oracle@host01 ~]$ निर्यात ORACLE_HOME=/u01/app/crs12.1.0.2[oracle@host01 ~]$ निर्यात पथ=$ORACLE_HOME/bin:$PATH[oracle@host01 ~]$ निर्यात ORACLE_SID="-एमजीएमटीडीबी"
अब मैं इंस्टेंस से जुड़ सकता हूं और सत्यापित कर सकता हूं कि मैं सही इंस्टेंस से जुड़ा हूं।
[oracle@host01 ~]$ sqlplus /nolog
एसक्यूएल*प्लस:रिलीज 12.1.0.2.0 प्रोडक्शन सोम दिसंबर 21 15:17:21 2015
कॉपीराइट (c) 1982, 2014, Oracle। सर्वाधिकार सुरक्षित।
SQL> कनेक्ट / as sysdbaConnected.SQL> v$instance से instance_name चुनें;
INSTANCE_NAME-----------------एमजीएमटीडीबी
यह डेटाबेस एक Oracle मल्टीटेनेंट डेटाबेस है, जो एक PDB है। मुझे पीडीबी नाम निर्धारित करने की जरूरत है। PDB नाम क्लस्टर नाम के समान होगा। मैं V$ACTIVE_SERVICES को क्वेरी करके स्वयं को क्लस्टर नाम की याद दिला सकता हूं।
SQL> नाम चुनें, v$active_services से con_id 2;
नाम CON_ID-------------------------------------------------------- -------- ----------my_cluster 3-MGMTDBXDB 1_mgmtdb 1SYS$BACKGROUND 1SYS$USERS 1
एसक्यूएल> सत्र सेट कंटेनर बदलें=my_cluster;
सत्र बदल दिया गया।
केवल एक सेवा में कंटेनर आईडी 1 के बराबर नहीं है (1 सीडीबी है) इसलिए यह वह पीडीबी होना चाहिए जिसे मैं ढूंढ रहा हूं। मैं पीडीबी को इसके कंटेनर के रूप में उपयोग करने के लिए अपने सत्र को संशोधित करता हूं।
मेरा अगला कार्य सीएचएम के स्वामित्व वाली तालिकाओं की सूची प्राप्त करना है।
SQL> dba_tables से table_name चुनें जहां owner='CHM' 2 table_name द्वारा ऑर्डर करें;
TABLE_NAME------------------------------------------ ----------------------- CHMOS_ACTIVE_CONFIG_INT_TBLCHMOS_ASM_CONFIG_INT_TBLCHMOS_CPU_INT_TBLCHMOS_DEVICE_INT_TBLCHMOS_FILESYSTEM_INT_TBLCHMOS_NIC_INT_TBLCHMOS_INT_PROCESS_INT_TBLCHMOS_STATIC_CONFIG_INT_TBLCHMOS_INTSस्कीमा में सिर्फ 10 टेबल। सूची में पहली तालिका सीएचएम मॉनिटर किए गए मेजबानों के बारे में कुछ कॉन्फ़िगरेशन जानकारी दिखाती है।
SQL> CHM.CHMOS_ACTIVE_CONFIG_INT_TBL से होस्टनाम, NUMPHYCPUS, NUMCPUS, NUMDISKS 2 चुनें;होस्टनाम NUMPHYCPUS NUMCPUS NUMDISKS----------------------------------------होस्ट01 1 2 3होस्ट02 1 2 3मैं देख सकता हूं कि सीएचएम क्लस्टर में दो नोड्स के बारे में जानकारी एकत्र कर रहा है। मैं प्रत्येक नोड के लिए भौतिक सीपीयू की संख्या और कुल कोर (2) की संख्या देख सकता हूं। इन नोड्स में 3 डिस्क भी होती हैं।
हम ओएस के बारे में जानकारी भी सीख सकते हैं।
SQL> CHM.CHMOS_STATIC_CONFIG_INT_TBL से होस्टनाम, ऑसनाम, चिपटाइप 2 चुनें;HOSTNAME OSNAME CHIPTYPE-----------------------------------होस्ट01 लिनक्स इंटेल( आर)होस्ट02 लिनक्स इंटेल(आर)इन तालिकाओं में अच्छी मात्रा में जानकारी है और इसमें क्या है यह पता लगाने के लिए बस कुछ परीक्षण और त्रुटि होती है। उदाहरण के लिए, मैं समय के साथ आदेशित host01 पर चल रही प्रक्रियाओं की गिनती प्राप्त करने के लिए इस क्वेरी का उपयोग कर सकता हूं।
शुरुआती समय चुनें, CHM से गिनती करें (*)।मैंने जानबूझकर आउटपुट शामिल नहीं किया क्योंकि यह ब्लॉग पोस्ट के लिए बहुत लंबा होगा। यहां कुछ और नमूना प्रश्न दिए गए हैं जिन्हें आप अपने GIMR डेटाबेस पर आज़मा सकते हैं।
समय के साथ एक विशिष्ट होस्ट के लिए डिस्क I/O गतिविधि।
प्रारंभ समय का चयन करें, DISK_BYTESREADPERSEC/1024/1024 को MB_READ_SEC के रूप में, DISK_BYTESWRITTENPERSEC/1024/1024 को MB_WRITE_SEC के रूप में, DISK_NUMIOSPERSEC को CHM से IO_PER_SEC के रूप में चुनें।समय के साथ किसी विशिष्ट होस्ट पर अदला-बदली करना।
CHM से starttime,swpin,swpoutचुनें।CHMOS_SYSTEM_SAMPLE_INT_TBLजहां होस्टनाम='होस्ट01'आरंभ के अनुसार ऑर्डर करें;अगला SQL कथन डिस्क I/O गतिविधि के हिस्टोग्राम की गणना करेगा। मुझे यकीन है कि कोई और अधिक सुरुचिपूर्ण संस्करण के साथ आ सकता है क्योंकि मेरे SQL कथन अधिक क्रूर-बल वाले होते हैं।
"<=10ms" के रूप में first.num_count, "<=20ms" के रूप में दूसरा.num_count, "<=50ms" के रूप में तीसरा.num_count, "<=100ms" के रूप में चौथा.num_count, "<=100ms" के रूप में पांचवां.num_count चुनें =500ms", final.num_count के रूप में ">500ms" से(सेलेक्ट काउंट(*) CHM से num_count के रूप में। .CHMOS_DEVICE_INT_TBL जहां devid='sda1' और 11 और 20 के बीच विलंबता) दूसरा, (CHM से num_count के रूप में गिनती (*) चुनें। CHM.CHMOS_DEVICE_INT_TBL से num_count के रूप में जहां devid='sda1' और 51 और 100 के बीच विलंबता) चौथा, (CHM से num_count के रूप में गिनती(*) चुनें।CHMOS_DEVICE_INT_TBL जहां devid='sda1' और 101 और 500 के बीच विलंबता) पांचवां, CHM.CHMOS_DEVICE_INT_TBL से num_count के रूप में गिनें (*) जहां devid='sda1' और विलंबता> 500) अंतिम;<=10ms <=20ms <=50ms <=100ms <=500ms>500ms---------- ---------- ---------- ---------- ---------- ---------- 150693 10 1 0 0 0
सीएचएम स्कीमा में अच्छी मात्रा में जानकारी है। मैं ज्यादातर उम्मीद करता हूं कि यह जानकारी सिर्फ शैक्षिक है और ज्यादातर लोग सीएचएम टेबल से सीधे पूछताछ नहीं करेंगे। लेकिन यह जानने के लिए अच्छी जानकारी है और दूसरों की मदद कर सकती है।