Восстанавливаются удаленные документы

  • Автор темы Автор темы nayke
  • Дата начала Дата начала
Добавил более позднее значение "Волшебной кнопкой" (есть в КБ) - не понял а можно поподробнее..
link removed

Добавлено:
меняем База А ReplicID=2 База Б ReplicID=1 потом копируем документы в Б
То есть какое-то время на сервере присутствуют две базы с одинаковыми ReplicID? По-моему, это может вызывать проблемы...
 
для Базы А ReplicID=1
создали реплику для Базы А ReplicID=1 для Базы C ReplicID=1
База Б создается копированием из А, а не репликой(метод CreateCopy)
создали базу Б сразу после копирования для Базы Б ReplicID=2
меняем База А ReplicID=2 База Б ReplicID=1 потом копируем документы в Б
в результате
База А ReplicID=2
База Б ReplicID=1
Базы C ReplicID=1
прям таки бешенные пятнашки :lovecodeby:
не будет так работать как вы описали - НИКОГДА
прежде всего у существующей рабочей базы нельзя менять репликаИД - вообще никогда, так как она уже откеширована и её история репликации достаётся другим базам и сервер будет видеть её под старым реплика ИД или всю сознательную жизнь, или то ребута - тут как повезет, был ли компакт, фиксап, очистка истории изменения.

Так что ломайте схему!
Вариант База Б создается копированием из А, а не репликой(метод CreateCopy) - правильный, вот от него и пляшите
 
База А занимает достаточно большой объем.. после удаления физический размер не меняется, а compact займет несколько суток.. поэтому было решено как бы подменить базу на новую... скопировать необходимые.

Оч интересная и актуальная при работе с базами большого объема тема:lovecodeby:

Проблему с уменьшением объема базы можно достаточно просто решить через кластер. т.е. удаляются ненужные док-ты и поднимается второй сервер кластера - на который и создается реплика - она конечно же будет меньшего объема чем родитель.
Первый сервер гасится и проводится обслуживание базы - при правильно настроенной сетевой топологии все клиенты перескочат на второй. Далее - очевидно.

есть еще одна идея - почерпнутая из этого топика: https://codeby.net/threads/replikacija-idei-mysli-praktika.25204/
Оказывается - для меня это было открытием;), что существование 2х баз с одинаковым ReplicaID на одном сервере - вполне возможно.

В таком случае возможен такой сценарий:
На любом клиенте создаем реплику базы с сервера с уже удаленными ненужными документами.
Закрываем доступ к ПАПКЕ с большой базой через DirACL этому клиенту. и с клиента создаем реплику В ДРУГОЙ папке на этом же сервере. DirACL этой папки настроен так, что бы доступ имел только этот клиент.
И в один прекрасный момент большую базу просто прибиваем.

Это мое ИМХО и оч. интересно узнать результат:)
 
Вероятнее всего проблема именно с полем $Revisions, однако как его обойти пока не придумал.. уменьшить его на лок. реплике как я понимаю нельзя, а у стаба изменить его уже не получится.. изменение до удаления не помогает..

был ли компакт, фиксап, очистка истории изменения.
нет. Очищался журнал репликации, перезапускался сервер.. база А физически удалялась с сервера.

rinsk

идеи интересные, но они скорее для администратора.. А решение привносится не на конкретный объект, поэтому и стремимся чтобы по нажатию одной кнопки срабатывало.. с небольшими не тр*цензура*ющими глубоких знаний действиями от админа.. перезапустить сервер.. поставить галочку.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab