备份 Active Directory 服务器
Active Directory 服务器备份要求备份数据库与事务日志。 本主题提供有关备份应用程序如何备份 Active Directory 目录服务的演练。
这些备份函数的调用方必须具有 SE_BACKUP_NAME 特权。 可使用 DsSetAuthIdentity 函数来设置要在其中调用目录备份/还原函数的安全上下文。
若要备份 Active Directory 服务器,请执行以下步骤
- 调用 DsIsNTDSOnline 函数以确定 Active Directory 域服务是否正在运行。
- 如果 Active Directory 域服务正在运行,则请调用 DsBackupPrepare 函数来初始化备份上下文句柄。 如果 Active Directory 域服务未运行,则无法对其进行备份,而备份应用程序也必须使该备份操作失败。
- 调用 DsBackupGetDatabaseNames 函数可获取要备份的文件的列表。 若要释放此函数返回的内存,请调用 DsBackupFree 函数。
- 对于返回的文件列表中的每个名称,请调用 DsBackupOpenFile 函数,然后重复调用 DsBackupRead 函数,直到读取完整个文件。 读取完文件后,调用 DsBackupClose 函数可将其关闭。
- 备份所有数据库文件后,调用 DsBackupGetBackupLogs 函数可获取事务日志列表。 此列表的处理方式与数据库文件列表类似。
- 备份完事务日志后,调用 DsBackupTruncateLogs 函数可删除已备份的所有已提交事务日志。
- 保存 DsBackupPrepare 函数提供的过期令牌的内容。 可将其保存在文件或某些其他永久性内存中。 必须将此令牌传递给 DsRestorePrepare 函数才能启动还原操作。
- 通过将令牌指针传递给 DsBackupFree 函数来释放过期令牌的对应内存。
- 最后,调用 DsBackupEnd 函数可释放与备份上下文句柄关联的所有资源。