バックアップとリカバリを設定し、正しく機能していることを確認したいと思います。
データベースサイズは私の既存のデータベースldap.old
よりも小さいですldap
。バックアップ/復元テストのために/var/lib/ldap.old
名前を変更しました。/var/lib/ldap
復元中に以下のエラーが発生します。だから、すべてが正常に復元されたかどうかはわかりません。
...
added: "uid=user11123,ou=Abcd,ou=Industry Professional,dc=testdomain,dc=org" (0001cc9f)
added: "uid=user13123,ou=Abcd,ou=Industry Professional,dc=testdomain,dc=org" (0001cca0)
Error, entries missing!
entry 79870: ou=industryprofessional,dc=testdomain,dc=org
entry 79871: ou=abcd professional,ou=industryprofessional,dc=testdomain,dc=org
ディスク使用量:
[root@openldap]# du -khs ldap ldap.old/
3.3G ldap
4.0G ldap.old/
私のバックアップ/復元プロセスは次のとおりです。
サポート:
slapcat -v -l backup_openldap.ldif
再び覆う:
/etc/init.d/ldap stop
mv /var/lib/ldap /var/lib/ldap.old
mkdir /var/lib/ldap
chmod go-rwx /var/lib/ldap
cp –rfp /var/lib/ldap.old/DB_CONFIG /var/lib/ldap
slapadd –v –l backup_openldap.ldif
chown ldap:ldap /var/lib/ldap
/etc/init.d/ldap start
すべての履歴を正常に回復したことをどのように確認できますか?
答え1
まず、スラップキャットについて知っておく必要があります。限定:
For some backend types, your slapd(8) should not be running
(at least, not in read-write mode) when you do this to ensure
consistency of the database. It is always safe to run slapcat
with the slapd-bdb(5), slapd-hdb(5), and slapd-null(5) backends.
だから包装するのが良いでしょう。サポートだけで/etc/init.d/ldap stop
なく/etc/init.d/ldap start
。
回復プロセス中に再開する前に、ldap
ロードしたデータを一時ファイルにダンプし、入力したばかりのLDIFファイルと比較することができます。 LDIF出力が識別slapcat
名でソートされていると確信しているため、aはdiff
終了コード0で終了する必要があります。
...
chown ldap:ldap *
slapcat -l /var/tmp/test.ldif
diff /var/tmp/test.ldif /backup/openldap/backup_ldap2.diff
if [ $? != 0 ] ; then
echo 'differences found'
fi
/etc/init.d/ldap start
もちろん、これはslapcat
すべてが正常に機能すると仮定します。信じない場合は、以下に関連するすべてのデータを抽出する必要があります。あなた、実行中のデータベースからldap_search_ext()
いくつかの出力(ダンプまたはチェックサム)を生成し、それを回復されたデータベースで実行されているのと同じコードと比較します(ldap
もちろん起動後)。これにより、使用量に関する一部のデータがダンプから除外されることを確認できますslapcat
(可能性は低いがバグがある場合は可能です)。