tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
1680
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    AKST AKST ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    198
    Hallo Leute,
    wenn ich im Oracle enterporise Manager oder per SQL eine Oracle-Tabelle lösche, dann bleiben diese Bin$csefwev... Dateien übrig in denen die Informationen der gelöschten Tabelle stehen. Wie kann ich diese löschen?
     
    Gruß AKST

  2. #2
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Kannst du das vielleicht etwas genauer beschreiben ?
    Eine Tabelle hat in Oracle nichts mit einer Datei zu tun, als Dateien werden nur Datafiles abgelegt in denen mehrere Tabellen und alle anderen DB Objekte abgelegt werden.

    Meinst du vielleicht v$ Views ?
    Wenn ja, arbeitest du mit 10g ?

    10g bietet Flashback Queries mit denen man Daten aus der Vergangenheit rekonstruieren kann. Wie lange hängt am Parameter "UNDO_RETENTION" der in der INIT.ORA festgelegt wird. Wenn es also wirklich was mit der UNDO_RETENTION zu tun hat brauchst du die Daten nicht zu löschen, die verschwinden nach der gesetzten Zeit von alleine.
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

  3. #3
    Avatar von mschuetzda
    mschuetzda mschuetzda ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    184
    Hallo Exceptionfault,

    AKST meint.. diese Bin$csefwev... Tabellen oder Views (weiß ich auch nicht mehr)
    ich habe die auch schon bei 10g gesehen, habe aber (noch) keine Ahnung was es damit auf sich hat.

    Bin auch für jede Info dazu dankbar.
    mfg
     
    Der Computer rechnet mit allem,
    nur nicht mit seinem Benutzer
    (Dieter Hildebrand)

  4. #4
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Also, leider hab ich noch keine 10er hier laufen aber es hört sich wirklich nach dem Flashback an.

    In 10g gibt es eine Art Mülleimer in dem erstmal alles abgelegt wird, eben solange wie die UNDO_RETENTION time gesetzt ist.

    Es gibt zwei Möglichkeiten wie man die Einträge los wird:

    1.) Die Zeit runtersetzen, dann fliegen die Einträge von alleine raus, sollte man sowieso machen wenn man nicht auf Flashback angewiesen ist, denn das hält den UNDO TS kleiner.

    2.) Order die Tabelle mittels
    DELETE TABLE emp PURGE;
    löschen, damit kommt sie gar nicht in den recyclebin.
    Nachträglich kann sie auch über
    PURGE TABLE emp; aus dem Mülleimer gelöscht werden.

    Probiert mal den Befehl
    SHOW RECYCLEBIN
    Damit solltet ihr alle gelöschten Objekte der letzten Zeit sehen...
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

  5. #5
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Habs nochmal nachgelesen, der Parameter heisst
    DB_FLASHBACK_RETENTION_TARGET
    Ist default auf 1440 minuten.
    Der rest sollte aber stimmen.
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

  6. #6
    AKST AKST ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    198
    Danke für die Tips, probiere es heute abend aus.

    P.S. ja ich habe die 10g-Version und meinte die Tabellen im RecycleBin
     
    Gruß AKST

  7. #7
    AKST AKST ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    198
    Wenn ich show recyclebin angeben, dann wird nichts angezeigt. Die Tabellen mit den Namen "BIN$bdgnbr" stehe seit einer wopche da und verschwinden nicht. Wenn ich sie löschen will, sagt mir der Enterprismanager sinngemäß, dass "Objekte im Reclebin nicht gelöscht werden können".

    Wie kann ich den Wert des Parameters "DB_FLASHBACK_RETENTION_TARGET" sehehn und verändern?

    P.S. habe leider nur ein Oraclebuch für Programmierer und nicht für Admins.
     
    Gruß AKST

  8. #8
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Hast du es mal mit PURGE TABLE xyz versucht ?

    Die DB_FLASHBACK_RETENTION_TARGET siehst du z.B. über

    SHOW PARAMETER FLASHBACK

    Werd mir bei Gelegenheit auch mal ne 10er installieren und das untersuchen, bin nur grade unterwegs in der Schweiz, daher etwas kompliziert.

    Der Parameter wirkt übrigens auch über ein shutdown, d.h. wenn dort 1440 Minuten angegeben ist, dann sind damit 1440 "Betriebsminuten" gemeint. Es könnte auch sein, dass es ein Mindestwert ist und die Daten solange im Recyclebin bleiben bis der Platz im Undo TS für was anderes gebraucht wird (?). Muss ich mal testen...
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

  9. #9
    AKST AKST ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    198
    Hallo,

    wenn ich
    Code :
    1
    
    PURGE TABLE scott.BIN$SX8l3oqbQlmY4t/11Ns85Q==$0
    eingebe erhalte ich folgende Fehlermeldung.
    "FEHLER in Zeile 1:
    ORA-00933: SQL-Befehl wurde nicht korrekt beendet"
     
    Gruß AKST

  10. #10
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Du kannst auch nicht den kryptischen Namen der Tabelle angeben, sondern den wie sie vorher hies, also vor dem DROP Table.

    Bin grade am runterladen von 10g, werd es bis heute Abend sicher mal testen.
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

  11. #11
    AKST AKST ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    198
    Das dachte ich mir schon nur weiss ich leider nicht wie diese Tabelle vorher hiess. Das war eine automatisch erstellte Beispiel-Tabelle für den Benutzer (Schema) Scott. Das war irgendwas mit employee oder so. Wie kann ich denn rausfinden, wie die Tabelle vorher hieß?
     
    Gruß AKST

  12. #12
    Avatar von Exceptionfault
    Exceptionfault Exceptionfault ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Neckarsulm
    Beiträge
    348
    Also, ich habs nun endlich geschafft mir ne 10g zum testen zu installieren und habe mal versucht das mit den gelöschten Tabellen nachzustellen. Dabei kam etwa folgendes raus:


    Zuerst ein paar Tabellen angelegt und sie wieder gelöscht. Dann bekam ich folgendes Ergebnis:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    SQL> select table_name from user_tables;
     
    TABLE_NAME
    ------------------------------
    TEST
    BIN$3DMfL68YTLmNrsD4MwFa1g==$0
    BIN$TlJf6UdKQtWlYOIKgg2cvQ==$0

    Nun mal schauen was so im Mülleimer liegt:

    Code :
    1
    2
    3
    4
    5
    
    SQL> show recyclebin
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ------------ -------------------
    DBA_LOCKS_TEMP   BIN$TlJf6UdKQtWlYOIKgg2cvQ==$0 TABLE        2004-11-03:21:54:36
    LOCK_HOLDERS     BIN$3DMfL68YTLmNrsD4MwFa1g==$0 TABLE        2004-11-03:21:54:36

    Ok, nun die Bereinigung:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
     SQL> purge table LOCK_HOLDERS;
     
    Tabelle bereinigt.
     
    SQL> show recyclebin
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ------------ -------------------
    DBA_LOCKS_TEMP   BIN$TlJf6UdKQtWlYOIKgg2cvQ==$0 TABLE        2004-11-03:21:54:36
     
    SQL> select table_name from user_tables;
     
    TABLE_NAME
    ------------------------------
    TEST
    BIN$TlJf6UdKQtWlYOIKgg2cvQ==$0

    Bei mir klappt das mit SHOW RECYCLEBIN.
     
    liebe Grüße
    Exceptionfault (http://exceptionfault.de)

    Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008

  13. #13
    AKST AKST ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    198
    Komisch, wenn ich mich in SQL*Plus worksheet als Schema Scott anmelde, dann zeigt er mir immer den Recylebin-Ordner von Schema SYS.

    Danke für deine Hilfe.
    Geändert von AKST (04.11.04 um 15:54 Uhr)
     
    Gruß AKST

Ähnliche Themen

  1. [Oracle 10g] Spalteninhalt löschen
    Von m3000 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 18.08.10, 16:50
  2. Oracle DB - Daten aus Archiv löschen
    Von The_Answer1985 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 12.09.07, 19:32
  3. Oracle; Daten aus Tabelle löschen
    Von binfgi im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 10.07.06, 10:25
  4. Antworten: 22
    Letzter Beitrag: 09.12.05, 10:02
  5. MySQL: DS aus Tabelle A anhand DS aus Tabelle B Löschen
    Von VBFreak im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 07.01.05, 12:16