При зависших перемешениях в дереве NDS блокируется куча операций, в том числе удаление зависших объектов, реплицирование NDS и т.д.
При этом при выполнении
DSREPAIR -OT -A в
Advanced Options Menu -> Check External References видны ошибки типа INHIBIT_MOVE. Стандартным DSREPAIR средствами не лечится.
Как побороть:
1. Отключить синхронизацию DS на всех серверах (мастере и репликах):
SET DSTRACE=!D (отключение sync)
SET DSTRACE=ON (включение консоли dstrace)
2. Включить отслеживание зависших объектов на всех серверах :
SET DSTRACE=+obit
3. Ждать, пока в консоли DSTRACE на всех серверах появятся битые объекты и надпись о завершении их трассировки. Если на репликах это занимает около минуты, то на мастере прошло около часа.
4. Исправить зависшие объекты сначала на репликах, а потом на мастере:
DSREPAIR -OT -A
Advanced Options Menu -> Repair Local DS Database -> F10
Ждать, пока не завершит мастер.
4a. Попытаться удалить зависшие объекты в NWADMIN, при неудаче повторить пп. 4
4b. Если всё равно не получается, выполнять пп. 5
5. Включить репликацию на мастере:
SET DSTRACE=!E
Ждать 5 минут.
6. Повторить пп. 4.
6a. Попытаться удалить зависшие объекты в NWADMIN, при неудаче повесится.
7. Включить репликацию на репликах:
SET DSTRACE=!E
8. Выключить консоль:
SET DSTRACE=OFF