Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:invalid_objects

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
dba:invalid_objects [2010/10/14 15:46] gpipperrdba:invalid_objects [2013/07/10 16:39] gpipperr
Zeile 1: Zeile 1:
 ====== Ungültige Objekte in der DB "reparieren" ====== ====== Ungültige Objekte in der DB "reparieren" ======
 In einer produktiven Datenbank sollten kleine Objekte ungültig sein und die Entwickler sollten bei ungültigen Objekten diese "reparieren".\\ In einer produktiven Datenbank sollten kleine Objekte ungültig sein und die Entwickler sollten bei ungültigen Objekten diese "reparieren".\\
 +
 Folgendes Schript hilft die schlimmsten Fehler zu beseitigen, wenn z.b. der Oracle Enterprise Manager hunderte von ungültigen Objekten anmerkt.\\ Folgendes Schript hilft die schlimmsten Fehler zu beseitigen, wenn z.b. der Oracle Enterprise Manager hunderte von ungültigen Objekten anmerkt.\\
  
Zeile 47: Zeile 48:
  
 spool off spool off
 +</code>
 +
 +Die obigen erzeugten Skripte nun prüfen und per SQL*Plus aufrufen
 +
  
 +<code sql>
 -- 4. Was bleibt übrig? Und muss dann im Detail repariert werden! -- 4. Was bleibt übrig? Und muss dann im Detail repariert werden!
  
Zeile 58: Zeile 64:
 </code> </code>
  
 +Script für die gelegentliche Überwachung
 +<code sql>
 +ttitle center "Invaild Objects in the database" SKIP 2
 +
 +column owner format a10
 +column object_type format a14
 +
 +select owner
 +      ,object_type
 +   ,count(*)  as anzahl
 + from all_objects 
 +where status!='VALID' 
 +group by rollup (owner,object_type)
 +/
 +ttitle off
 +prompt "List of invalid Objects"
 +select 'desc '||decode (owner,'PUBLIC','',owner||'.')||object_name as TOUCH_ME
 +  from all_objects 
 + where status!='VALID' 
 +/
 +
 +prompt "delete Script for invalid synonym - synonym points on an not existing object"
 +SELECT 'drop '||decode (s.owner,'PUBLIC','PUBLIC SYNONYM ','SYNONYM '||s.owner||'.')||s.synonym_name||';'  as DELETE_ME
 + FROM dba_synonyms  s
 +WHERE table_owner NOT IN('SYSTEM','SYS')
 +  AND( db_link IS NULL or db_link ='PUBLIC')
 +  AND NOT EXISTS
 +     (SELECT  1
 +      FROM dba_objects o
 +      WHERE decode (s.table_owner,'PUBLIC',o.owner,s.table_owner)=o.owner
 +      AND s.table_name=o.object_name);
 +</code>
 +
 +{{tag>sql script}}
dba/invalid_objects.txt · Zuletzt geändert: 2013/08/14 10:20 von gpipperr