OpenLDAPのバックアップと復元

OpenLDAPのバックアップと復元

バックアップとリカバリを設定し、正しく機能していることを確認したいと思います。

データベースサイズは私の既存のデータベース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(可能性は低いがバグがある場合は可能です)。

関連情報