기존 클래스 및 특성을 사용하지 않도록 설정
스키마 추가는 영구적입니다. attributeSchema 및 classSchema 개체는 삭제할 수 없습니다. 분산 시스템에서는 지정된 클래스 또는 특성의 인스턴스가 없음을 보장하기가 어렵습니다. 클래스 또는 특성의 정의를 제거하면 해당 클래스 또는 특성의 기존 인스턴스가 손상됩니다.
기존 클래스 또는 특성을 "defunct"로 표시하여 사용하지 않도록 설정할 수 있습니다. 이렇게 표시되어 있는 클래스 또는 특성의 기존 인스턴스에는 영향을 주지 않지만 새 인스턴스를 만들지 못합니다.
스키마 클래스 및 특성을 사용하지 않도록 설정하는 경우 다음 제한 사항이 적용됩니다.
- Category 1 클래스 또는 특성을 사용하지 않도록 설정할 수 없습니다.
- 사용하지 않도록 설정되지 않은 클래스의 멤버인 특성을 사용하지 않도록 설정할 수 없습니다. 이는 (사용 안 함) 클래스에 특성이 필요할 수 있으며 특성을 사용하지 않도록 설정하면 클래스의 새 인스턴스가 만들어지지 않기 때문입니다.
특성을 사용하지 않도록 설정하려면 attributeSchema 개체의 isDefunct 특성을 TRUE로 설정합니다. 특성을 사용하지 않도록 설정하면 특성의 새 인스턴스를 만들 수 없습니다. 특성을 다시 사용하도록 설정하려면 isDefunct 특성을 FALSE로 설정합니다.
클래스를 사용하지 않도록 설정하려면 classSchema 개체의 isDefunct 특성을 TRUE로 설정합니다. 클래스를 사용하지 않도록 설정하면 클래스의 새 인스턴스를 만들 수 없습니다. 클래스를 다시 사용하도록 설정하려면 isDefunct 특성을 FALSE로 설정합니다.
스키마 개체를 소멸로 설정하면 프로덕션 환경에서 유용할 수 있습니다. 스키마 확장의 테스트 버전이 더 이상 필요하지 않은 경우 해당 버전을 소멸된 것으로 표시합니다. isDefunct 특성을 제거하거나 특성 값을 FALSE로 설정하여 복원할 수 있습니다. 또한 작업을 쉽게 되돌릴 수 있으므로 스키마 개체를 소멸로 설정하여 의도하지 않은 스키마 제거로부터 보호합니다.
스키마 개체를 비활성화할 때 Active Directory 서버는 특성 또는 클래스의 기존 인스턴스를 클린 않습니다. isDefunct 속성을 제거하면 모든 인스턴스가 유효한 일반 개체가 됩니다.
다음 목록에는 attributeSchema 또는 classSchema 개체가 사용되지 않는 다른 결과가 포함됩니다.
- instance 추가 또는 수정이 실패합니다.
- 오류 코드는 소멸된 클래스가 존재하지 않는 것처럼 동작합니다.
- 검색 및 삭제는 스키마 개체가 사용되지 않는 것처럼 동작합니다.
- 개체에서 전체 특성만 삭제할 수 있습니다.
다음 목록에는 소멸된 스키마 확장의 영향을 줄이기 위한 프로덕션 환경의 추가 옵션이 포함되어 있습니다.
- 소멸 클래스에서 모든 mayHave 특성 값을 제거합니다.
- 소멸 클래스에서 모든 mustHave 특성 값의 크기를 줄입니다.
- 글로벌 카탈로그에서 소멸된 특성을 제거합니다.
- 인덱스에서 소멸된 특성을 제거합니다.
프로덕션 환경에서 원치 않는 스키마 변경을 제거하는 다른 옵션은 개발자가 테스트에 프라이빗 도메인 컨트롤러를 사용하는 것입니다. 이 경우 다음을 수행할 수 있습니다.
- Dcpromo.exe 사용하여 DC를 강등하여 Active Directory 서버를 "다시 설정"합니다. 강등이 완료되면 Dcpromo.exe 사용하여 서버를 DC로 다시 승격합니다. 그런 다음 개발자는 LDIF 스크립트를 사용하여 필요한 클래스, 특성 및 개체 인스턴스를 다시 로드할 수 있습니다.
- Ntbackup.exe 사용하여 사용 가능한 디스크 파티션에 시스템 상태 백업을 수행합니다. 안전/디렉터리 서비스 복원 모드로 다시 부팅하여 복원합니다.
Windows Server 2003 운영 체제의 경우 클래스 또는 특성을 소멸로 설정하면 새 클래스 또는 특성을 만들 때 소멸된 스키마 요소의 ldapDisplayName, schemaIdGuid, OID 및 mapiID 값을 즉시 다시 사용할 수 있습니다. 클래스 또는 특성의 소멸 버전은 스키마 컨테이너에서 유지 관리되지만 MMC 스냅인에는 숨겨집니다. 이전 스키마 요소를 다시 활성화하려면 isDefunct 을 FALSE로 설정합니다.
다음 LDIF 코드 예제에서는 isDefunct 특성을 수정하고 RDN을 변경하여 해당 특성을 바꾸기 위해 만든 새 클래스와 혼동되지 않도록 하는 방법을 보여 줍니다.
dn: CN=MyClass,CN=Schema,CN=Configuration,DC=X
changetype: modify
replace: isDefunct
isDefunct: TRUE
-
dn: CN=MyClass,CN=Schema,CN=Configuration,DC=X
changetype: modrdn
newrdn: cn=MyClassOld
deleteoldrdn: 1
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
다음 명령을 사용하여 Windows Server 2003 운영 체제에서 실행되는 컴퓨터의 포리스트에 대해 LDIF 코드 예제를 실행합니다.
ldifde /i /f rdn.ldf /c "DC=X" "dc=mydomain,dc=com"
(여기서 "DC=X"는 상수임)