次の方法で共有


Active Directory サーバーのバックアップ

Active Directory サーバーのバックアップでは、データベースとトランザクション ログをバックアップする必要があります。 このトピックでは、バックアップ アプリケーションが Active Directory ディレクトリ サービスをバックアップする方法について説明します。

これらのバックアップ関数の呼び出し元には、SE_BACKUP_NAME 特権が必要です。 DsSetAuthIdentity 関数を使用して、ディレクトリ バックアップ/復元関数が呼び出されるセキュリティ コンテキストを設定できます。

Active Directory サーバーをバックアップするには、次の手順に従

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