none
montare db exchange 2007 RRS feed

  • Domanda

  • ciao a tutti,

    causa guasto hard disk, ho ripristinato un sbs 2008 da un backup, fin qui tutto ok.

    Dato che tra la data del backup e il momento in cui il server e`crashato, sono passate delle ore in cui sono arrivate delle mail; sono riuscito a salvare dal vecchio hard disk, tutta la directory first storage group. Purtroppo quando tento di importarla nel recovery storage group, questo mi da errore che non riesce a trovare il logFolderPath.

    Quello che vorrei sapere e` possibile in questo modo recuperare le mail, e quindi sono io che sbaglio qualcosa( ho provato ad usare RSG da un backup e tutto ha funzionato), oppure non e`proprio fattibile in queste condizioni?

    spero di essere stato chiaro.

    grazie

     

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    venerdì 4 novembre 2011 12:06

Risposte

  • Ciao Alberto,
    non conosco sbs quindi non so che versione di exchange hai. Immagino la 2007 visto che parli di storage group.

    Siccome hai i tutti i files puoi fare una cosa, vai nella cartella che ti sei salvato e lancia questi comandi:

    1. eseutil /mh "nomedatabase.edb". Questo comando fa il dump del database header.
    Dovresti vedere 3 campi importanti, state: dirty shutdown, log required ......, log prefix
    2. verifica se hai o meno i log. Ricorda che l'ultimo log file di una sequenza e' sempre E00 o E01 o E02 (dipende dal log prefix)
    3. Se hai tutti ilog files sei a cavallo. Utilizza eseutil /R logprefix /D database /L logs. Considera che ho non sotto mano un server exchange quindi vado a memoria sui perametri secondati. Tale comando ti permette di applicare i log files mancanti al tuo database e portarlo in clean shutdown (database montabile)
    4. Crea un recovery storage group e mettici dentro il file edb. Prova a montarlo dovresti riuscire.
    5. Fai il merge dei dati tra qs database ed il database che hai ripristinato.

    Questo ti permette di recuperare il massimo delle informazioni disponibili.
    E' chiaro che tutte le operazioni scritte delle dirty pages (ese buffer) che non erano state ancora flushate nei log files sono state perse.

    Saluti
    .m

    Massimiliano Luciani

    • Contrassegnato come risposta Anca Popa venerdì 11 novembre 2011 07:29
    venerdì 4 novembre 2011 12:32

Tutte le risposte

  • Ciao Alberto,
    non conosco sbs quindi non so che versione di exchange hai. Immagino la 2007 visto che parli di storage group.

    Siccome hai i tutti i files puoi fare una cosa, vai nella cartella che ti sei salvato e lancia questi comandi:

    1. eseutil /mh "nomedatabase.edb". Questo comando fa il dump del database header.
    Dovresti vedere 3 campi importanti, state: dirty shutdown, log required ......, log prefix
    2. verifica se hai o meno i log. Ricorda che l'ultimo log file di una sequenza e' sempre E00 o E01 o E02 (dipende dal log prefix)
    3. Se hai tutti ilog files sei a cavallo. Utilizza eseutil /R logprefix /D database /L logs. Considera che ho non sotto mano un server exchange quindi vado a memoria sui perametri secondati. Tale comando ti permette di applicare i log files mancanti al tuo database e portarlo in clean shutdown (database montabile)
    4. Crea un recovery storage group e mettici dentro il file edb. Prova a montarlo dovresti riuscire.
    5. Fai il merge dei dati tra qs database ed il database che hai ripristinato.

    Questo ti permette di recuperare il massimo delle informazioni disponibili.
    E' chiaro che tutte le operazioni scritte delle dirty pages (ese buffer) che non erano state ancora flushate nei log files sono state perse.

    Saluti
    .m

    Massimiliano Luciani

    • Contrassegnato come risposta Anca Popa venerdì 11 novembre 2011 07:29
    venerdì 4 novembre 2011 12:32
  • grazie Massimiliano della risposta,

    purtroppo quando eseguo il comando al passo 3, mi viene restituito l'errore 1216, e credo dipenda dal fatto che l'ultimo log possa essere corrotto, infatti se eseguo eseutil /mh nel campo logRequired c'e`proprio quel log.

    E`comunque possibile ripristinare, anche perdendo l'ultimo log? 

    nel frattempo sto guardando un po`di reference.

    ciao

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    venerdì 4 novembre 2011 14:21
  • Hai fatto un check di integrita' del log file per affermarmare che il log file e' corrotto?

    esegui questi comandi e posta il risultato:

    eseutil /mh database.edb
    prendi il numero di sequenza e lancia questo comando sul primo ed ultimo log file della sequenza

    eseutil /ml E00.log
    vediamo inoltre il checkpoint file a cosa punta

    eseutil /mk E00.chk
    .m
    Massimiliano Luciani
    venerdì 4 novembre 2011 14:40
  • questo e`il primo log:

    C:\exchangeDB>eseutil /ml e00000047fb.log

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 08.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating FILE DUMP mode...

          Base name: e00
          Log file: e00000047fb.log
          lGeneration: 18427 (0x47FB)
          Checkpoint: (0x4871,9,1FF)
          creation time: 10/30/2011 11:32:35
          prev gen time: 10/30/2011 11:17:30
          Format LGVersion: (7.3704.12)
          Engine LGVersion: (7.3704.12)
          Signature: Create time:02/01/2010 14:20:37 Rand:1660040 Computer:
          Env SystemPath: C:\Program Files\Microsoft\Exchange Server\Mailbox\First S
    torage Group\
          Env LogFilePath: C:\Program Files\Microsoft\Exchange Server\Mailbox\First
    Storage Group\
          Env Log Sec size: 512
          Env (CircLog,Session,Opentbl,VerPage,Cursors,LogBufs,LogFile,Buffers)
              (    off,    652,  32600,  16384,  32600,   2048,   2048,  64000)
          Using Reserved Log File: false
          Circular Logging Flag (current file): off
          Circular Logging Flag (past files): on
          1 C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\M
    ailbox Database.edb
                     dbtime: 14871242 (0-14871242)
                     objidLast: 1878
                     Signature: Create time:02/01/2010 14:20:40 Rand:1666619 Compute
    r:
                     MaxDbSize: 0 pages
                     Last Attach: (0x4666,9,86)
                     Last Consistent: (0x4665,1E5,1EA)

          Last Lgpos: (0x47fb,631,0)

    Integrity check passed for log file: e00000047fb.log

     

    questo e` l'ultimo:

    C:\exchangeDB>eseutil /ml e0000004871.log

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 08.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating FILE DUMP mode...

          Base name: e00
          Log file: e0000004871.log
          lGeneration: 18545 (0x4871)
          Checkpoint: (0x4871,9,1FF)
          creation time: 11/03/2011 13:21:17
          prev gen time: 11/03/2011 13:02:26
          Format LGVersion: (7.3704.12)
          Engine LGVersion: (7.3704.12)
          Signature: Create time:02/01/2010 14:20:37 Rand:1660040 Computer:
          Env SystemPath: C:\Program Files\Microsoft\Exchange Server\Mailbox\First S
    torage Group\
          Env LogFilePath: C:\Program Files\Microsoft\Exchange Server\Mailbox\First
    Storage Group\
          Env Log Sec size: 512
          Env (CircLog,Session,Opentbl,VerPage,Cursors,LogBufs,LogFile,Buffers)
              (    off,    652,  32600,  16384,  32600,   2048,   2048,  64000)
          Using Reserved Log File: false
          Circular Logging Flag (current file): off
          Circular Logging Flag (past files): on

          Last Lgpos: (0x4871,A,0)

    Integrity check passed for log file: e0000004871.log

     

    questo e`il checkpoint:

    C:\exchangeDB>eseutil /mk e00.chk

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 08.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating FILE DUMP mode...
          Checkpoint file: e00.chk

          LastFullBackupCheckpoint: (0x0,0,0)
          Checkpoint: (0x4871,9,1FF)
          FullBackup: (0x4804,8,16)
          FullBackup time: 10/31/2011 05:00:26
          IncBackup: (0x0,0,0)
          IncBackup time: 00/00/1900 00:00:00
          Signature: Create time:02/01/2010 14:20:37 Rand:1660040 Computer:
          Env (CircLog,Session,Opentbl,VerPage,Cursors,LogBufs,LogFile,Buffers)
              (    off,     16,    300,     64,   1024,    126,   2048,1073676271)

     

    grazie.

    Alberto

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    venerdì 4 novembre 2011 15:41
  • se puo`essere di aiuto ho lanciato anche questo comando:

    C:\exchangeDB>eseutil /mh "mailbox database.edb" | find /i "consistent"
      Last Consistent: (0x4870,A,CF)  11/03/2011 13:21:14

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    venerdì 4 novembre 2011 15:55
  • Manca l'mh completo. Senza di quello ci capisco poco

    .m

    venerdì 4 novembre 2011 16:04
  • scusa:

    C:\exchangeDB>eseutil /mh "mailbox database.edb"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 08.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating FILE DUMP mode...
             Database: mailbox database.edb

            File Type: Database
       Format ulMagic: 0x89abcdef
       Engine ulMagic: 0x89abcdef
     Format ulVersion: 0x620,12
     Engine ulVersion: 0x620,12
    Created ulVersion: 0x620,12
         DB Signature: Create time:02/01/2010 14:20:40 Rand:1666619 Computer:
             cbDbPage: 8192
               dbtime: 14998012 (0xe4d9fc)
                State: Dirty Shutdown
         Log Required: 18545-18545 (0x4871-0x4871)
        Log Committed: 0-18546 (0x0-0x4872)
       Streaming File: No
             Shadowed: Yes
           Last Objid: 1878
         Scrub Dbtime: 0 (0x0)
           Scrub Date: 00/00/1900 00:00:00
         Repair Count: 0
          Repair Date: 00/00/1900 00:00:00
     Old Repair Count: 0
      Last Consistent: (0x4870,A,CF)  11/03/2011 13:21:14
          Last Attach: (0x4871,9,86)  11/03/2011 13:21:32
          Last Detach: (0x0,0,0)  00/00/1900 00:00:00
                 Dbid: 1
        Log Signature: Create time:02/01/2010 14:20:37 Rand:1660040 Computer:
           OS Version: (6.0.6002 SP 2 NLS 500100.50100)

    Previous Full Backup:
            Log Gen: 18427-18435 (0x47fb-0x4803) - OSSnapshot
               Mark: (0x4804,8,16)
               Mark: 10/31/2011 05:00:26

    Previous Incremental Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Previous Copy Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Previous Differential Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Current Full Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Current Shadow copy backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

         cpgUpgrade55Format: 0
        cpgUpgradeFreePages: 0
    cpgUpgradeSpaceMapPages: 0

           ECC Fix Success Count: none
       Old ECC Fix Success Count: none
             ECC Fix Error Count: none
         Old ECC Fix Error Count: none
        Bad Checksum Error Count: none
    Old bad Checksum Error Count: none

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    venerdì 4 novembre 2011 16:10
  • Allora, iniziamo a dire:

    1. I db ed i log files hanno la stessa signature quindi possono essere applicati al database (lo vedi dal rand signature tra db e log files)
    2. L'ultimo log file non e' 18545 bensi l'e00. Come puoi vedere esiste un altro log file scritto (lo vedi dal campo log committed).
    Tale log file non e' necessario per portare in clean shutdown il database bensi' per non perdere dati. In gergo viene chiamato waypoint.

    Sembrerebbe tutto ok quindi, sposta tutti i log files tranne i 2 che ti servono (e00 e 18545) in un'altra cartella.
    Nella cartella rimani quindi con tre files (db + 2 log files).

    Fai il recorvery, tramite eseutil /r e00 occhio ai path

    .m

    Massimiliano Luciani

    venerdì 4 novembre 2011 16:32
  • purtroppo neppure questa è andata a buon fine, l'errore è sempre lo stesso,

    l'unico dubbio è la frase "occhio ai path", io ho dato il comando eseutil/r e00 dalla directory in cui ho inserito i 3 files.

    se ti viene un'altra idea è ovviamente ben accetta, nel frattempo grazie di tutto.

    Alberto

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    sabato 5 novembre 2011 09:00
  • Ciao Alberto,
    mi dici esattamente qual è l'errore che ti da?
    Il database all'interno dello storage group è uno o sono più di uno?

    .m

    Massimiliano Luciani

    lunedì 7 novembre 2011 12:35
  • ciao Massimiliano,

    il database e`soltanto uno.

    questo e` l'errore:

     Directory di C:\exchangeDB

    07/11/2011  17.25    <DIR>          .
    07/11/2011  17.25    <DIR>          ..
    03/11/2011  13.21         1.048.576 E00.log
    03/11/2011  13.21         1.048.576 E0000004871.log
    03/11/2011  13.21     1.310.998.528 Mailbox Database.edb
                   3 File  1.313.095.680 byte
                   2 Directory  35.800.707.072 byte disponibili

    C:\exchangeDB>eseutil /r e00

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 08.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating RECOVERY mode...
        Logfile base name: e00
                Log files: <current directory>
             System files: <current directory>

    Performing soft recovery...
                          Restore Status (% complete)

              0    10   20   30   40   50   60   70   80   90  100
              |----|----|----|----|----|----|----|----|----|----|
              ..........................

     

    Operation terminated with error -1216 (JET_errAttachedDatabaseMismatch, An outst
    anding database attachment has been detected at the start or end of recovery, bu
    t database is missing or does not match attachment info) after 10.795 seconds.


    Alberto Lissoni MCSA, MCTS, MCITP Server
    lunedì 7 novembre 2011 16:31
  • ciao Massimiliano,

    tutto risolto, bisognava solo aggiungere al comando eseutil /r e00 anche l'opzione /D

    grazie di tutto, sei sempre gentilissimo(ho frequentato un tuo corso di exchange 2003).

    Alberto

     


    Alberto Lissoni MCSA, MCTS, MCITP Server
    lunedì 7 novembre 2011 17:24
  • Bene sono contento :o)

    A presto

    .m

    Massimiliano Luciani

    lunedì 7 novembre 2011 19:44