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