次の方法で共有


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 関数を呼び出して、バックアップ コンテキスト ハンドルに関連付けられているすべてのリソースを解放します。