ORACLE/Linux2.4: ORA-00255: Fehler

Hallo Experten,

ich habe eine schöne Datenbank mit einem problem:

ORA-00255: Fehler beim Archivieren des Logs von Thread , Sequenz-Nr

Dieser Fehler ist aufgetreten, nachdem das 140G Raid mal voll gelaufen war und ich erstmal was freischaufeln musste. Dabei habe ich auch ein paar alte archive-files gelöscht.

Die Doku sagt, daß ich die Logdatei ohne redo-option abhängen soll aber das klappt nicht. Ich habe einen Haufen von Statements dazu aus probiert, darunter auch die, die das Problem laut Doku hätten lösen sollen.

In Oracle’s DBA-Studio habe ich Checkpoints gestetzt, neue Logdateien angelegt und die Dateien gewechselt…

Ich weiss nicht weiter. Ich kann die Daten nicht weg schmeissen!

Für jegliche Hilfe wäre ich überaus dankbar!!!

Raimund

Hi,

ich habe eine schöne Datenbank

Hach, hast Du es gut :smile:

mit einem problem:

Na, das verringert meinen Neid.

ORA-00255: Fehler beim Archivieren des Logs von Thread ,
Sequenz-Nr

Das bedeutet
a) daß Deine Datenbank im Archivelog-Modus läuft
b) daß das Filesystem, auf das die archivierten Redolog-Dateien gesichert werden, voll ist

Dieser Fehler ist aufgetreten, nachdem das 140G Raid mal voll
gelaufen war und ich erstmal was freischaufeln musste. Dabei
habe ich auch ein paar alte archive-files gelöscht.

Eieiei! Man muß sich auch um die Dinger kümmern!
Archivierte Redologs brauchst Du für den Fall einer Wiederherstellung, wenn der DB-Server kracht.
Jedesmal, wenn Du ein Backup machst, kannst Du die bis dahin angefallenen archivierten Redologs getrost
wegschmeißen.

Die Doku sagt, daß ich die Logdatei ohne redo-option abhängen
soll aber das klappt nicht. Ich habe einen Haufen von
Statements dazu aus probiert, darunter auch die, die das
Problem laut Doku hätten lösen sollen.

Hmmm… welche waren das? meinst Du wirklich die? :smile:

In Oracle’s DBA-Studio habe ich Checkpoints gestetzt, neue
Logdateien angelegt und die Dateien gewechselt…

Warum in die Ferne usw. usw.

Ich weiss nicht weiter. Ich kann die Daten nicht weg
schmeissen!

Kann ich verstehen, sind sie doch schön
Also folgender Lösungsvorschlag:
Schau unter v$parameter ‚log_archive_dest‘ bzw. ‚log_archive_duplex_dest‘ an (select * from v$parameter where name like ‚%archive%dest‘).
Dort steht der Name des Filesystems, das Dir Ärger macht. Schaff dort ein wenig Platz, so daß die neuen Logdateien hineinpassen - ab sofort arbeitet Dein System weiter.
Damit das nicht wieder passiert, mußt Du periodisch eine DB-Sicherung (online oder offline) machen, hinterher kannst Du die archivierten Logdateien auf Band/CD/Nirvana sichern und löschen. Bei einer Onlinesicherung brauchst Du evtl. ein paar, laß die letzten 3 oder 4 liegen (soviele, wie Du Redolog-Gruppen hast - select * from v$log zeigt Dir das).

Gruß

J.

Dieser Ansatz ist richtig für die Archive Logs. Den Fall ahtte ich auch schon und habe nach Platzschaffung den Archive logger gestoppt und wieder gestartet.

Diesmal geht es leider nicht um die Archive logs sondern um die Redo logs. Die können nicht archiviert werden…

Was kann man noch tun?

Wenn ich ein Backup mache und dann die Datenbank auf einen nicht Archive Log erzeugenden modus setzte, dann würden keine Archive-logs mehr erzeugt - schon klar aber das hilft meinen Redo-logs nicht weiter. Kann ich den Redo zyklus abschliessen und die Datei ohne Backup oder archive löschen/ersetzen?

Danke für deinen Einsatz und deine Hilfe José

Dieser Ansatz ist richtig für die Archive Logs. Den Fall ahtte
ich auch schon und habe nach Platzschaffung den Archive logger
gestoppt und wieder gestartet.

Das hilft Dir nicht weiter, denn der Archiver arbeitet zwar nicht, aber die Datenbank ist nach wie vor der Meinung, daß die Logdateien archiviert werden müssen. Willst Du den Zustand dauerhaft ändern, mußt Du „alter database noarchivelog“ angeben (im mounted-Status).

