sql >> Databáze >  >> RDS >> Oracle

27 skriptů Oracle dba pro Oracle Database pro správu a monitorování

Často potřebujeme monitorovat relaci databáze Oracle z důvodu výkonu, zkontrolovat zámky, zjistit umístění datových souborů, znovu provést soubory, získat informace o db_links. Zde jsou nejlepší skripty Oracle dba  pro Oracle  databázi pro účely správy a monitorování

Skript pro nalezení strany relace, pod kterou jste přihlášeni

vyberte odlišné(sid) z v$mystat;

Skript pro zobrazení všech aktivních relací

vyberte uživatelské jméno,osuser,sid,serial#, program,sql_hash_value,module z v$session, kde uživatelské jméno není nulland status ='ACTIVE' a modul není null;

Skript pro zobrazení číšníků

set linesize 1000sloupce wait_session header ‘WAITING|SESSION’sloupec hold_session title ‘HOLDING|SESSION’formát sloupce lock_type a15column mode_held format a15sloupce mode_requested format a15selectwaiting_session,holding_session,lock_mode2,lock_mode,lock_id,zamknuto 

Skript pro aktivní transakci v databázi

col RBS format a15 trunccol SID format 9999col USER format a15 trunccol COMMAND format a60 trunccol status format 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" z v$session s, v$transaction t, v$rollname r kde t.addr =s. taddrand t.xidusn =r.usnorder od t.cr_get, t.phy_io/

Skript pro sledování dlouho běžících dotazů

nastavit velikost řádku 1000selectOPNAME,sid,SOFAR/TOTALWORK*100,to_char(start_time,'dd-mon-yy hh:mi') begin,elapsed_seconds/60,time_remaining/60fromv$session_longopswheresid =&sid

Skript pro zobrazení všech objektů zámku

Skript pro zobrazení událostí čekání

Skript pro zobrazení konkrétních čekání relace

vyberte sid,seq#,wait_time,event,seconds_in_wait,state from v$session_wait kde sid in (&sid);

Skript pro zobrazení všech uživatelů přistupujících k těmto objektům

formát objektu sloupce a30formát vlastníka sloupce a10select * from v$access where object='&object_name'/

Skript poskytuje informace o uživatelských relacích zamykání konkrétního objektu

Skript pro zobrazení plánu vysvětlení v Oracle pro příkaz v mezipaměti knihovny

Skript pro vyhledání umístění serveru

vyberte nvl(username,'ORACLE SHADOW PROCESS'),stroj zv$session, kde uživatelské jméno je nulland rownum <2/

Skript pro zobrazení segmentu s nejvyšším řazením

formát col sid 999999col spid formát a6col formát tabulkového prostoru a10col formát uživatelského jména a25col formát noexts 9999 head EXTScol formát proginfo a25 trunccol formát mbused 999 999,90col stavový formát a1 truncset ověřit offselect * from (select s.sid.sid.s. ,s.sql_hash_value sesshash,u.SQLHASH sorthash,s.username,u.tablespace,sum(u.blocks*p.value/1024/1024) mbused ,sum(u.extents) noexts,u.segtype,s.module || ' - ' || s.program proginfofrom 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 by 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) kde rownum <11;

Skript pro kontrolu naposledy analyzovaných tabulek v příkazu SQL

set lin 1000set ověřit offcol formát vlastníka a15col formát název_objektu a25col formát typ_objektu a12col "LAST ANALYZED" formát a13 vyberte do.OWNER,do.OBJECT_NAME,OBJECT_TYPE,decode (OBJECT_TYPE,'TABLE'  ,=Vyberte LAST_ANALYZED z tabulky vlastníka do.owner a TABLE_NAME=do.object_name)  ,'INDEX'  , (Vyberte LAST_ANALYZED z dba_indexes, kde owner=do.owner a INDEX_NAME=do.object_name) ,'NEZNÁMÝ') "LAST ANALYZED",STATUS from_TYPE ('  DBA_OBJECTS dowhere TABLE','INDEX')a    (OWNER,OBJECT_NAME) v (vyberte OBJECT_OWNER,OBJECT_NAME z V$SQL_PLAN kde HASH_VALUE=&1)/

Kontrola zámků a připnutí mezipaměti knihovny

select /*+ all_rows */ w1.sid wait_session,h1.sid holding_session,w.kgllktype lock_or_pin,w.kgllkhdl address,decode(h.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown') mode_held,decode(w.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown') mode_requestedfrom dba_kgllock w, dba_kgllock h, v$session w1, v$session h1where(((h.kgllkmod !=0) a (h.kgllkmod !=1)and ((h.kgllkreq =0) nebo (h.kgllkreq =1))) a (((w.kgllkmod =0) nebo (w.kgllkmod=1)) a ((w.kgllkreq !=0) a (w.kgllkreq !=1)))) a w.kgllktype =h.kgllktypeand w.kgllkhdl =h.kgllkhdland w.kgllkuse =w1.saddrand h.kgllkuse =h1.saddr/

