URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 87812
[ Назад ]

Исходное сообщение
"svn: перенос репозитария"

Отправлено ALex_hha , 11-Янв-10 01:33 
Есть репозитарий, раздается через apache + mod_dav + subversion. За год размер составил 250GB. Хотел с нового года начать новый. Для этого создал пустой репозитарий и попытался залить инкрементальные бекапы с 23 декабря по 1 января.

При попытке залить получаю

# svnadmin load /svn/new_repo_name < ./148341-148352.dump
<<< Started new transaction, based on original revision 148341
svnadmin: File not found: transaction '1-5', path 'Projects/Project1/markup/cranham-1.1.html'
     * editing path : Projects/Project1/markup/cranham-1.1.html ...

В итоге ни один из дампов не залился. Как быть в такой ситуации? Создавать всю иерархию папок в ручную просто не реально. Помсмотрел документацию на svnadmin ничего полезного не нашел. Может кто сталкивался


Содержание

Сообщения в этом обсуждении
"svn: перенос репозитария"
Отправлено Michael , 11-Янв-10 10:06 
>Есть репозитарий, раздается через apache + mod_dav + subversion. За год размер
>составил 250GB. Хотел с нового года начать новый. Для этого создал

попробуйте сделать полный дамп и залить его одним куском. вдруг поможет.



"svn: перенос репозитария"
Отправлено ALex_hha , 11-Янв-10 11:31 
>>Есть репозитарий, раздается через apache + mod_dav + subversion. За год размер
>>составил 250GB. Хотел с нового года начать новый. Для этого создал
>
>попробуйте сделать полный дамп и залить его одним куском. вдруг поможет.

Какой тогда в этом смысл? Заливать дамп в 250 Гб он будет ОЧЕНЬ долго. Ведь основная задача уменьшить размер дампа, чтобы в случае сбоя быстро и легко можно было восстановить репозитарий


"svn: перенос репозитария"
Отправлено ze6ra , 11-Янв-10 10:31 
>[оверквотинг удален]
>При попытке залить получаю
>
># svnadmin load /svn/new_repo_name < ./148341-148352.dump
><<< Started new transaction, based on original revision 148341
>svnadmin: File not found: transaction '1-5', path 'Projects/Project1/markup/cranham-1.1.html'
>     * editing path : Projects/Project1/markup/cranham-1.1.html ...
>
>В итоге ни один из дампов не залился. Как быть в такой
>ситуации? Создавать всю иерархию папок в ручную просто не реально. Помсмотрел
>документацию на svnadmin ничего полезного не нашел. Может кто сталкивался

Инкрементные бэкап надо заливать последовательно начиная с первого не инкрементного.


"svn: перенос репозитария"
Отправлено ALex_hha , 11-Янв-10 11:41 
>[оверквотинг удален]
>># svnadmin load /svn/new_repo_name < ./148341-148352.dump
>><<< Started new transaction, based on original revision 148341
>>svnadmin: File not found: transaction '1-5', path 'Projects/Project1/markup/cranham-1.1.html'
>>     * editing path : Projects/Project1/markup/cranham-1.1.html ...
>>
>>В итоге ни один из дампов не залился. Как быть в такой
>>ситуации? Создавать всю иерархию папок в ручную просто не реально. Помсмотрел
>>документацию на svnadmin ничего полезного не нашел. Может кто сталкивался
>
>Инкрементные бэкап надо заливать последовательно начиная с первого не инкрементного.

А нельзя ли сделать как бы комит данных из дамп файла?

Я так понял основная проблема в том, что отсутствуют соответствующие папки в репозитарии


"svn: перенос репозитария"
Отправлено ze6ra , 11-Янв-10 12:08 
>[оверквотинг удален]
>>>В итоге ни один из дампов не залился. Как быть в такой
>>>ситуации? Создавать всю иерархию папок в ручную просто не реально. Помсмотрел
>>>документацию на svnadmin ничего полезного не нашел. Может кто сталкивался
>>
>>Инкрементные бэкап надо заливать последовательно начиная с первого не инкрементного.
>
>А нельзя ли сделать как бы комит данных из дамп файла?
>
>Я так понял основная проблема в том, что отсутствуют соответствующие папки в
>репозитарии

