locked
Exchange database corruption questions RRS feed

  • Question

  • Hi All

    I am running Exchange 2003 SP2 in my lab and have error messages relating to database corruption on one of the stores. This will also help in my DR scenario for real life, so I thought I would throw this out to the experts...

    The database must be relatively minor since none of my test mailboxes have lost mails etc...but I was wondering what the best way to resolve this was:

    i) Restore database from tape

    ii) Run ESEUtil/ ISInteg

    iii) Create a new store, move users there, and then delete the old one

    Also:

    if we went for option (i) - would I need to replay the logs to get the latest data and prevent data loss for the users. Which begs the question, what if I only noticed this a few days after it started occuring and the logs have been flushed?

    Thanks!

    Wednesday, July 29, 2009 3:30 PM

Answers

  • B-tree is internal structure of Exchange Database...
    ESE's B-tree Database Structure

    I would prefer method ii/iii in this perticuler case (A bad page link error (-327) has been detected in B-Tree) because even backup software doesn't detect this b-tree error.

    If you are on Enterprise edition of Exchange Server then create a new DB, move all mailboxes and delete old one. This doesn't require full Exchange service downtime also and only mailboxes which are being moved, will be affected... :)

    Amit Tank | MVP – Exchange Server | MCITP: EMA | MCSA: M | http://ExchangeShare.WordPress.com RSS

    • Proposed as answer by Mike Shen Monday, August 3, 2009 10:33 AM
    • Marked as answer by Amit Tank Thursday, August 6, 2009 4:02 AM
    Thursday, July 30, 2009 9:01 AM
  • 1>B-tree is basically logical database structure corruption that is why it is not detected by the BAckup software. If the B-Tree also gives A bad page link error that means the database is severely corrupted either due to hardware or may be due to power failures.

    2> yes bad page link error signifies logical corruption at the Jet level in the database.  That means the corruption may be in table or contents. So you can recover these either by restoreing from a VERY GOOD backup (The backup without these errors) or go for the hard repair options (ESEUTIL /P)

    3> it depends, if there is sever damage to database while moving mailboxes then it may dismount the store. because the ese has to read from database in order to move to destination server. if there is minor problem with databse then move mailbox will go without any issues


    i would recommend you to take the action asap. either move to different store. or restore from backup.

    if you are restoring from backup then before restoring you need to run the hardware diagonostic on your exchange server. to make sure no errors with HDD or Storage controller



    Vinod |CCNA|MCSE 2003 +Messaging|MCTS|ITIL V3|
    • Proposed as answer by Mike Shen Monday, August 3, 2009 10:33 AM
    • Marked as answer by Amit Tank Thursday, August 6, 2009 4:02 AM
    Thursday, July 30, 2009 11:35 AM

All replies

  • I have attached few article which will give you solid idea about your queries. let me know if you have any doubts

    1>Restore database from tape


    http://www.petri.co.il/restore_exchange_2000_2003_with_ntbackup.htm

    2> Run ESEUtil/ ISInteg as well as all switches


    http://www.exchangeinbox.com/article.aspx?i=87


    For option 1> yes if the old logs are intact then you can recover your server from the time it went down.

    for e.g you have taken full backup on monday night and Tuesday noon the database corrupted

    in that case you need to restore the full backup from monday and then replay all logs of tuesday in order recover your database uptodate
    Vinod |CCNA|MCSE 2003 +Messaging|MCTS|ITIL V3|
    Wednesday, July 29, 2009 3:53 PM
  • Joe,
       It might help a bit if you could share with us the error you are seeing.
    Jim McBee - Blog - http://mostlyexchange.blogspot.com
    Wednesday, July 29, 2009 5:42 PM
  • Sure:

    Event ID: 447, Source: ESE, Type: Error

    Information Store (2716) SG2: A bad page link error (-327) has been detected in B-Tree (objectID: 21, PgnoRoot 114) of database E:\Store.edb

    Any idea what this means? Wha is a B-tree out of interest? And any idea what was the cause?

    When I did a search on google I got:

    http://support.microsoft.com/kb/810190

     

    “This problem is frequently caused by a hardware failure or by antivirus scanning of the database file directory. Event ID 447 indicates that the logical database structure has become corrupted. This may occur for one or more of the following reasons:

    ·         Disk caching has not committed transactions to the hard disk and the server has stopped responding (crashed).

    ·         Incorrect log files were replayed during a database restoration.

    ·         The server has a defective hard disk controller.

    Note A defective hard disk controller is typically indicated by disk input/output (I/O) errors that are listed in the application and system logs.

    ·         Database log files have been removed that were not fully committed to the database. “

     

    Wednesday, July 29, 2009 5:48 PM
  • B-tree is internal structure of Exchange Database...
    ESE's B-tree Database Structure

    I would prefer method ii/iii in this perticuler case (A bad page link error (-327) has been detected in B-Tree) because even backup software doesn't detect this b-tree error.

    If you are on Enterprise edition of Exchange Server then create a new DB, move all mailboxes and delete old one. This doesn't require full Exchange service downtime also and only mailboxes which are being moved, will be affected... :)

    Amit Tank | MVP – Exchange Server | MCITP: EMA | MCSA: M | http://ExchangeShare.WordPress.com RSS

    • Proposed as answer by Mike Shen Monday, August 3, 2009 10:33 AM
    • Marked as answer by Amit Tank Thursday, August 6, 2009 4:02 AM
    Thursday, July 30, 2009 9:01 AM
  • Hi Amit,

    Thanks for the reply.

    Couple of questions:

    i) "....because even backup software doesn't detect this b-tree error"

    So, should backup software normally backup b-tree errors/database corruption? Does a b-tree error always mean database corruption?

    ii) Does a bad page link error indicate a problem with the tables or the content....so, what I am getting at is will ESEUtil fix it or ISInteg, as I understand they work at different levels?

    iii) As regards moving the mailboxes from the existing store to a new one, if there is a b-tree error, would this cause some data loss? Or will the mailboxes just move to the new database?

    Thanks again!

    Thursday, July 30, 2009 10:59 AM
  • 1>B-tree is basically logical database structure corruption that is why it is not detected by the BAckup software. If the B-Tree also gives A bad page link error that means the database is severely corrupted either due to hardware or may be due to power failures.

    2> yes bad page link error signifies logical corruption at the Jet level in the database.  That means the corruption may be in table or contents. So you can recover these either by restoreing from a VERY GOOD backup (The backup without these errors) or go for the hard repair options (ESEUTIL /P)

    3> it depends, if there is sever damage to database while moving mailboxes then it may dismount the store. because the ese has to read from database in order to move to destination server. if there is minor problem with databse then move mailbox will go without any issues


    i would recommend you to take the action asap. either move to different store. or restore from backup.

    if you are restoring from backup then before restoring you need to run the hardware diagonostic on your exchange server. to make sure no errors with HDD or Storage controller



    Vinod |CCNA|MCSE 2003 +Messaging|MCTS|ITIL V3|
    • Proposed as answer by Mike Shen Monday, August 3, 2009 10:33 AM
    • Marked as answer by Amit Tank Thursday, August 6, 2009 4:02 AM
    Thursday, July 30, 2009 11:35 AM