기존 클래스 및 특성 사용 안 림
스키마 추가는 영구적입니다. attributeSchema 및 classSchema 개체를 삭제할 수 없습니다. 분산 시스템에서는 지정된 클래스 또는 특성의 인스턴스가 없도록 보장하기가 어렵습니다. 클래스 또는 특성의 정의를 제거하면 해당 클래스 또는 특성의 기존 인스턴스가 손상됩니다.
기존 클래스 또는 특성을 "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, 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"는 상수)