Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

प्रशासन और निगरानी के लिए Oracle डाटाबेस के लिए 27 oracle dba स्क्रिप्ट

हमें अक्सर प्रदर्शन कारणों के लिए oracle डेटाबेस सत्र की निगरानी करने, ताले की जांच करने, डेटाफ़ाइलों का स्थान प्राप्त करने, फ़ाइलों को फिर से करने, db_links के बारे में जानकारी प्राप्त करने की आवश्यकता होती है। यहां Oracle के लिए शीर्ष oracle dba स्क्रिप्ट हैं  प्रशासनिक और निगरानी के उद्देश्य के लिए डेटाबेस

जिस सत्र में आपने लॉग इन किया है उसके किनारे को खोजने के लिए स्क्रिप्ट

v$mystat से अलग (एसआईडी) चुनें;

सभी सक्रिय सत्र देखने के लिए स्क्रिप्ट

यूज़रनेम, ऑसुसर, सिड, सीरियल #, प्रोग्राम, sql_hash_value, मॉड्यूल को v$session से चुनें जहां यूजरनेम अशक्त नहीं है और स्थिति ='सक्रिय' और मॉड्यूल शून्य नहीं है;

वेटर्स को देखने के लिए स्क्रिप्ट

सेट लाइनसाइज 1000 कॉलम वेटिंग_सेशन हेडिंग 'वेटिंग|सेशन'कॉलम होल्डिंग_सेशन हेडिंग 'होल्डिंग|सेशन'कॉलम लॉक_टाइप फॉर्मेट ए15कॉलम मोड_हेल्ड फॉर्मेट ए15कॉलम मोड_अनुरोधित फॉर्मेट ए15सेलेक्टवेटिंग_सेशन,होल्डिंग_सेशन,लॉक_टाइप,मोड_होल्ड,लॉक_आईडी1,लॉक_सेशन,लॉक_टाइप,मोड_होल्ड,मोड_रिक्वेस्ट 

डेटाबेस में लेन-देन कितना सक्रिय है, इसकी स्क्रिप्ट

col RBS format a15 trunccol SID format 9999col USER format a15 trunccol COMMAND format a60 trunccol स्थिति प्रारूप a8 truncselect r.name "RBS", s.sid, s.serial#, s.username "USER", t.status, t.cr_get, t.phy_io, t.used_ublk, t.noundo,substr(s.program, 1, 78) "COMMAND" से v$sessions, v$transaction t, v$rollname rwhere t.addr =s. taddrand t.xidusn =r.usnt.cr_get द्वारा आदेश, t.phy_io/

लंबे समय से चल रही क्वेरी पर नज़र रखने के लिए स्क्रिप्ट

सेट लाइनसाइज 1000selectOPNAME,sid,SOFAR/TOTALWORK*100,to_char(start_time,'dd-mon-yy hh:mi') start,elapsed_seconds/60,time_remaining/60fromv$session_longopswheresid =&sid

सभी लॉक ऑब्जेक्ट देखने के लिए स्क्रिप्ट

