自从该技术在 Windows 2000 Server 中推出以来,IT 管理员一直在使用 Active Directory 并围绕其开展工作。Windows 2000 Server 于 2000 年 2 月 17 日发布,但许多管理员是在 1999 年 12 月 15 日发布到量产(RTM)之后的 1999 年末开始使用 Active Directory。
AD 数据库内部
Active Directory 数据库由一个名为 Active Directory database 的单一文件组成。该文件是 ntds.dit 。默认情况下,它存储在 %SYSTEMROOT%NTDS 文件夹中。该文件夹中还包含以下相关文件:
- chk。
该文件是一个检查点文件。检查点文件通常用于事务型数据库系统,以跟踪哪些日志文件条目已提交到数据库。在系统崩溃期间,这有助于避免数据丢失。
- log。
通常会有多个以“edb”开头的日志文件,例如 edb0013A.log 和 edb0013B.log。此外,还有一个 edb.log 文件,它是当前正在使用的活动日志文件。这些日志是事务日志,用于记录在 AD DS 中所做的更改。所有更改首先都会写入事务日志,然后在短时间后最终进入数据库。
- edb.
顾名思义,该文件是用于跟踪正在发生的事务的临时文件。运行数据库压缩(compaction)任务时也会使用它。
- log 和 res2.log,或 edbres00001.jrs 和 edbres00002.jrs.
这些日志文件的每个文件占用 10MB 空间,并在系统卷的磁盘空间严重不足的情况下使用。在较旧版本的 Windows Server 中,会使用 res1.log 和 res2.log 文件。从 Windows Server 2008 开始,采用 “edbres” 命名方式,并使用新的文件扩展名 .jrs。
Active Directory 数据库基于 Microsoft 的 Joint Engine Technology (JET),这是一种在 1992 年开发的数据库引擎。Microsoft Access 也同样基于 JET 技术。
多年来一直有传闻称,Active Directory 的数据库将会迁移到 SQL Server(类似于有关 Microsoft Exchange 的传闻),但到目前为止,这似乎并不太可能。我听说是“第三方”消息:SQL 曾被作为 AD DS 的数据库引擎进行过测试,但由于性能问题,最终未能成为数据库标准。
由于 AD DS 是一种单用途数据库,因此它可以有效地运行在 JET 技术之上(而 JET 技术可能并不适合大多数事务型数据库需求,因为这些需求往往具有多种用途)。
Microsoft 选择使用 Indexed Sequential Access Method (ISAM) 模型来对 AD DS 数据库中的数据进行索引。
为了处理数据(包括在数据库中读写并在数据库与外部之间传输数据),需要使用 Extensible Storage Engine (ESE)。ESE 有助于维护一致的、因此也是最优的数据库,尤其是在系统崩溃的情况下。ESE 有时也被称为 JET Blue,并且除了 Active Directory 之外,还被其他技术使用,包括 Microsoft Exchange、Windows Server 的 BranchCache 以及 Microsoft 的 Desktop Search。
Active Directory 所使用的数据库技术已经存在了很长时间。每一种技术本身都足以解释清楚它们如何工作,从而可能需要数页文字来深入展开。
有关 Active Directory 基础的更多信息,您可以在我们的 面向初学者的 AD 教程中找到。
分享到
了解更多
关于作者
Brian Svidergol
IT
精通以 Windows、Active Directory、Azure、Microsoft Exchange、System Center、虚拟化和 MDOP 为核心的 Microsoft 基础架构与基于云的解决方案。除了撰写书籍之外,Brian 还编写培训内容和白皮书,并担任大量图书与出版物的技术审阅者。