备份 Active Directory 服务器

Active Directory 服务器备份要求备份数据库和事务日志。 本主题提供备份应用程序如何备份 Active Directory 目录服务的演练。

这些备份函数的调用方必须具有 SE_BACKUP_NAME 特权。 可以使用 DsSetAuthIdentity 函数设置在其中调用目录备份/还原函数的安全上下文。

若要备份 Active Directory 服务器,请执行以下步骤

  1. 调用 DsIsNTDSOnline 函数以确定Active Directory 域服务是否正在运行。
  2. 如果Active Directory 域服务正在运行,请调用 DsBackupPrepare 函数以初始化备份上下文句柄。 如果Active Directory 域服务未运行,则无法备份它,备份应用程序必须失败备份操作。
  3. 调用 DsBackupGetDatabaseNames 函数以获取要备份的文件列表。 若要释放此函数返回的内存,请调用 DsBackupFree 函数。
  4. 对于返回的文件列表中的每个名称,请调用 DsBackupOpenFile 函数,然后重复调用 DsBackupRead 函数,直到读取整个文件。 读取完文件后,调用 DsBackupClose 函数将其关闭。
  5. 备份所有数据库文件后,调用 DsBackupGetBackupLogs 函数以获取事务日志列表。 此列表处理方式与数据库文件列表类似。
  6. 备份完事务日志后,调用 DsBackupTruncateLogs 函数以删除已备份的所有已提交的事务日志。
  7. 保存 DsBackupPrepare 函数提供的过期令牌的内容。 这可以保存在文件或其他一些永久性内存中。 必须将此令牌传递给 DsRestorePrepare 函数以启动还原操作。
  8. 通过将令牌指针传递给 DsBackupFree 函数来释放过期令牌的内存。
  9. 最后,调用 DsBackupEnd 函数以释放与备份上下文句柄关联的所有资源。