सेट टर्म ऑन;सेट लाइन्स 130;कॉलम sid_ser फॉर्मेट a12 हेडिंग 'सेशन,|सीरियल#';कॉलम यूजरनेम फॉर्मेट a12 हेडिंग 'os यूजर/|डीबी यूजर';कॉलम प्रोसेस फॉर्मेट a9 हेडिंग 'os|प्रोसेस';कॉलम स्पिड फॉर्मेट ए7 हेडिंग 'ट्रेस|नंबर';कॉलम ओनर_ऑब्जेक्ट फॉर्मेट ए35 हेडिंग 'ओनर.ऑब्जेक्ट';कॉलम लॉक_मोड फॉर्मेट ए13 हेडिंग 'लॉक्ड|मोड';कॉलम स्टेटस फॉर्मेट ए8 हेडिंग 'स्टेटस';सेलेक्ट सबस्ट्र (to_char(l.session_id)| |','||to_char(s.serial#),1,12) sid_ser,substr(l.os_user_name||'/'||l.oracle_username,1,12) यूजरनेम,l.प्रोसेस,p.spid, substr(o.owner||'.'||o.object_name,1,35) owner_object,decode(l.locked_mode,1,'No Lock',2,'Row Share',3,'Row Exclusive',4 , 'साझा करें', 5, 'शेयर पंक्ति बहिष्करण', 6, 'अनन्य', अशक्त) lock_mode, substr(s.status,1,8) statusfromv$locked_object l,all_objects o,v$session s,v$process pwherel .object_id =o.object_idऔर l.session_id =s.sidand s.paddr =p.addrand s.status !='KILLED'/

प्रतीक्षा ईवेंट देखने के लिए स्क्रिप्ट

सेट लाइनसाइज 1000कॉलम सिड फॉर्मेट 999कॉलम यूजरनेम फॉर्मेट ए15 रैप्डकॉलम स्पिड फॉर्मेट ए8कॉलम इवेंट फॉर्मेट ए30 रैप्डकॉलम ओसुसर फॉर्मेट ए12 रैप्डकॉलम मशीन फॉर्मेट ए25 रैप्डकॉलम प्रोग्राम फॉर्मेट ए30 रैप्डसेलेक्ट sw.sid सिड, p.spid spid, s.username यूजरनेम, s.osuser osuser, sw.event इवेंट, s.मशीन मशीन, s.program प्रोग्राम से v$session_wait sw, v$session s, v$process pwhere s.paddr =p.addrand इवेंट नॉट इन ('पाइप गेट', 'क्लाइंट मैसेज') )और sw.sid =s.sid/

किसी विशेष सत्र की प्रतीक्षा में स्क्रिप्ट देखने के लिए

v$session_wait से
 sid,seq#,wait_time,event,seconds_in_wait,state चुनें जहां sid in (&sid);

सभी उपयोगकर्ता को उस ऑब्जेक्ट तक पहुंचते देखने के लिए स्क्रिप्ट

कॉलम ऑब्जेक्ट फ़ॉर्मैट a30कॉलम स्वामी फ़ॉर्मैट a10चुनें * v$access से जहाँ object='&object_name'/

स्क्रिप्ट किसी विशेष ऑब्जेक्ट को लॉक करने वाले उपयोगकर्ता सत्रों के बारे में जानकारी देती है

सेट लाइनसाइज 1000कॉलम प्रोग्राम फॉर्मेट a15कॉलम ऑब्जेक्ट फॉर्मेट a15सिलेक्ट सबस्ट्र (यूजरनेम||'('|| se0.sid||')',1,5) "यूजर सेशन", सबस्ट्र (मालिक, 1,5) "ऑब्जेक्ट मालिक", सबस्ट्र (ऑब्जेक्ट, 1,15) "ऑब्जेक्ट", se0.sid, सबस्ट्र (सीरियल #, 1,6) "सीरियल #", सबस्ट्र (प्रोग्राम, 1,15) "प्रोग्राम", लॉगऑन_टाइम "लॉगऑन टाइम" , v$access ac से "यूनिक्स प्रक्रिया" की प्रक्रिया करें, v$session se0where ac.sid =se0.sidand Object ='&PACKAGE'order by logon_time,"Object Owner","Object"/

लाइब्रेरी कैश में स्टेटमेंट के लिए Oracle में व्याख्या योजना देखने के लिए स्क्रिप्ट

सेट लाइनसाइज 9999कॉलम QUERY फॉर्मेट a999सेट पेज 250सेट हेड ऑफसेट वेरिफाई ऑफ सेलेक्ट आईडी,lpad(' ',2*(गहराई-1)) || गहराई ||'।' || एनवीएल (स्थिति, 0) || ' '|| ऑपरेशन || ' '|| विकल्प || ' '|| object_name ||' '||' लागत ='|| to_char(लागत)||' '|| अनुकूलक "QUERY" v$sql_plan से जहां हैश_वैल्यू =&sql_hash_value चाइल्ड_नंबर, आईडी/
द्वारा ऑर्डर करें

सर्वर स्थान खोजने के लिए स्क्रिप्ट

nvl(username,'ORACLE SHADOW PROCESS'),मशीन fromv$session चुनें जहां यूजरनेम नल और राउनम है <2/

शीर्ष क्रम खंड के उपयोग को देखने के लिए स्क्रिप्ट

col sid format 999999col spid प्रारूप a6col टेबलस्पेस प्रारूप a10col उपयोगकर्ता नाम प्रारूप a25col noexts प्रारूप 9999 सिर EXTScol proginfo प्रारूप a25 trunccol mbused प्रारूप 999,999.90col स्थिति प्रारूप a1 ट्रंकसेट सत्यापित करें * से चुनें (s.sid,s.status,b.spid चुनें) ,s.sql_hash_value sesshash,u.SQLHASH सॉर्टश, s.username,u.tablespace,sum(u.blocks*p.value/1024/1024) mbused ,sum(u.extents) noexts,u.segtype,s.module || ' - ' || s.program proginfo from v$sort_usage u, v$session s, v$parameter p, v$process bwhere u.session_addr =s.saddrand p.name ='db_block_size'and b.addr =s .paddrgroup s.sid,s.status,b.spid,s.sql_hash_value,u.sqlhash,s.username,u.tablespace,u.segtype,s.module || '-' || s.programorder by 8 desc,4)जहां राउनम <11;

sql कथन में तालिकाओं के लिए अंतिम विश्लेषण की जांच करने के लिए स्क्रिप्ट

सेट लाइन 1000सेट सत्यापित ऑफकॉल मालिक प्रारूप a15col ऑब्जेक्ट_नाम प्रारूप a25col ऑब्जेक्ट_टाइप प्रारूप a12col "अंतिम विश्लेषण" प्रारूप a13 का चयन करें।OWNER,do.OBJECT_NAME,OBJECT_TYPE,decode (OBJECT_TYPE,'TABLE'  , (LAST_ANALYZED को dba से चुनें) do.owner और TABLE_NAME=do.object_name)  ,'INDEX'  , (dba_indexes से LAST_ANALYZED चुनें जहां मालिक=do.owner और INDEX_NAME=do.object_name) ,'UNKNOWN') "LAST ANALYZED", STATUS     DBA TABLE','INDEX')और    (OWNER,OBJECT_NAME) में (V$SQL_PLAN से OBJECT_OWNER,OBJECT_NAME चुनें जहां HASH_VALUE=&1)/

