Microsoft includes two command line utilities with Exchange Server that are designed to accomplish various maintenance functions within the Exchange database. They are limited, complex, tedious, and time consuming when compared to the functionality contained within GOexchange. The best time to learn how to use these tools is in a lab environment before you need them. Like firearms and prescription medications, these tools can be dangerous if you don't understand how they work and when to use them. Imagine shooting a shotgun at a container full of water-a graphic demonstration of what can happen when you mishandle a powerful tool. These two utilities are named ESEutil and ISinteg. ESEutil checks and fixes individual database tables and ISinteg checks and fixes the links between tables. To better understand the difference between ESEutil and ISinteg, let's use a building construction analogy.
- Running ESEutil is like having a structural engineer check your house's foundation. The engineer doesn't care what's inside the house. The engineer cares only whether the underlying structure is sound.
- Running ISinteg is like having an interior decorator come inside your house to check the way you've laid out your furnishings. The decorator doesn't care about the house's foundation. The decorator cares only whether the rooms' layout and decor meet with their approval. As you can see from the analogy above, both ESEutil and ISinteg are vastly different utilities, but they are complimentary and in some ways dependent upon each other to provide proper Exchange maintenance. In the next section, we will provide a more in-depth description of these two Microsoft Exchange utilities. About ESEutil ESEutil checks and fixes individual database tables but does not check the mail data contained in the Extensible Storage Engine (ESE) database. Object-oriented databases like Microsoft Exchange consist of big, structured sequential files connected by a set of indexes. The underlying database technology that controls these files is called Indexed Sequential Access Method, or ISAM. The ESE database engine exposes the flat ISAM structure as a hierarchy of objects. The function of ESEutil is to examine these individually indexed object pages, check them for correctness by comparing a computed checksum against a checksum stored in the page header, and verify that each page's data is consistent. ESEutil isn't for casual use. So, don't use ESEutil unless you absolutely need to run it and you understand what it does. To understand ESEutil, you need to know about the format of the ESE database in which ESEutil works and you need to be familiar with ESEutil's many modes of operation. ESEutil is a useful tool because it can operate in many modes. Each mode, however performs different functions with limitations or caveats.
- Defragmentation: ESEutil /d [options]
- Recovery: ESEutil /r [options]
- Integrity: ESEutil /g
- Repair: ESEutil /p [options]
- Checksum: ESEutil /k [options] The way that each of these functions is executed within the utility is to use a cryptic MS-DOS-like command structure as the parameter qualifier. For example, in order to run the defragmenter portion of the utility, an administrator would run "ESEutil /d [options]" and so on. For additional information on ESEutil, please refer to the GOexchange FAQ on our website - Microsoft ESEutil: About ISinteg The purpose of the Microsoft ISinteg utility is to inspect and fix weaknesses within the information store (IS). ISinteg looks at the mailboxes, public folders, and other parts of the IS, checking for anything that appears to be out of place. ISinteg scans the tables and B-trees that organize the ESE pages into their logical structures. In addition, the tool looks for orphaned objects, or objects that have incorrect values or references. Because ISinteg focuses on the logical level rather than physical database structure, it can repair and recover data that ESEutil can't. When looking at the physical database level, ESEutil might find the data to be valid because it looks for things such as page integrity and B-Tree structure. Data that appears valid to ESEutil from a physical view of the database might not be valid from a logical view. For example, data for various IS tables like the message, folder, or attachments table may be intact, but the relationships among tables or records within tables may be broken or incorrect because of corruption in the logical structure. This corruption can render the database unusable. Logical corruption of your Exchange Server databases is problematic and much more difficult to diagnose and repair than physical corruption. The user and administrator are, typically, unaware of a logical corruption occurrence. No specific symptoms identify logical corruption. Often, when an administrator discovers the logical corruption, it's too late for any repairs to take place. You can run ISinteg one of two ways:
- Default mode, in which the tool runs the tests you specify and reports its findings.
- Fix mode, where you specify optional switches instructing ISinteg to run the specified tests and attempt to fix whatever it can. The most important thing about running ISinteg is to run the command until it no longer reports any problems. Just running the command once does not guarantee that the information store is functioning properly. Depending on the size of the information store, the process can take a long time, however, it ensures that the databases are properly functional. For additional information on ISinteg, please refer to the GOexchange FAQ on our website - Microsoft ISinteg:
Suggest a Correction
Found an error or have a suggestion? Let us know and we'll review it.





No comments yet. Be the first to comment!