LDAP : slapcat과 ldapsearch를 사용한 백업


11

익숙한: 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/slapaddladpsearch/slapcat?

답변:


12

좋은 요약, 몇 가지 추가 사항 :

  • 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실행 요구 사항에 따라 주요 고려 사항이 발생합니다 . 더 중요한 차이점은 다음과 같습니다.

  1. slapcatLDAP 프로토콜 오버 헤드, 인증, 액세스 제어, 개체 및 시간 제한, 오버레이를 생략하고 데이터베이스를 덤프하기 때문에 속도가 더 빠릅니다. LDAP 계층 구조에 따라 검색하지 않습니다.
  2. slapadd(더 이상 LDAP 프로토콜 오버 헤드가 없음) 속도가 빠르며 알려진 양호한 백업을 복원하는 경우 빠른 모드 ( -q)로 실행 하여 큰 가져 오기 속도를 높일 수 있습니다. -sOpenLDAP 버전 사이의 스키마 또는 데이터 유효성 검사에서 약간의 변경 사항은 들어 본 적이 없지만 스키마 검사 ( )를 비활성화 할 수도 있습니다 .
  3. slapcat로컬 데이터베이스로 제한되며 다른 디렉토리 (예 : back-ldap, back-meta)로 넘어 가지 ldapsearch않습니다. slapadd/ 에도 동일하게 적용됩니다 ldapadd.
  4. ldapsearch백엔드에 저장되지 않은 동적 속성 hasSubordinates또는 오버레이에 의해 유지되는 동적 속성 (예 :) 을 반환합니다 slapo-memberof. 로드시 문제가 발생합니다 ldapadd(예 : 사용자가 수정하지 않은 운영 속성). 다시 쓰기 (slapo-rwm)는 ldapsearch디렉토리 내용에 대한보기를 왜곡 할 수 있습니다 .
  5. slapcat내부 (운영) 속성을 포함하며 복제를 사용하는 경우 이러한 속성이 중요합니다. 복제를 사용하면 백업에 덜 의존하지만 ldapadd마스터를 다시로드 하는 데 사용 하면 복제에 의해 모든 오브젝트가 다시 작성 됩니다 (변경됨 entryUUID entryCSN). 특수한 "+"속성을 사용하여 ldapsearch(또는 allop오버레이) 조작 속성을 포함 할 수 있지만 , 이것은와 동일하지 않습니다.slapcat 이전 포인트를 참조하십시오. 이러한 속성에는 DN 생성 / 수정 및 타임 스탬프도 포함되며 일부 응용 프로그램에 중요 할 수 있습니다.
  6. slapcatLDAP 계층 구조 (암시 적 순서 지정)를 준수하지 않기 때문에 데이터 순서가 유효하다는 보장이 없습니다. ldapadd즉, 운영 속성을 제거하더라도 ldapadd하위 항목이 상위 (부모) 앞에 나타날 수 있기 때문에 불만을 제기 할 수 있습니다. . LDAP 스펙에는 상위가 있어야하지만 이와 관련하여 검색 결과 순서는 정의되지 않은 상태로 두십시오. 아래의 Howard 의견을 참조하십시오. OpenLDAP slapadd는 일부 백엔드에 대해 순서가없는 데이터를 자동으로 지원합니다. 핀치에서 모든 "순서가없는"상위 항목이 작성 될 때까지 slapadd계속 오류 오류 옵션 ( -c) 을 반복적으로 사용 하여 더 이상 오류 코드 32를 수신하지 않으면 중지 할 수 있습니다 (이러한 오브젝트,
  7. ldapadd 참조 규칙, 정책 ​​(암호 정책)과 같은 LDAP 규칙 및 오버레이에 적용됩니다.
  8. slapcat최소한 userPassword에 대해 base-64로 인코딩 된 속성 값을 사용하는 것을 선호합니다 ( ::속성 이름 뒤에 표시됨)
  9. ldapsearchLDIF 형식화와 별도의 파일에 큰 속성을 쓰는 옵션이 더 있습니다. 또한 참조별칭을 처리 할 수도 있습니다 .

LDAP 결과 순서가 정의되지 않았습니다. slapcat과 ldapsearch는 임의의 순서로 항목을 반환 할 수 있지만 ldapadd와 함께 사용하기에 적합한 순서로 출력되지는 않습니다. slapadd의 bdb / hdb / mdb 드라이버에는 입력을 임의의 순서로 처리하는 특별한 해결 방법이 있지만 ldapadd는 그렇지 않습니다.
hyc

slapcat잘 정의되거나 정의되지 않은 데이터베이스 (백엔드) 순서로 항목을 리턴합니다. ldapsearch기본적으로 서버가 응답하는 순서대로 리턴되며 OpenLDAP에서는 클라이언트 측 정렬 (예 :) -S ""또는 서버 측 정렬 제어 (예 : -E sss지원되는 경우 약간의 구성 및 스키마 관련 베어 트랩이 적용됨)를 선택할 수 있습니다. 사양 말했다 검색 결과는 임의의 순서로 지정할 수 있습니다. 구현은 기본 순서를 정의 할 수 있습니다. 대부분의 사람들은 기본값이 "자식 이전에 부모"라고 가정하고 OpenDS 만 AFAIK를 문서화합니다.
mr.spuratic

2
OpenLDAP의 검색 결과 순서는 의도적으로 문서화되어 있지 않습니다. 사양에 따라 결과의 순서는 달라질 수 있으므로 클라이언트 소프트웨어는 특정 순서에 의존해서는 안됩니다. 결과 정렬은 물론 수행 할 수 있지만 더 많은 리소스가 필요하며 전체 백업을 수행 할 때는 일반적으로 흥미롭지 않습니다. 하위 트리 이름이 분기를 새 DIT 위치로 이동할 가능성이 있으므로 데이터베이스 순서는 의미가 없습니다.
hyc

1

slapcat예를 들어 오버레이가있는 경우 작동하지 않습니다 memberOf. 따라서 slapcat/ slapadd주기 멤버쉽 오버레이를 수행하면 더 이상 작동하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.