Diesmal geht es leider nicht um die Archive logs sondern um
die Redo logs. Die können nicht archiviert werden…

Ja, das meine ich doch: Redo logs können nicht archiviert werden. Es geht doch um die Archive-Logs.
Bei der ORA-00255 gibt es meistens eine genauere Aufschlüsselung der Fehlerursache. Ich bin aufgrund Deiner 150G-Angabe davon ausgegangen, daß es am Platz liegt, aber evtl. liegt es an etwas anderem. Könntest Du diese Angabe posten?

Was kann man noch tun?

Hmmm, poste den Fehler, dann seh ich mal. Evtl. ist Deine Logdatei korrupt (aber dann gäbe es keine ORA-00255). Falls doch habe ich eine Idee: Du hast hoffentlich Deine Redologs gespiegelt (siehe v$logfile). Dann kannst Du die korrupte Datei durch eine Kopie des Spiegels ersetzen (vorher Datenbank runterfahren).

Wenn ich ein Backup mache und dann die Datenbank auf einen
nicht Archive Log erzeugenden modus setzte, dann würden keine
Archive-logs mehr erzeugt - schon klar aber das hilft meinen
Redo-logs nicht weiter. Kann ich den Redo zyklus abschliessen
und die Datei ohne Backup oder archive löschen/ersetzen?

Erst mal sollten wir wissen, woran es gelegen hat.

Danke für deinen Einsatz und deine Hilfe José

Bitte bitte

Gruß

J.

1 „Gefällt mir“

Ich habe leider nur

"ORA-00255: Fehler beim Archivieren des Logs von Thread , Sequenz-Nr "

In der Doku steht ja man solle den Fehler aus dem Stack ersehen aber da ist kein Stack… Weder eine Thread Nr noch eine Sequenz nummer, die eigentlich auch dabei stehen sollte.

Ich weiss nicht was und wie redologs gespiegelt werden aber ich bin mir sicher, daß die gespiegelt sind, wenn das der Normalfall ist.

Ich habe leider nur

"ORA-00255: Fehler beim Archivieren des Logs von Thread ,
Sequenz-Nr "

OK, versuche es zu forcieren. Geh in den Server Manager, connecte Dich als internal und gib ein:
alter system switch logfile;
Der Fehler sollte jetzt in all seiner Pracht und Blüte auf Deinem Terminalfenster erstrahlen.

In der Doku steht ja man solle den Fehler aus dem Stack
ersehen aber da ist kein Stack… Weder eine Thread Nr noch
eine Sequenz nummer, die eigentlich auch dabei stehen sollte.

Schade eigentlich.

Ich weiss nicht was und wie redologs gespiegelt werden aber
ich bin mir sicher, daß die gespiegelt sind, wenn das der
Normalfall ist.

Das kannst Du Dir anschauen: select * from v$logfile;
Dort stehen (mindestens) zwei Einträge pro Gruppe, also sowas wie:

group# status member
 1 /your/filesystem/is/here/redo/log1.ora
 1 /mirror/filesystem/is/here/redo/log1.ora
 2 /your/filesystem/is/here/redo/log2.ora
 2 /mirror/filesystem/is/here/redo/log2.ora
...

Gruß

J.

1 „Gefällt mir“

… seltsam geht die Welt zu Grunde …

ich habe mich im server manager intern connectiert und habe den fehler nicht bekommen.

Also habe ich den listener neu gestartet.

Der Fehler ist weg. Nicht mehr reproduzierbar. Ich vermute sogar, daß es nicht am Listener sondern am SQLWorksheet lag…

Vielen Dank für deine Hilfe!!

Raimund

… seltsam geht die Welt zu Grunde …

ich habe mich im server manager intern connectiert und habe
den fehler nicht bekommen.
Der Fehler ist weg. Nicht mehr reproduzierbar. Ich vermute
sogar, daß es nicht am Listener sondern am SQLWorksheet lag…

Hmmm, ich denke, es lag daran, daß Du vorher Platz geschaffen hattest. Aber sei glücklich, es läuft!

Gruß

J.

1 „Gefällt mir“

[MOD] -> Datenbanken allgemein
Hallo Raimund!

Deine Frage paßt inhaltlich besser in das Forum „Datenbanken allgemein“, bitte beim nächsten Mal Fragen die mit Administration und Konfiguration von Datenbanken zu tun haben dorthin.

Danke und Grüße, Robert