Hallo, da scheint mir etwas ganz grundsätzlich durcheinder zu gehen!
Hallo,
da heute mein automatischer Job versagt hat, der alle 12
Stunden die Archivelogs auf eine andere Platte schaufelt (die
dann einmal die Woche wieder überschrieben werden, da ja auch
1mal die Woche ein Dump gezogen wird) keimt bei mir mal wieder
die Frage auf wie man es besser machen kann.
Eine Datenbank zu archivieren macht nur Sinn, wenn Du regelmäßig Backups fährst. Tust Du das nicht, kannst Du den Archivemode abschalten (würde ich allerdings nicht empfehlen. Wenn Du die Datenbank einmal die Woche dumpst, heißt das ohne Backup, Du verlierst im Zweifelsfall 1 Woche Arbeit. Bei einer so agilen Datenbank empfehle ich Dir ein tägliches Hot-Backup und ein Skript, dass die Archive älter als einen Tag löscht - die brauchst Du dann nämlich nicht mehr.
Auch einen dump empfehle ich täglich, das ist nämlich das einzige, dass Dir bei einem logischen Fehler hilft (Table versehentlich gedropt etc.).
hintergrund war, das ein Job auf der Datenbank es geschafft
hat innerhalb von 7 Stunden 34GB Logs zu produzieren … da
war die Platte dann einfach voll.
Archivelogs sollten immer in 2 Zielverzeichnissen laufen, so dass sie nicht bei dem Verlust des einzigen Zielpfades stehen bleibt - wenn Deine DB soviele Logs produziert, musst Du in den sauren Apfel beißen und Plattenplatz kaufen - oder Du definierst die anfälligen Tablespaces mit Inhalten nologging und passt die Skripte an, dass sie an den logs vorbei arbeiten (INSERT /*+ APPEND */), dann musst Du aber wissen, was Du tust und UNBEDINGT danach ein Backup über wenigstens die betroffenen TS fahren, sonst droht wiederum Datenverlust.
wie macht man das normalerweise ? ich habe einfach 12
Batchdateien die per Move- Befehl die dateien in 12
verschiedene Ordner wegschiebt. aber ich denke mal das das mal
wieder total vorsinflutlich/billig/seltsam/ ist.
Du kannst den Enterprise Manager einsetzen, skripten, DB-Jobs aufsetzen - was letztlich alles dasselbe ist, die Methode ist also prinzipiell ok.
Die wichtigste Frage, wie richte ich ein das , was auch immer
mir die Archivefiles wegsichert, mein programm erkennt das die
Platte wieder mal zu 80-90% voll ist ?
Welches Betriebssystem?
kann man das eigentlich auch über SQL oder so abfragen wieviel
Plattenkapazität man noch hat ?
Am problemlosesten geht das über den Enterprise Manager, mit dem Du beliebige Betriebssystemjobs aufsetzen kannst.
Du kannst aber auch mit ‚host cmd‘ Betriebssystemsbefehle absetzen,
also z. B. sqlplus> host dir liefert Dir den Inhalt des aktuellen Verzeichnisses unter sqlplus.
ACHTUNG! Das läuft nicht mit sqlplusw.exe sondern NUR mit sqlplus.exe!
Grüße
Christian
Grüße zurück
Achim