Kontrola umístění ovládacího souboru

formát názvu sloupce a60 nadpis "Control Files"select namefrom sys.v_$controlfile/

Chcete-li zkontrolovat znovu umístění protokolu

formát col Grp 9999col členský formát a50 nadpis "Online REDO Logs"col File# formát 9999col formát názvu a50 nadpis "Online REDO Logs"přerušení na Grpselect group#,memberfrom sys.v_$logfile/

Kontrola umístění datového souboru

col Tspace formát a25col stavový formát a3 nadpis Stacol Id formát 9999col Mbyte formát 999999999col formát názvu a50 nadpis "Databázové datové soubory"col Formát čtení 99,999,999col Zapíše formát 99,999,999break on reportcompute sum label on reportcompute MB report ofToselect 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 název_tabulkového_prostoru;

Kontrola zapnutí/vypnutí automatického rozšíření pro tabulkové prostory:

vyberte substr(název_souboru,1,50), AUTOEXTENSIBLE z dba_data_files(OR)SQL> vyberte název_tabulkového_prostoru,AUTOEXTENSIBLE z dba_data_files;

Jak zkontrolovat parametry podtržení

SELECT X.KSPPINM NAME, DECODE(BITAND(KSPPIFFLG/256, 1), 1, 'PRAVDA', 'NEPRAVDA') SESMOD,DECODE( BITAND(KSPPIFFLG/65536, 3), 1, 'IMMEDIATE', 2 , 'ODLOŽENO', 3, 'IMMEDIATE', 'FALSE' ) SYSMOD,KSPPDESC DESCRIPTIONFROM SYS.X_$KSPPI X WHERE X.INST_ID =USERENV('INSTANCE') ANDTRANSLATE(KSPPINM,'_','#') LIKE #%' ORDER BY 1;

Jak zobrazit odkazy DBA

Identifikace segmentu podle DBA_extents pomocí file-id a block

SELECT segment_name, segment_typeFROM dba_extentsWHERE file_id = AND BETWEEN block_id a block_id + bloky - 1;

Výpis úloh spuštěných z DBMS_SCHEDULER

SET HEADING ONSET VELIKOST ŘÁDKU 300SET VELIKOST STRÁNKY 60SLOUPCE vlastník FORMÁT A20SELECT vlastník,job_name,running_instance,elapsed_timeFROM dba_scheduler_running_jobsORDER BY owner, job_name/

Výpis informací o úkolech DBMS_SCHEDULER

SET HEADING ONSET VELIKOST ŘÁDKU 300SET PAGESIZE 60COLUMN vlastník FORMAT A20COLUMN next_run_date FORMAT A35SELECT vlastník,job_name,enabled,job_class,next_run_dateFROM dba_scheduler_jobsORDER BY owner> job_name/
Jak získat historický plán pro SQL_ID z AWR

NASTAVIT VELIKOST STRÁNKY 60 NASTAVIT VELIKOST ŘÁDKU 300 VYBRAT * Z TABULKY(dbms_xplan.display_awr('&SQL_ID'))/

Jak provést čekací analýzu databáze

vyberte událost, stav, počet(*) z v$session_wait skupinu po události, pořadí stavu podle 3;

Jak najít High Buffer dostane sql 

vyberte * z (SELECT adresa, hash_value,buffer_gets, spuštění, buffer_gets/executions "Gets/Exec",sql_textFROM v$sqlareaWHERE buffer_gets> 500000 a spuštění>0ORDER BY 3 desc) kde rownum <20;

Tento seznam skriptů oracle dba pro databázi Oracle pro účely monitorování není úplný. Existuje mnoho dalších skriptů pro monitorování. Budu je prezentovat v následujících příspěvcích

Také čte
Hash Join v Oracle:Podívejte se na tento příspěvek pro podrobný popis Hash join v Oracle, Jak se liší od Nested Loop spojení v Oracle
Oracle Table locks :Oracle Enqueue ,Row Level &DDL,table locks, jak oracle locks funguje, Užitečné dotazy ke zjištění číšníků a blokátorů v oracle
v$active_session_history :Podívejte se na Active Session History ,jak je nakonfigurován,jak najít problémové místo výkonu pomocí ASH, generování zpráv ASH, Dotazy ASH
https://en.wikipedia.org/wiki/Oracle_Database


  1. Jak zkrátit TABLE v Oracle

  2. Uživatelská databáze MySQL nemá sloupce s hesly - Instalace MySQL na OSX

  3. Potřebuje vaše firma HR databázi?

  4. Jak vytisknout výsledek příkazu SELECT, který se provádí pomocí nativního dynamického SQL?