Правильно, в том инкриментном бекапе что вы заливали их нету, они есть наверняка в предыдущих, собственно поэтому их и нужно последовательно заливать иначе результат непредсказуем.
Если хотите место экономить, попробуйте сделать два не инкрементных дампа один большой  по ревизиям например до 1 января, второй все остальные по настоящее время. И восстановить только  второй. Первый оставить для "на всякий случай".


"svn: перенос репозитария"
Отправлено ALex_hha , 11-Янв-10 15:14 
>Правильно, в том инкриментном бекапе что вы заливали их нету, они есть
>наверняка в предыдущих, собственно поэтому их и нужно последовательно заливать иначе
>результат непредсказуем.
>Если хотите место экономить, попробуйте сделать два не инкрементных дампа один большой
> по ревизиям например до 1 января, второй все остальные по
>настоящее время. И восстановить только  второй. Первый оставить для "на
>всякий случай".

А разве можно делать дамп по ревизиям не инкрементный?


"svn: перенос репозитария"
Отправлено Arpo , 11-Янв-10 15:43 
>>Правильно, в том инкриментном бекапе что вы заливали их нету, они есть
>>наверняка в предыдущих, собственно поэтому их и нужно последовательно заливать иначе
>>результат непредсказуем.
>>Если хотите место экономить, попробуйте сделать два не инкрементных дампа один большой
>> по ревизиям например до 1 января, второй все остальные по
>>настоящее время. И восстановить только  второй. Первый оставить для "на
>>всякий случай".
>
>А разве можно делать дамп по ревизиям не инкрементный?

Опция -r у svnadmin. Что то типа svnadmin dump -r $OLDREV:$NEWREV. Точно не помню...


"svn: перенос репозитария"
Отправлено ze6ra , 11-Янв-10 16:19 
>>Правильно, в том инкриментном бекапе что вы заливали их нету, они есть
>>наверняка в предыдущих, собственно поэтому их и нужно последовательно заливать иначе
>>результат непредсказуем.
>>Если хотите место экономить, попробуйте сделать два не инкрементных дампа один большой
>> по ревизиям например до 1 января, второй все остальные по
>>настоящее время. И восстановить только  второй. Первый оставить для "на
>>всякий случай".
>
>А разве можно делать дамп по ревизиям не инкрементный?

А вчём проблема. Наприме есть svn c 3333 ревизиями нам нужно например только последниие 333 и первые 3000 на всякий случай.
делаем
1. svnadmin dump $OLDREP -r 0:2999 > $FILE1.dump
2. svnadmin dump $OLDREP -r 3000:3333 > $FILE2.dump
3. svnadmin load $NEWREP < $FILE2.dump

P.S. В новом репозитарии нумерация будет пересчитана и начнётся снова с 1. И потом подлить из дампа $FILE1.dump в новый репозитарий будет уже проблемма.


"svn: перенос репозитария"
Отправлено ALex_hha , 11-Янв-10 18:04 
>А вчём проблема. Наприме есть svn c 3333 ревизиями нам нужно например
>только последниие 333 и первые 3000 на всякий случай.
>делаем
>1. svnadmin dump $OLDREP -r 0:2999 > $FILE1.dump
>2. svnadmin dump $OLDREP -r 3000:3333 > $FILE2.dump
>3. svnadmin load $NEWREP < $FILE2.dump
>
>P.S. В новом репозитарии нумерация будет пересчитана и начнётся снова с 1.
>И потом подлить из дампа $FILE1.dump в новый репозитарий будет уже
>проблемма.

точно, убрал --incremental и все заработало.


"svn: перенос репозитария"
Отправлено ALex_hha , 18-Янв-10 16:44 
>точно, убрал --incremental и все заработало.

поспешил с выводами.

# svnadmin dump $OLDREP -r 100:101 > test.dump

при этом test.dump весит около 10GB. А дамп 10000 ревизий (~ за две недели) вообще занимает 400GB, хотя весь репозитарий за 2009 год всего 250 Гб.

Я что то делаю не так?


"svn: перенос репозитария"
Отправлено ze6ra , 18-Янв-10 17:51 
>[оверквотинг удален]
>
>поспешил с выводами.
>
># svnadmin dump $OLDREP -r 100:101 > test.dump
>
>при этом test.dump весит около 10GB. А дамп 10000 ревизий (~ за
>две недели) вообще занимает 400GB, хотя весь репозитарий за 2009 год
>всего 250 Гб.
>
>Я что то делаю не так?

Попробуйте добавить --deltas.

svnadmin dump $OLDREP --deltas -r 100:101 > test.dump