Active Directory サーバーのバックアップでは、データベースとトランザクション ログをバックアップする必要があります。 このトピックでは、バックアップ アプリケーションが Active Directory ディレクトリ サービスをバックアップする方法について説明します。
これらのバックアップ関数の呼び出し元には、SE_BACKUP_NAME 特権が必要です。 DsSetAuthIdentity 関数を使用して、ディレクトリ バックアップ/復元関数が呼び出されるセキュリティ コンテキストを設定できます。
Active Directory サーバーをバックアップするには、次の手順に従
- DsIsNTDSOnline 関数を呼び出して、Active Directory Domain Services が実行されているかどうかを確認します。
- Active Directory Domain Services が実行されている場合は、DsBackupPrepare 関数を呼び出して、バックアップ コンテキスト ハンドルを初期化します。 Active Directory Domain Services が実行されていない場合は、バックアップできず、バックアップ アプリケーションでバックアップ操作が失敗する必要があります。
- DsBackupGetDatabaseNames 関数を呼び出して、バックアップするファイルの一覧を取得します。 この関数によって返されるメモリを解放するには、DsBackupFree 関数を呼び出します。
- 返されたファイルの一覧の名前ごとに、DsBackupOpenFile 関数を呼び出し、ファイル全体が読み取られるまで、DsBackupRead 関数を繰り返し呼び出します。 ファイルの読み取りが完了したら、DsBackupClose 関数を呼び出して閉じます。
- すべてのデータベース ファイルがバックアップされたら、DsBackupGetBackupLogs 関数を呼び出して、トランザクション ログの一覧を取得します。 このリストは、データベース ファイルの一覧と同じように処理されます。
- トランザクション ログのバックアップが完了したら、DsBackupTruncateLogs 関数を呼び出して、バックアップされたすべてのコミット済みトランザクション ログを削除します。
- DsBackupPrepare 関数によって提供される有効期限トークンの内容を保存します。 これは、ファイルまたはその他の永続的なメモリに保存できます。 復元操作を開始するには、このトークンを DsRestorePrepare 関数に渡す必要があります。
- DsBackupFree 関数にトークン ポインターを渡して、有効期限トークンのメモリを解放します。
- 最後に、DsBackupEnd 関数を呼び出して、バックアップ コンテキスト ハンドルに関連付けられているすべてのリソースを解放します。