如果存在未结算的交易,数据库的标记将是不一致的。 你们可以对照数据库对ESENTUTL /MH进行核对。 CallingjetAttach 数据库若不连贯,总是会失败。
So, if your program is able to attach and open the database then it is consistent. There are two ways a database can be made consistent:
- A clean shutdown of ESENT.
- Running recovery using the logfiles at JetInit time.
喷口号公司所做的第一件事是寻找由JET指定的标识单。logFilePath and JET_paramBaseName. 记录单载有数据库参考的全部途径,记录单中的交易则承诺输入数据库。 因此,如果你适当确定系统参数,ESENT在附上该数据库时将装载记录。
另一方面,如果你没有适当确定参数,那么你的方案实际上将建立不需要恢复的数据库。 喷气公司赢得了任何记录单,因此它获得了任何结果,由于数据库一致,附属公司将取得成功。
还有一个扭曲之处是,记录单载有数据库的全面途径。 这意味着,如果你复制/搬走数据库,那么恢复工作就不会奏效。 从Windows 2003开始,你可以通过向载有该数据库的名录设立JET_paramAlternateDatabaseRecoveryPath来处理这一问题。
重要:为了安全起见,你应始终保持并开放使用只读旗帜的数据库。 这将避免出现故障记录仪环境所造成的任何问题。 一个共同的问题是,只有阅读的应用程序最终在不同的目录中建立了一套记录仪,从而使得数据库无法得到适当检索。