백업 및 복구를 설정하고 제대로 작동하는지 확인하려고 합니다.
데이터베이스 크기는 내 기존 데이터베이스 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
(가능성은 낮지만 버그가 있는 경우 가능함).