Announcement

Collapse
No announcement yet.

Ora-00322

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ora-00322

    Hallo zusammen,

    ich habe ein ganz großes Problem und hoffe, dass hier jemand ist der mir helfen kann.

    Ich betreibe eine Oracle 10g XE Datenbank auf einem Windows XP Pro Rechner. Die Datenbank läuft dort bereits seit ca. einem Jahr problemlos.

    Als ich mich heute Morgen anmelden wollte erhieht ich den Fehler:

    Code:
    ORA-01033: ORACLE initialization or shutdown in progress
    Beim durchgehen der Logs, um die Ursache des Fehlers ausfindig zu machen, stieß ich nun auf den Fehler:

    Code:
    ORA-00322: Log 2 von Thread 1 ist keine aktuelle Kopie
    Erste Nachforschungen in Google haben ergeben, dass dies wohl darauf zurückzuführen sei, dass ein Log-File beschädigt sei. Als mögliche Lösung für das Problem habe ich die folgende Befehlssequnz gefunden:
    Code:
    STARTUP MOUNT
    SET AUTORECOVERY ON;
    ALTER DATABASE RECOVER UNTIL CANCEL; REM Enter "CANCEL" when it promps you.
    ALTER DATABASE OPEN RESETLOGS;
    Da ich mich auf der Datenbank allerdings nicht anmelden kann, kann ich diese Befehele nicht eingeben.

    Hat irgendjemand eine Idee wie ich die DB wieder fit kriege?

  • #2
    Da ich mich auf der Datenbank allerdings nicht anmelden kann, kann ich diese Befehele nicht eingeben.
    Also sofern die Daten in der DB nicht wichtig sind, solltest Du vorher die Datafiles etc. komplett wegsichern.

    Danach öffnest Du eine cmd und gibst folgendes es:
    Code:
    set oracle_sid=XE
    sqlplus / as sysdba
    Das bedingt, dass dein OS User in der ORA_DBA Gruppe ist. Danach kannst Du deine Befehle eingeben .

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Hi Dimitri,

      erstmal vielen Dank für deinen Tip. Ich kann jetzt Befehle an die Datenbank sichicken.

      Leider hat die Lösung die ich bei Google gefunden habe nicht funktioniert. Nachdem ich die Zeilen
      Code:
      SQL> alter database recover until cancel;
      SQL> alter database recover cancel;
      ausgeführt habe erhalte ich die Meldung:
      Code:
      FEHLER in Zeile 1:
      ORA-01547: Warnung: RECOVER erfolgreich, doch OPEN RESETLOGS würde folgenden Fehler ergeben
      ORA-01194: Datei 1 erfordert weiteres Recovery, um konsistent zu werden
      ORA-01110: Datendatei 1: 'H:\ORACLEXE\ORADATA\XE\SYSTEM.DBF'
      Leider kenne ich mich mit der Administration von Oracel nicht besonders aus.

      Hast du (oder sonst jemand) eine Idee was ich noch versuchen könnte.

      Comment


      • #4
        Hi,

        dein Problem liegt wohl daran, dass die vorhandenen REDO Logs nicht ausreichen um den inkonsistenten Zustand zu beheben.
        Da es sich auch noch um den System Tablespace handelt, ist es doppelt blöd, denn der wird auf jeden Fall gebraucht.

        Ist die Datenbank im Archivelogmodus? Sprich werden die vollgeschriebenen REDO Logs weggesichert und machst Du regelmäßig eine Vollsicherung oder läuft die Datenbank im NOARCHIVELOG Modus und die Logs werden zyklisch überschrieben?

        Dim
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          Hi,

          ich hab an den Datenbankeinstellungen nach der Installation nichts mehr verändert. Es ist also also auf Default. Welchem Modus das entspreicht weiß ich nicht.

          Eine Vollsicherung hab ich (leider) noch nie durchgeführt.

          Unter: ./app/oracle/flash_recovery_area/XE gibt es allerdings ein Verzeichnis ARCHIVLOG hier liegt allerdings nur ein leeres Verzeichnis mit dem heutigen Datum.

          Kann ich irgendwie sehen in welchem Modus die DB läuft?

          Comment


          • #6
            Da brauchen wir nicht weiter nachzuschauen - Du bist im NOARCHIVELOGMODUS.
            Wir müssen hier also ein bissl tricksen um noch an deine Daten zu kommen:
            1. Fahr die DB mit shutdown immediate runter
            2. Sichere die Datei ORACLE_BASE\app\oracle\product\10.2.0\server\datab ase\initXE.ora
            3. Starte die Instance mit startup nomount
            4. Führe den Befehl create pfile from spfile; aus


            Das sollten man jetzt nur im Notfall machen:
            Füge jetzt folgende Einträge in die initXE.ora hinzu:
            Code:
            _ALLOW_RESETLOGS_CORRUPTION = TRUE
            _ALLOW_ERROR_SIMULATION = TRUE
            Speichere und atarte die Datenbank wieder mit startup mount Danach:
            Code:
            recover DATABASE until cancel;
            --Cancel eingeben und vorangegangene Fehler ignorieren
            --Weitere Fehler ignorieren
            ALTER DATABASE OPEN RESETLOGS;
            So wenn alles so funktioniert wie ich es hoffe, dann ist die Datenbank jetzt geöffnen aber nicht in Ordnung. Sichere jetzt mittles exp sofort deine Daten, installier XE neu und importiere die mittles imp wieder: http://www.orafaq.com/wiki/Import_Export_FAQ

            Danach solltest Du regelmäßige Backups machen und auch mal deine Platten überprüfen.

            Dim
            Zitat Tom Kyte:
            I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

            Comment


            • #7
              Danke für die Hilfe,

              ich werde das gleich mal ausprobieren.

              Grüße
              Maggo

              Comment


              • #8
                Hi nochmal,

                das ganze hat leider nicht ganz so Funktioniert wie erwartet.
                Ich hoffe ich hab alles richtig gemacht: hier die Konsolen ausgabe:

                Code:
                SQL> shutdown immediate;
                ORA-01109: Datenbank nicht geöffnet
                
                
                Datenbank abgehängt.
                ORACLE-Instance heruntergefahren.
                
                -- jetzt habe ich die Datei gesichert.
                
                SQL> startup nomount
                ORACLE-Instance hochgefahren.
                
                Total System Global Area  566231040 bytes
                Fixed Size                  1288628 bytes
                Variable Size             167773772 bytes
                Database Buffers          394264576 bytes
                Redo Buffers                2904064 bytes
                SQL> create pfile from spfile;
                
                Datei erstellt.
                
                -- hier habe ich die Änderung in der initXE.ora vorgenommen
                
                SQL> startup mount
                ORA-01081: ORACLE lauft noch. Erst stoppen.
                SQL> shutdown immediate;
                ORA-01507: Datenbank nicht mit Mount angeschlossen
                
                
                ORACLE-Instance heruntergefahren.
                SQL> startup mount
                ORACLE-Instance hochgefahren.
                
                Total System Global Area  566231040 bytes
                Fixed Size                  1288628 bytes
                Variable Size             167773772 bytes
                Database Buffers          394264576 bytes
                Redo Buffers                2904064 bytes
                Datenbank mit MOUNT angeschlossen.
                SQL> recover DATABASE until cancel;
                ORA-00279: ─nderung 20139593, erstellt von 10/06/2009 08:06:26. Erforderlich
                für Thread 1
                ORA-00289: Vorschlag:
                H:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_10_09\O1_MF_1_348_%U_.ARC
                ORA-00280: Änderung 20139593 für Thread 1 in Sequenz #348
                
                
                ORA-00308: Archiviertes Log
                'H:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_10_09\O1_MF_1_348_%U_.ARC' kann nicht geöffnet werden
                ORA-27041: Datei kann nicht geöffnet werden
                OSD-04002: Datei kann nicht geöffnet werden
                O/S-Error: (OS 2) Das System kann die angegebene Datei nicht finden.
                
                
                ORA-01547: Warnung: RECOVER erfolgreich, doch OPEN RESETLOGS würde folgenden
                Fehler ergeben
                ORA-01194: Datei 1 erfordert weiteres Recovery, um konsistent zu werden
                ORA-01110: Datendatei 1: 'H:\ORACLEXE\ORADATA\XE\SYSTEM.DBF'
                
                
                SQL> Alter Database Recover cancel;
                Alter Database Recover cancel
                *
                FEHLER in Zeile 1:
                ORA-01112: Media Recovery nicht gestartet
                
                SQL> ALTER DATABASE OPEN RESETLOGS;
                ALTER DATABASE OPEN RESETLOGS
                *
                FEHLER in Zeile 1:
                ORA-03113: Unerwartetes Übertragungsende in Kommunikation
                
                
                SQL>
                Die Datenbank ist leider noch immer nicht offen .
                Anbei auch die modifizierte initXE.ora
                Attached Files

                Comment


                • #9
                  Ja dann bin ich zumindest mit meinem Latein am Ende. Du hast eben auch das Pech, dass es gerade den System TS erwischt hat - ohne den läuft einfach garnix.

                  Dim
                  Zitat Tom Kyte:
                  I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                  Comment


                  • #10
                    Wenn es sich um wertvolle Daten handelt, könnte dir dieser Link evtl. helfen: http://www.dbatools.net/mydul/aul-customer.html

                    Ist aber nicht umsonst.

                    Dim
                    Zitat Tom Kyte:
                    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                    Comment


                    • #11
                      habe ich denn die Änderung in der initXE.ora syntaktisch richtig eingepflegt?
                      Da war ich mir nicht ganz sicher.

                      Comment


                      • #12
                        Oder das hier http://www.ora600.org/

                        Dim
                        Zitat Tom Kyte:
                        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                        Comment


                        • #13
                          habe ich denn die Änderung in der initXE.ora syntaktisch richtig eingepflegt?
                          Hast du.

                          Dim
                          Zitat Tom Kyte:
                          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                          Comment


                          • #14
                            Tja dann werde ich mein Glück wohl mal mit den Recovery Tools versuchen müssen.

                            Vielen Dank für deine Hilfe.

                            Grüße
                            Maggo

                            Comment


                            • #15
                              Evtl. wäre auch ein (Freiberuflicher) DBA vor Ort nützlich aber natürlich kostet auch der was.

                              Dim
                              Zitat Tom Kyte:
                              I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                              Comment

                              Working...
                              X