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

먼저 슬랩캣(slapcat)에 대해 알아야 합니다.한정:

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(가능성은 낮지만 버그가 있는 경우 가능함).

관련 정보