Friday, August 13, 2010

How to rebuild index for Exchange 2007 DBs

Run error with Exchange 2007 DB index. Users reported they cannot find any message either from Outlook or OWA. Check Exchange server event log and find two events for two of the DBs.
 
Log Name:      Application
Source:        MSExchangeIS Mailbox Store
Date:          8/5/2010 12:22:47 PM
Event ID:      1025
Task Category: General
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      MBX-1
Description:
An error occurred on database "DB1\DB1".
 Function name or description of problem: Content Indexing received an unusual and unexpect error code from MSSearch
Error: 0xc0041800
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchangeIS Mailbox Store" />
    <EventID Qualifiers="32774">1025</EventID>
    <Level>3</Level>
    <Task>6</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-08-05T16:22:47.000Z" />
    <EventRecordID>810560</EventRecordID>
    <Channel>Application</Channel>
    <Computer>MBX-1</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Content Indexing received an unusual and unexpect error code from MSSearch</Data>
    <Data>0xc0041800</Data>
    <Data>DB1\DB1</Data>
  </EventData>
</Event>
 
Log Name:      Application
Source:        MSExchange Search Indexer
Date:          8/5/2010 12:23:09 PM
Event ID:      107
Task Category: General
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      MBX-1
Description:
Exchange Search Indexer has temporarily disabled indexing of the Mailbox Database DB2\DB2 (GUID = 29df8d7a-dd2d-45fa-9852-0b079f996129) due to an error (System.ComponentModel.Win32Exception: Unknown error (0x80043613)
   at Microsoft.Exchange.Msfte.CSrchProject.SendBatch(BatchInformation batchInformation)
   at Microsoft.Exchange.Search.NotificationQueue.ProcessingProcedure()).
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchange Search Indexer" />
    <EventID Qualifiers="32772">107</EventID>
    <Level>3</Level>
    <Task>1</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-08-05T16:23:09.000Z" />
    <EventRecordID>810563</EventRecordID>
    <Channel>Application</Channel>
    <Computer>MBX-1</Computer>
    <Security />
  </System>
  <EventData>
    <Data>DB2\DB2</Data>
    <Data>29df8d7a-dd2d-45fa-9852-0b079f996129</Data>
    <Data>System.ComponentModel.Win32Exception: Unknown error (0x80043613)
   at Microsoft.Exchange.Msfte.CSrchProject.SendBatch(BatchInformation batchInformation)
   at Microsoft.Exchange.Search.NotificationQueue.ProcessingProcedure()</Data>
  </EventData>
</Event>
Based on these events, we decided to rebuild index for these two troubled DBs. After reindexing, everything goes to normal and users can do search from their mailbox again.
 
Here is list of cmdlet I used for reindex. (note: please plan run the cmdlet off hours since it uses CPU resources)
 
1. GetSearchIndexForDatabase -All
    to get list of index folder of all DBs. You will notice that these two troubled index folder's last modified date is not current.
 
2. ResetSearchIndex.ps1 -force  DB1
    ResetSearchIndex.ps1 -force  DB2
 
Note: it only needs DB name. it doesn't asked for Storage Group name or server name.
 

1 comment: