7.2. Directory Server가 복제 환경의 스키마 업데이트를 관리하는 방법
cn=schema
트리에서 디렉터리 스키마를 업데이트하면 Directory Server는 변경 사항을 /etc/dirsrv/slapd- <instance_name> /schema/99user.ldif
파일에 저장합니다.
Directory Server는 스키마 변경 사항을 다른 복제본에 직접 복제하지 않습니다. 스키마 복제는 복제된 트리에서 디렉터리 콘텐츠가 업데이트되면 시작됩니다. 예를 들어 스키마를 수정한 후 사용자를 업데이트하는 경우 공급자는 nsSchemaCSN
속성에 저장된 CSN을 소비자의 속성과 비교합니다. 소비자의 nsSchemaCSN
속성 값이 공급자의 nsSchemaCSN 속성 값보다 작으면 Directory Server는 스키마를 소비자에게 복제합니다. 복제에 성공하려면 공급자의 모든 오브젝트 클래스 및 특성 유형이 소비자 정의의 상위 세트여야 합니다.
예 7.1. 스키마 하위 집합 및 슈퍼셋
-
server1
에서예제
오브젝트 클래스는a1
,a2
및a3
특성을 허용합니다. -
server2
에서예제
오브젝트 클래스는a1
및a3
속성을 허용합니다.
이전 예에서 server1
의 예제
오브젝트 클래스의 스키마 정의는 server2
의 오브젝트 클래스의 상위 세트입니다. 검증 단계에서 Directory Server가 스키마를 복제하거나 수락할 때 서버는 슈퍼 세트 정의를 검색합니다. 예를 들어, 소비자가 로컬 스키마의 오브젝트 클래스가 공급자 스키마의 오브젝트 클래스보다 적은 속성을 허용하는 것을 감지하면 Directory Server는 로컬 스키마를 업데이트합니다.
스키마 정의가 성공적으로 복제되면 nsSchemaCSN
특성이 서버 및 오브젝트 클래스 및 속성 유형과 같은 스키마 정의에서 더 이상 복제 세션 시작 시 비교되지 않습니다.
다음 시나리오에서는 Directory Server가 스키마를 복제하지 않습니다.
한 호스트의 스키마는 다른 호스트의 스키마의 하위 집합입니다.
예를 들어
server2
의예제
오브젝트 클래스의 스키마 정의는server1
의 오브젝트 클래스의 하위 집합입니다. 하위 집합은 속성에 대해 발생할 수도 있습니다(단일 값 속성은 다중 값 속성의 하위 집합임) 및 특성 구문입니다.- 공급업체 스키마 및 소비자 스키마의 정의를 병합해야 하는 경우
-
Directory Server는 병합 스키마를 지원하지 않습니다. 예를 들어 한 서버의 오브젝트 클래스가
a1
,a2
및a3
특성과a1
, a3 ,a3
,a4
를 허용하는 경우 스키마는 하위 집합이 아니며 병합할 수 없습니다. /etc/dirsrv/slapd- <instance_name> /schema/99user.ldif
이외의 스키마 파일을 사용합니다.Directory Server를 사용하면
/etc/dirsrv/slapd-instance_name/schema/
디렉터리에 스키마 파일을 추가할 수 있습니다. 그러나/etc/dirsrv/slapd-instance_name/schema/99user.ldif
파일의 CSN만 업데이트됩니다. 이러한 이유로 다른 스키마 파일은 로컬에서만 사용되며 복제 파트너로 자동 전송되지 않습니다.중요Directory Server에서 스키마를 자동으로 복제하고 중복 스키마 정의를 방지하기 위해 사용자 지정 스키마를
/etc/dirsrv/slapd- <instance_name> /schema/99user.ldif
파일에 저장합니다.