기존 클래스 및 특성을 사용하지 않도록 설정

스키마 추가는 영구적입니다. attributeSchemaclassSchema 개체는 삭제할 수 없습니다. 분산 시스템에서는 지정된 클래스 또는 특성의 인스턴스가 없음을 보장하기가 어렵습니다. 클래스 또는 특성의 정의를 제거하면 해당 클래스 또는 특성의 기존 인스턴스가 손상됩니다.

기존 클래스 또는 특성을 "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, OIDmapiID 값을 즉시 다시 사용할 수 있습니다. 클래스 또는 특성의 소멸 버전은 스키마 컨테이너에서 유지 관리되지만 MMC 스냅인에는 숨겨집니다. 이전 스키마 요소를 다시 활성화하려면 isDefunctFALSE로 설정합니다.

다음 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"는 상수임)