익숙한: openldap-servers-2.4.23-34.el6_5.1.x86_64
작업 : crontab예약 된 데이터베이스 전체 백업을 만들기 위한 스크립트 를 만듭니다.
1) slapcat-기본 형식 인 Berkeley DB로 파일을 만듭니다.
2) 실행 slapcat중에 수행 할 수 있습니다 slapd( bdb/hdb데이터베이스를 사용하는 경우 ).
3) 파일을 복원하려면 slapcat사용 slapadd하지 않아야합니다 (아님 ldapadd).
4) slapcat/add비밀번호가 필요하지 않습니다.
5) 중지 된 slapadd경우에만 수행 할 수 있습니다 slapd.
예:
$ slapcat -f /etc/openldap/slapd.conf -b "dc=db_1" -l db_1_backup.ldif
$ slapadd -l db_1_backup.ldif
대신에 slapcat/add살펴 보자 ldapsearch/add.
1) ldapsearch-거의 같은 정보를 가진 파일을 만듭니다 slapcat.
2) ldapadd-에서 파일을 사용할 수 있으며 중지 할 ldapsearch필요가 없습니다 slapd.
3) ldapadd/search-비밀번호가 필요합니다.
예:
$ ldapsearch -D "cn=root,dc=db_1" -W -b "dc=db_1" "dc=db_1" -LLL > db_1_backup2.ldif
$ ldapadd -x -D "cn=root,dc=db_1" -W -f db_1_backup2.ldif
따라서 질문은 다음과 같습니다.
1)이 도구 설명에 빠진 것이 있습니까?
2) 사이의 차이가 다른 무엇 ldapadd/slapadd과 ladpsearch/slapcat?
답변
좋은 요약, 몇 가지 추가 사항 :
slapcat(로컬) 직접 스토리지 백엔드가 무엇이든간에 버클리 (hdb 또는 bdb) 일 필요는 없으며 OLC (cn=config) 와도 작동합니다 . LDIF 형식으로 덤프 합니다 . 직접적으로는 로컬에 저장된 경우에도 SQL 백엔드가 아닌 OpenLDAP에서 직접 관리한다는 의미입니다.ldapadd그 slapd에 필요한 되고 , 실행slapadd은해야 되지 않은 실행ldapsearch즉 요구slapd되는 실행slapcat당신이 언급 한 바와 같이, 그것은 BDB 백엔드로 실행중인 경우 상관하지 않는다
한마디로 :
slapcat마스터에서 가동 중지 시간이 발생하더라도 신속하게 복원 할 수있는 좋은 백업을 얻는 방법입니다 (다양한 유형의 복제 설정으로이 문제를 해결할 수 있습니다). 이것이 일반 백업 및 사전 업그레이드 백업에 사용해야합니다.ldapsearch(없이+) 다른 디렉토리 서버에 거의 어려움없이로드 할 수 있는 휴대용 백업을 제공하지만, 간단한 OpenLDAP 설정 (복제, 특수 오버레이, 재 작성 없음)으로 실행 가능한 복원 만 가능합니다. UUID 보존 / 메타 데이터 생성 / 수정에 신경 쓰지 않아도됩니다. 데이터와 함께 제공되는 추가 스키마 파일이 필요합니다.ldapadd(그 다른 ID를 사용하여ldapmodify(개체, 수정, 삭제 및 이름 변경)을 가능 또는 불가능있는 쉽게 LDAP 수정을 적용 할 수 있습니다)slapadd/slapcat혼자
대부분의 관리자는 각 경우에 약간 다른 LDIF 내용과 slapd실행 요구 사항에 따라 주요 고려 사항이 발생합니다 . 더 중요한 차이점은 다음과 같습니다.
slapcatLDAP 프로토콜 오버 헤드, 인증, 액세스 제어, 개체 및 시간 제한, 오버레이를 생략하고 데이터베이스를 덤프하기 때문에 속도가 더 빠릅니다. LDAP 계층 구조에 따라 검색하지 않습니다.slapadd(더 이상 LDAP 프로토콜 오버 헤드가 없음) 속도가 빠르며 알려진 양호한 백업을 복원하는 경우 빠른 모드 (-q)로 실행 하여 큰 가져 오기 속도를 높일 수 있습니다.-sOpenLDAP 버전 사이의 스키마 또는 데이터 유효성 검사에서 약간의 변경 사항은 들어 본 적이 없지만 스키마 검사 ( )를 비활성화 할 수도 있습니다 .slapcat로컬 데이터베이스로 제한되며 다른 디렉토리 (예 :back-ldap,back-meta)로 넘어 가지ldapsearch않습니다.slapadd/ 에도 동일하게 적용됩니다ldapadd.ldapsearch백엔드에 저장되지 않은 동적 속성hasSubordinates또는 오버레이에 의해 유지되는 동적 속성 (예 🙂 을 반환합니다slapo-memberof. 로드시 문제가 발생합니다ldapadd(예 : 사용자가 수정하지 않은 운영 속성). 다시 쓰기 (slapo-rwm)는ldapsearch디렉토리 내용에 대한보기를 왜곡 할 수 있습니다 .slapcat내부 (운영) 속성을 포함하며 복제를 사용하는 경우 이러한 속성이 중요합니다. 복제를 사용하면 백업에 덜 의존하지만ldapadd마스터를 다시로드 하는 데 사용 하면 복제에 의해 모든 오브젝트가 다시 작성 됩니다 (변경됨entryUUIDentryCSN). 특수한 “+”속성을 사용하여ldapsearch(또는allop오버레이) 조작 속성을 포함 할 수 있지만 , 이것은와 동일하지 않습니다.slapcat이전 포인트를 참조하십시오. 이러한 속성에는 DN 생성 / 수정 및 타임 스탬프도 포함되며 일부 응용 프로그램에 중요 할 수 있습니다.slapcatLDAP 계층 구조 (암시 적 순서 지정)를 준수하지 않기 때문에 데이터 순서가 유효하다는 보장이 없습니다.ldapadd즉, 운영 속성을 제거하더라도ldapadd하위 항목이 상위 (부모) 앞에 나타날 수 있기 때문에 불만을 제기 할 수 있습니다. . LDAP 스펙에는 상위가 있어야하지만 이와 관련하여 검색 결과 순서는 정의되지 않은 상태로 두십시오. 아래의 Howard 의견을 참조하십시오. OpenLDAPslapadd는 일부 백엔드에 대해 순서가없는 데이터를 자동으로 지원합니다. 핀치에서 모든 “순서가없는”상위 항목이 작성 될 때까지slapadd계속 오류 오류 옵션 (-c) 을 반복적으로 사용 하여 더 이상 오류 코드 32를 수신하지 않으면 중지 할 수 있습니다 (이러한 오브젝트,ldapadd참조 규칙, 정책 (암호 정책)과 같은 LDAP 규칙 및 오버레이에 적용됩니다.slapcat최소한 userPassword에 대해 base-64로 인코딩 된 속성 값을 사용하는 것을 선호합니다 (::속성 이름 뒤에 표시됨)ldapsearchLDIF 형식화와 별도의 파일에 큰 속성을 쓰는 옵션이 더 있습니다. 또한 참조 및 별칭을 처리 할 수도 있습니다 .
답변
slapcat예를 들어 오버레이가있는 경우 작동하지 않습니다 memberOf. 따라서 slapcat/ slapadd주기 멤버쉽 오버레이를 수행하면 더 이상 작동하지 않습니다.