다음을 통해 공유


기존 클래스 및 특성 사용 안 림

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

기존 클래스 또는 특성을 "defunct"로 표시하여 사용하지 않도록 설정할 수 있습니다. 이렇게 표시된 클래스 또는 특성의 기존 인스턴스에는 영향을 주지 않지만 새 인스턴스를 만들지 못합니다.

스키마 클래스 및 특성을 사용하지 않도록 설정하는 경우 다음 제한 사항이 적용됩니다.

  • 범주 1 클래스 또는 특성을 사용하지 않도록 설정할 수 없습니다.
  • 사용하지 않도록 설정되지 않은 클래스의 멤버인 특성을 사용하지 않도록 설정할 수 없습니다. 이는 사용하지 않도록 설정되지 않은 클래스에 특성이 필요할 수 있고 특성을 사용하지 않도록 설정하면 클래스의 새 인스턴스가 생성되지 않기 때문입니다.

특성을 사용하지 않도록 설정하려면 해당 attributeSchema 개체의 isDefunct 특성을 TRUE설정합니다. 특성을 사용하지 않도록 설정하면 특성의 새 인스턴스를 만들 수 없습니다. 특성을 다시 사용하도록 설정하려면 isDefunct 특성을 FALSE설정합니다.

클래스를 비활성화하려면 해당 classSchema 개체의 isDefunct 특성을 TRUE로 설정합니다. 클래스를 사용하지 않도록 설정하면 클래스의 새 인스턴스를 만들 수 없습니다. 클래스를 다시 사용하도록 설정하려면 isDefunct 특성을 FALSE설정합니다.

스키마 개체를 소멸로 설정하는 것은 프로덕션 환경에서 유용할 수 있습니다. 스키마 확장의 테스트 버전이 더 이상 필요하지 않은 경우 해당 버전을 소멸된 것으로 표시합니다. isDefunct 특성을 제거하거나 특성 값을 FALSE설정하여 복원할 수 있습니다. 또한 작업을 쉽게 되돌릴 수 있으므로 스키마 개체를 소멸되도록 설정하여 스키마 개체를 의도하지 않게 제거하지 않도록 보호합니다.

스키마 개체를 비활성화할 때 Active Directory 서버는 특성 또는 클래스의 기존 인스턴스를 정리하지 않습니다. isDefunct 속성을 제거하면 모든 인스턴스가 다시 유효한 일반 개체가 됩니다.

다음 목록에는 attributeSchema 또는 classSchema 개체가 무효화될 때 발생하는 다른 결과가 포함됩니다.

  • 인스턴스를 추가하거나 수정하지 못합니다.
  • 오류 코드는 소멸 클래스가 존재하지 않는 것처럼 동작합니다.
  • 검색 및 삭제는 스키마 개체가 없어진 것처럼 동작합니다.
  • 개체에서 전체 특성만 삭제할 수 있습니다.

다음 목록에는 소멸된 스키마 확장의 영향을 줄이기 위한 프로덕션 환경의 추가 옵션이 포함되어 있습니다.

  • 사용되지 않는 클래스에서 모든 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"는 상수)