もしもに備えるバックアップ、リストア(2)OpenLDAPによるディレクトリサーバ運用(2)(2/3 ページ)

» 2009年11月12日 00時00分 公開
[菊池研自伊藤忠テクノソリューションズ株式会社]

db_verifyを利用したデータファイルの検証

 db_hotbackupコマンドを利用してバックアップしたデータファイルにトランザクションログファイルが正しく適用され、リストア可能な状態となっているかどうかの確認には、db_verifyコマンドを利用することができます。

 次のコマンド例は、先ほどバックアップした先のディレクトリへ移動した後、明示的に-hオプションを指定してカレントディレクトリのファイルを対象に、db_verifyコマンドを実行しています。

# cd /tmp/hotbackup/
# PATH=$PATH:/usr/local/BerkeleyDB.4.6/bin
# db_verify -h . `ls *.bdb`

 db_verifyコマンドから特に何も出力されなければ、データファイルの正常性の確認は成功です。失敗した場合は、障害が検知されたファイル名に続いて「Database verification failed」というメッセージが出力されます。

 db_verifyコマンドの詳細は、次のURLを参考にしてください。

db_hotbackupによるバックアップファイルのリストア

 db_hotbackupコマンドは、バックアップ先ディレクトリにてトランザクションログを利用したデータファイルのリカバリ処理までを行います。このため、ユーザーが行う実際のリストア処理は、単純にバックアップ先ディレクトリに存在するデータベース関連ファイルをOpenLDAPのバックエンドデータベースディレクトリへと戻すだけで済みます。

 次のコマンド例は、OpenLDAPを停止し、バックアップ先ディレクトリからデータベース関連ファイルを戻すリカバリ処理を行っています。

# cd /usr/local/openldap-2.4.16
# kill -INT `cat var/run/slapd.pid`
      ←起動している場合は停止

 ここでは、元のバックエンドデータベースディレクトリである「/usr/local/openldap-2.4.16/var/openldap-data」にあるファイルを一時退避させた後、バックアップファイルをバックエンドデータベースディレクトリへリストアし、OpenLDAPを起動させています。

# mkdir /tmp/openldap-data.`date +%Y%m%d_%H%M`
# cd /usr/local/openldap-2.4.16
# mv var/openldap-data/* /tmp/openldap-data.[日時]
 ←既存データの退避

# cp /tmp/hotbackup/* var/openldap-data/        ←関連ファイルのリストア
# chown ldap.ldap var/openldap-data/*
# export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.6/lib
# ./libexec/slapd -u ldap

db_archiveによるトランザクションログファイルの確認

 次に紹介するコマンドは、db_archiveコマンドです。このコマンドは、運用を重ねるたびに出力され続けていくトランザクションログファイルを確認し、Berkeley DBが利用していない削除可能な(または退避可能な)ファイルとそうでないファイルを識別し、表示させることができます。

 db_archiveコマンドは、db_hotbackupコマンドのような、コマンド実行時にデータファイルやトランザクションログファイルをコピーしリカバリ処理までを実行するコマンドとは異なります。管理者が必要なトランザクションログファイルと不必要なものとを識別し、別途、バックアップを行うことを主目的としたコマンドです。

 次のコマンド例では、OpenLDAPへの更新を行い、十分なトランザクションログが出力された後、db_checkpointコマンドに「-1」(英字「L」の小文字ではなく数字の「1」)オプションを指定し、1度だけチェックポイントを実行させています。このように、明示的に発生させたチェックポイントにて更新データをデータファイルに書き戻した後、db_archiveコマンドを実行し、退避可能となったトランザクションログファイルを表示させています。

# PATH=$PATH:/usr/local/BerkeleyDB.4.6/bin
# cd /usr/local/openldap-2.4.16/var/openldap-data/
# db_checkpoint -h . -1
    ←チェックポイントの実行
# db_archive -h .           ←退避可能なログファイルの表示
log.0000000002
log.0000000003
log.0000000004
…[略]…

データファイルとトランザクションログファイルのバックアップ

 次のコマンド例では、db_archiveコマンドに-sオプションを用い、ある時点でのデータファイルのスナップショットを取得しています。その後は、例えば数時間置きに、リカバリ処理でのトランザクションログファイルの適用を目的に、Berkeley DBが利用中かそうでないかにかかわらず、db_archiveコマンドに-l(「L」の小文字)オプションを付与することですべてのトランザクションログファイルを列挙し、バックアップディレクトリへとコピーしています。

# cd /usr/local/openldap-2.4.16/var/openldap-data
# PATH=$PATH:/usr/local/BerkeleyDB.4.6/bin
# db_checkpoint -h . -1
           ←チェックポイントの実行
# db_archive -h . -d               ←不要なログの削除
# mkdir /tmp/archive
# cp -p `db_archive -h . -s` /tmp/archive/
  ←データファイルのバックアップ
# cp -p DB_CONFIG /tmp/archive/  ←DB_CONFIGのバックアップ



(…以降は、例えば、数時間置きに定期的に実行…)
(OpenLDAPへの更新処理)

# db_checkpoint -h . -1           ←チェックポイントの実行
# cp -p `db_archive -h . -l` /tmp/archive/  ←ログの定期バックアップ

 db_ archiveコマンド、db_checkpointコマンドの詳細は、次のURLを参考にしてください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。