लाइब्रेरी कैश लॉक और पिन की जांच करने के लिए

चुनें /*+ all_rows */ w1.sid Wait_session,h1.sid Holding_session,w.kgllktype lock_or_pin,w.kgllkhdl पता, डीकोड (h.kgllkmod, 0, 'कोई नहीं', 1, 'नल', 2, 'शेयर', 3, 'एक्सक्लूसिव', 'अज्ञात') मोड_हेल्ड, डिकोड (w.kgllkreq, 0, 'कोई नहीं', 1, 'नल', 2, 'शेयर', 3, 'एक्सक्लूसिव', 'अज्ञात') mode_requestedfrom dba_kgllock w, dba_kgllock h, v$session w1, v$session h1where(((h.kgllkmod !=0) and (h.kgllkmod !=1)and ((h.kgllkreq =0) या (h.kgllkreq =) 1)))और((((w.kgllkmod =0) या (w.kgllkmod=1))और ((w.kgllkreq!=0) और (w.kgllkreq!=1)))और w.kgllktype =h.kgllktypeand w.kgllkhdl =h.kgllkhdland w.kgllkuse =w1.saddrand h.kgllkuse =h1.saddr/

फ़ाइल स्थान को नियंत्रित करने के लिए

col नाम प्रारूप a60 शीर्षक "कंट्रोल फाइल्स" sys.v_$controlfile/ से नाम चुनें।

लॉग स्थान फिर से करें जांचने के लिए

col Grp format 9999col सदस्य प्रारूप a50 शीर्षक "ऑनलाइन REDO लॉग्स" col फ़ाइल# प्रारूप 9999col नाम प्रारूप a50 शीर्षक "ऑनलाइन REDO लॉग" Grpselect group#,memberfrom sys.v_$logfile/
पर ब्रेक करें

डेटाफ़ाइल स्थान की जांच करने के लिए

col Tspace प्रारूप a25col स्थिति प्रारूप a3 शीर्षक Stacol आईडी प्रारूप 9999col Mbyte प्रारूप 999999999col नाम प्रारूप a50 शीर्षक "डेटाबेस डेटा फ़ाइलें" कॉलम प्रारूप 99,999,999col पढ़ता है प्रारूप 99,999,999 लिखता है रिपोर्ट पर गणना योग लेबल 'कुल (एमबी)' Mbyte की रिपोर्ट चयन पर F.file_id Id,F.file_name name,F.bytes/(1024*1024) Mbyte,decode(F.status,'AVAILABLE','OK',F.status) status,F.tablespace_name Tspacefrom sys.dba_data_files Forder by टेबलस्पेस_नाम;

टेबलस्पेस के लिए ऑटोएक्सटेंड ऑन/ऑफ चेक करना:

dba_data_files(OR)SQL से substr(file_name,1,50), AUTOEXTENSIBLE चुनें> dba_data_files से tablespace_name, AUTOEXTENSIBLE चुनें;

अंडरस्कोर पैरामीटर की जांच कैसे करें

X.KSPPINM NAME, DECODE(BITAND(KSPPIFLG/256, 1), 1, 'TRUE', 'FALSE') SESMOD, DECODE(BITAND(KSPPIFLG/65536, 3), 1, 'IMMEDIATE', 2 चुनें , 'स्थगित', 3, 'तत्काल', 'गलत') SYSMOD, KSPPDESC विवरण SYS.X_$KSPPI X से जहां X.INST_ID =USERENV('INSTANCE') ANDTRANSLATE(KSPPINM,'_','#') LIKE ' #%' 1 तक ऑर्डर करें;

डीबीए लिंक कैसे दिखाएं

सेट लाइनसाइज 128 पेज 1000col मालिक फॉर्मेट a15col db_link फॉर्मेट a15col यूजरनेम फॉर्मेट a20col होस्ट फॉर्मेट a15col नाम फॉर्मेट a30प्रॉम्प्ट डेटाबेस लिंक्स:सेलेक्ट ओनर, db_link, यूजरनेम, होस्ट द्वारा dba_db_links ऑर्डर से मालिक द्वारा ऑर्डर, db_link, यूजरनेम / प्रॉम्प्ट पर्यायवाची लिंक:अलग का चयन करें स्वामी, db_link से dba_synonyms जहां db_link शून्य नहीं है/शीघ्र स्नैपशॉट लिंक:स्वामी का चयन करें, नाम, प्रतिस्थापित करें (master_link,'@','') db_link से dba_snapshotsजहां मास्टर_लिंक शून्य नहीं है/

फ़ाइल-आईडी और ब्लॉक का उपयोग करके DBA_extents द्वारा खंड की पहचान करना

सेगमेंट_नाम चुनें, सेगमेंट_टाइपFROM dba_extentsWHERE file_id =<फाइल> और<ब्लॉक> ब्लॉक_आईडी और ब्लॉक_आईडी + ब्लॉक -1 के बीच;

DBMS_SCHEDULER से चल रहे कार्यों को सूचीबद्ध करना

सेट हेडिंग ONSET LINESIZE 300SET PAGESIZE 60COLUMN स्वामी FORMAT A20चयन स्वामी,job_name,running_instance,elapsed_timeFROM dba_scheduler_running_jobsORDER द्वारा स्वामी, job_name/

DBMS_SCHEDULER जॉब जानकारी सूचीबद्ध करना

सेट हेडिंग ONSET LINESIZE 300SET PAGESIZE 60COLUMN स्वामी FORMAT A20COLUMN next_run_date FORMAT A35 चयन स्वामी,job_name,सक्षम,job_class,next_run_dateFROM dba_scheduler_jobsORDER द्वारा स्वामी, job_name/

AWR से SQL_ID के लिए ऐतिहासिक योजना कैसे प्राप्त करें

सेट पेज साइज 60SET LINESIZE 300SELECT * FROM TABLE(dbms_xplan.display_awr('&SQL_ID'))/

डेटाबेस का प्रतीक्षा विश्लेषण कैसे करें

वी$session_wait समूह से ईवेंट, स्थिति, गणना(*) का चयन करें, 3 desc द्वारा राज्य आदेश;

हाई बफर को sql कैसे खोजें 

 से चुनें * (सेलेक्ट एड्रेस, हैश_वैल्यू, बफर_गेट्स, एक्जीक्यूशन, बफर_गेट्स/एक्जिक्यूशन "गेट्स/एक्सेक", sql_textFROM v$sqlareaWHERE buffer_gets> 500000 और एक्जीक्यूशन> 0ORDER BY 3 desc) जहां rownum <20;

निगरानी के उद्देश्य से oracle डेटाबेस के लिए oracle dba स्क्रिप्ट की यह सूची पूर्ण नहीं है। निगरानी के लिए और भी कई स्क्रिप्ट हैं। मैं उन्हें बाद की पोस्टों में प्रस्तुत करूँगा

यह भी पढ़ता है
Oracle में हैश जॉइन करें:Oracle में हैश ज्वाइन के विस्तृत विवरण के लिए इस पोस्ट को देखें, यह oracle में नेस्टेड लूप जॉइन से कैसे अलग है
Oracle टेबल लॉक्स:Oracle Enqueue, Row Level &DDL,table ताले, ओरेकल लॉक कैसे काम करता है, ओरेकल में वेटर्स और ब्लॉकर्स का पता लगाने के लिए उपयोगी प्रश्न
v$active_session_history :सक्रिय सत्र इतिहास के बारे में जांच करें, इसे कैसे कॉन्फ़िगर किया गया है, ASH, ASH रिपोर्ट पीढ़ी का उपयोग करके प्रदर्शन की अड़चन कैसे खोजें, ASH क्वेरी
https://en.wikipedia.org/wiki/Oracle_Database


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:शर्त के साथ पूर्ण पाठ खोज

  2. Oracle में LOWER () फंक्शन

  3. जब मैं बाधा का नाम नहीं जानता तो मैं ओरेकल में एक शून्य बाधा कैसे छोड़ सकता हूं?

  4. एसक्यूएल:पार्स कॉमा-सीमांकित स्ट्रिंग और शामिल होने के रूप में उपयोग करें

  5. Oracle (11.2.0.1):उस पंक्ति की पहचान कैसे करें जो वर्तमान में अद्यतन विवरण द्वारा अद्यतन की गई है