|
|
在ESE引擎加载数据库文件时,它会检查数据库文件的一个特殊标志位。这个标志位保存了数据库文件上次是否被正常关闭。这个状态由“ Consistent”或“ Inconsistent”来表示。对于一个正常关闭的数据库文件,所有在Log文件和内存中的内容都应该已经提交到数据库文件中,只有在这个时候,数据库才会被标记为“ Consistent”。有一点需要注意,在运行中的数据库,它的状态一定是“ Inconsistent”,因为在Log文件中肯定还有没提交到数据库文件内容。对于一个已经关闭并且状态被标示为“ Inconsistent”的数据库,并不意味着这个数据库库文件损坏了,“ Inconsistent”只是表示,还有未曾写入到数据库文件的内容保存在Log文件中。
使用命令 ESEUTIL /MH可以查常看数据库的关闭状态。
C:\...\Exchsrvr\BIN> ESEUtil /mh “C:\...\Exchsrvr\mdbdata\priv1.edb”
Microsoft(R) Exchange Server(TM) Database Utilities Version 6.0
Copyright (C) Microsoft Corporation 1991-2000. All Rights Reserved.
Initiating FILE DUMP mode...
Database: C:\program files\exchsrvr\mdbdata\priv1.edb
File Type: Database
Format ulMagic: 0x89abcdef
Engine ulMagic: 0x89abcdef
Format ulVersion: 0x620,9
Engine ulVersion: 0x620,9
Created ulVersion: 0x620,9
DB Signature: Create time:03/28/2004 20:26:24 Rand:6536656 Computer:
cbDbPage: 4096
dbtime: 63139 (0-63139)
State: Clean Shutdown <-----表示数据库关闭时的状态
Log Required: 0-0
Streaming File: Yes
Shadowed: Yes
Last Objid: 574
…<略> …
Operation completed successfully in 1.391 seconds.
State字段的“Clean Shutdown”表示数据库处在Consistent状态。
当ESE加载数据库文件时,对于“Consistent”的数据库文件,它直接Mount其中的Store;对于“In consistent”的数据库文件,ESE将执行称之为“Soft Recovery”的过程,在这个过程中,未及时提交进数据库文件的日志内容将被写入数据库。当所有的日志都写入完毕,数据库才会被标记为“ Consistent”状态,然后正常加载。 |
|