IE 2016

Как я востанавливал базу 1CD

Опубликовал vde69 в раздел Администрирование - Тестирование и исправление

Как я востанавливал файловую базу восьмерки. Попала база после того как в процессе обновлении релиза на диске кончилось место.

Даю свой путь самурая :)

То что мне сообщил клиент:

Исходный релиз платформы 8.2.13.219. Текущий релиз платформы 8.2.16.352. Обновил без проблем и реструктуризация прошла успешно. Исходный релиз конфигурации БП 2.0.32.1. Обновлял на релиз 2.0.41.3. В самый ответственный момент вдруг закончилось место на диске.

chdbfl.exe говорит:

Поврежден заголовок файла базы данных Повреждено содержимое внутреннего файлаБаза полностью разрушена восстановление невозможно.

 Tool_1CD.exe тоже не помогает...

 

 

Для начала я использовал проект http://code.google.com/p/restoration-base-1c8/ 

Я использовал конфигурацию 0.2.2. (на момент публикации версия не выложена по причине мелких доработок о которых раскажу ниже, выложеная версия 0.1.7 для реального востановления не подходит, слишком много там ошибок, она носит скорее ознакомительный характер)

Для начала переименовал файл и загрузил его, загрузка шла 2 часа (размер файла примерно 1.8 гиг, загрузка идет долго в том числе и по тому что не используется корневой обьект). В процессе загрузки меня обматерило

1. с десяток сообщений типа "Ошибка потока описания таблицы "_REFERENCE54", Блок 00 00 0F 6C E0 00" на самом деле это ошибка конфигурации востановления, но я быстро понял в чем дело, просто таблицы где описание занимает более одного блока загрузились только по одному, вручную догрузил (поиск по индексу и кнопка "Загрузить данные блока"), ну и после этго на указаной таблице "Загрузить структуру ветки". (Это одна из ошибок которая не дает выложить версию 0.2.2)

2. Более серьезной проблеммой стало сообщение типа "В описании таблицы корневого блока 00 00 67 97 A0 00 есть недопустимые символы".

найдя блок жму "Редактировать таблицу", получаю рис "п-1", видно, что описание таблицы цело просто после него идет "хвост" мусора, захожу в блок и забиваю нулями этот мусор. (вторая требуемая доработка - нужна процедура забития нулями облости, я просто замучился по одному фигачить).

После того как ошибка пропала, жму "Загрузить структуру ветки".

 

К сожалению одна таблица не подлежала востановлению, но поразмыслив я понял что это таблица из новой конфигурации и она просто пустая, по этому я решил на нее забить.

На этом этапе вроде все выглядет красиво, но все равно не работает.

 

Тогда лезу в корневой обьект "редактировать таблицу" и вижу что длинна явно кривая (на картинке уже исправленый вариант), ну лезу в описание корневого и исправляю длинну.

 

после этого Tool_1CD.exe выдает только 1 ошибку, а chdbfl.exe две и говорит, что может помоч.

 

Запускаю chdbfl.exe на исправление и база завелась в режиме предприятия, и вроде все данные целы.

 

идем далее (последний рисунок)

Учитывая что часть блоков неверно распределено (на картинке серые) и корневой обьект содержит ссылки на FREE блоки, запускать на базе какие-либо махинации в конфигурации не стоит, стоит через выгрузку XML все перенести в новую чистую базу и уже с ней работать.

 

См. также

Лучшие комментарии

11. vde69 07.11.2012 08:35
(10)(8)(7)

странно, думал что и так понятно... В данном случае я выступаю в роли мастерской куда принесли сломаный телевизор, а Вы кричите что телевизор нельзя поливать водой...

Ко мне обратились с УЖЕ СЛОМАНОЙ базой. База и бекапы не моя зона ответствености (и вообще я не имею отношения к этой базе и к той организации)!

Бекапы делать надо, но ведь пользователям этого не обьяснишь...
Ответили: (12) (13) (16)
+ 2 [ davdykin; wolfsoft; ]
# Ответить
5. vde69 31.10.2012 10:14
(4) tango,
именно эта база, просто тот топ я не читал :)
+ 1 [ tango; ]
# Ответить
9. vde69 01.11.2012 11:30
выложил условно рабочую версию конфигурации http://code.google.com/p/restoration-base-1c8/downloads/detail?name=1Cv8_0.2.3.zip&can=2&q=#makechanges
+ 1 [ VNSh; ]
# Ответить

Комментарии

1. makas 31.10.2012 09:38
Даю свой путь самурая :)


То что мне сообщил клиент:

Исходный релиз платформы 8.2.13.219. Текущий релиз платформы 8.2.16.352. Обновил без проблем и реструктуризация прошла успешно. Исходный релиз конфигурации БП 2.0.32.1. Обновлял на релиз 2.0.41.3. В самый ответственный момент вдруг закончилось место на диске.



А почистить компьютер от мусора и заново провести апгрейд из дубликата ни самур-аЙ ни кли-ент не догадались? :)
Ответили: (2)
# Ответить
2. vde69 31.10.2012 09:40
(1) makas,

само сабой бекапов небыло :) да и база была на флешке :)
# Ответить
3. Serj1C 31.10.2012 09:41
в шоке.
# Ответить
4. tango 31.10.2012 10:10
(0) автор, как ваша публикация соотносится с
http://forum.infostart.ru/forum26/topic73004/message780847/#message780847
?
или мы имеем дело с множественностью аккаунтов?
Ответили: (5)
# Ответить
5. vde69 31.10.2012 10:14
(4) tango,
именно эта база, просто тот топ я не читал :)
+ 1 [ tango; ]
# Ответить
6. tango 31.10.2012 10:29
забавненько
# Ответить
7. script 31.10.2012 14:39
Копиовать, копиовать и еще ааз копиовать, таваищи.

Глядиш на аватар автора и видишь, что даже аватару автора стыдно за автора.
Покраснел как!
Ответили: (11)
− 2 [ STivO; awa; ]
# Ответить
8. iov 01.11.2012 02:50
(0) 1 плохой программист создает 2-3 рабочих места. 1 плохой юзверь не делающий бекапов кормит 2-3 программиста. итог - меньше безработицы больше прибыль программистам. В ж*опу бекапы даешь прямую запись обновлений во время работы пользователей!!!
Ответили: (11)
# Ответить
9. vde69 01.11.2012 11:30
выложил условно рабочую версию конфигурации http://code.google.com/p/restoration-base-1c8/downloads/detail?name=1Cv8_0.2.3.zip&can=2&q=#makechanges
+ 1 [ VNSh; ]
# Ответить
10. ReLock 07.11.2012 08:24
Конечно, полезное чтиво. Но! Лучше сделать бэкап и не парить себе мозК! :)
Ответили: (11)
− 1 [ awa; ]
# Ответить
11. vde69 07.11.2012 08:35
(10)(8)(7)

странно, думал что и так понятно... В данном случае я выступаю в роли мастерской куда принесли сломаный телевизор, а Вы кричите что телевизор нельзя поливать водой...

Ко мне обратились с УЖЕ СЛОМАНОЙ базой. База и бекапы не моя зона ответствености (и вообще я не имею отношения к этой базе и к той организации)!

Бекапы делать надо, но ведь пользователям этого не обьяснишь...
Ответили: (12) (13) (16)
+ 2 [ davdykin; wolfsoft; ]
# Ответить
12. ReLock 07.11.2012 09:34
(11) Всё и так понятно!
# Ответить
13. iov 07.11.2012 13:14
(11)Шелдон - сарказм.
# Ответить
14. ATverdikov 07.11.2012 14:13
бэкап нужно делать перед обновлением
− 1 [ awa; ]
# Ответить
15. comol 07.11.2012 16:40
По мне так респект автору. Откопать и докопаться... Обычно в случае с файловой базой только руками разводят...
# Ответить
16. Alex_IT 09.11.2012 02:38
(11) vde69, просто по тексту нельзя понять, что база была передана в уже убитом виде, а как раз наоборот. Причем есть детальное описание действий перед "падением" базы...
# Ответить
17. MRAK 27.02.2013 10:20
Спасибо за проект!
# Ответить
18. harutyunb 29.08.2013 22:41
Буду пробовать, при обнавлении вышла ошибки "Ошибка СУБД: Файл базы данных поврежден", окозалось что ж/д битый,
после chkdsk /r теперь имею "Ошибка при выполнении операции с информационной базой Файл базы данных поврежден 1Cv8.1CD".
chdbfl.exe убивает половину конфигурациию почти всю информацию на эту половину. после чего старая версия Tool_1CD начал видеть информацию с базы, но без загаловков таблиц,
теперь хочу спросить как можно в эту базу загрузить нужную конфигурацию.
Поможет ли Альфа весия туда загрузить?
конфигурация проекта мне не помогла вообще не загрузил ни базу ви базу после Tools_1C
Подскажите!
Ответили: (19)

Прикрепленные файлы:

Avatar.gif
# Ответить
19. tango 01.11.2013 11:00
(18) harutyunb, чем окончилась ваша проблема?
Ответили: (26)
# Ответить
20. tango 01.11.2013 11:51
(0) загружаю через вашу конфу (компоненту) базу чуть более 2Г
устал ждать как долго...
вряд ли чтение com-сервером быстрее
наверное, стоит не грузить все сразу, а подгружать нужные кусочки по мере надобности
Ответили: (21)

Прикрепленные файлы:

0001.png
# Ответить
21. vde69 01.11.2013 13:51
(20) он и грузит кусочками

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

2 гига - примерно 2-3 часа должно идти
Ответили: (22)
# Ответить
22. tango 01.11.2013 13:54
(21) vde69, уже больше двух :(

Прикрепленные файлы:

0001.png
# Ответить
23. tango 01.11.2013 13:57
а щас прям так и зашевелился - эффект присутствия, наверно

Прикрепленные файлы:

0001.png
# Ответить
24. tango 01.11.2013 14:44
конец уж близок

Прикрепленные файлы:

0001.png
# Ответить
25. tango 01.11.2013 15:43
упс

Прикрепленные файлы:

0001.png
# Ответить
26. harutyunb 02.11.2013 09:49
(19) tango, Все закончилось, печально! были утеряны данные!, Но это послужило хорошим уроком для дальнейшего восстановления. нельзя делать chkdsk, он полностью сектор (512бит) заменяет 0-ями, после него невозможно восстановить, я делаю по другому, через прог-у nscopy копию, которая только нечитаемый биты заменяет 0-я, после если конфигурация цела, можно войти и делать тестирование где можно увидеть поврежденную инф-у, но можно восстановить, потому что любой документ при проведении делает записи в регистре накоплении и в других регистрах и легко найти первичную инф-ю, или в крайном случаи зесли побита конфигурация, через 1с-TOOLS делаю удаление конфигурации с базы, потом его закрываю, и загружаю снового, туда из резервной копии делаю сохранение конфигурации, после опять открываю нашу базу и импортирую его туда и уже можно запустить через конфигутор. можно так же востановить другие блоки базы из резервной копии!!!
Этот способ мне выручает, иногда прибегаю к hex-редактору(бывает сдвиг по базе).
# Ответить
27. rhtr 31.01.2014 22:43
Автор, а будет возможность востонавливать удалённые объекты?
# Ответить
28. angel4evil 07.04.2014 08:37
Очень благодарна автору за выложенный материал!!!
# Ответить
29. JSverhnovaya 08.04.2014 14:56
Подскажите пожалуйста, как вы воспользовались программой из проекта (https://code.google.com/p/restoration-base-1c8/) для открытия файла БД? Просит файл с необычным расширением *.2CD..
+ 1 [ pav82; ]
# Ответить
30. JSverhnovaya 08.04.2014 17:51
Не сразу разобралась, решается изменением расширения файла.
# Ответить
31. the1 26.09.2015 22:47
У меня при попытке зарегистрировать ВК почему-то вылетает с ошибкой
Платформа: 1С:Предприятие 8.3 (8.3.6.2237)
Конфигурация: открытый проект под лицензией "GPL v2"     (0.2.3)
vde69@mail.ru
(http://code.google.com/p/restoration-base-1c8/)
Режим: Файловый (без сжатия)
Приложение: Толстый клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Версия 8.2

Ошибки:
--------------------------------------------------------------------------------
26.09.2015 22:38:50
Некорректная работа компоненты с памятью
...Показать Скрыть
Ответили: (32) (34)
# Ответить
32. the1 26.09.2015 22:50
(31) А вот на 8.2 пошла, родимая)
Ответили: (34)
# Ответить
33. the1 26.09.2015 23:48
А что делать с сообщениями вида
Блок 00 00 00 00 10 00 содержит ссылку за пределами файла - 00 00 1C C9 A0 00
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла - 00 00 29 D3 70 00
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла - 00 00 29 D3 60 00
# Ответить
34. vde69 27.09.2015 11:24
(31) the1, возможно манифест нужно отредактировать...
(32)

Блок 00 00 00 01 70 00 содержит ссылку за пределами файла - 00 00 29 D3 70 00

в твоем файле по адресу 00 00 00 01 70 00 располагается таблица ссылок на блоки файла, у тебя там лежит невалидное значение, тут варианты
1. файл неожиданно стал меньше и теперь не содержит нужных данных (такое может быть например при восстановлении файла с диска), тут вряд ли чего сделаешь
2. в таблице ссылок попался мусор (тогда это нужно забить 00), обычно такое бывает в конце таблицы
3. в таблице находится ссылка уже перемещённого блока, в этом случае хорошо-бы его найти и ссылку поставить корректную, тут нужно смотреть среди блоков которые не лежат в корне дерева и не имеют на себя ссылок
# Ответить
35. Serge_ASB 29.08.2016 13:20
У меня при загрузке файла выскочили только ошибки вида
Блок 00 00 00 01 70 00 содержит ссылку за пределами файла - 00 00 29 D3 70 00.
Как определить, где находится эта ссылка за пределами файла? Искать в теле блока последовательность 00 00 29 D3 70 00?
Как понять, что там мусор или не мусор?
Базу некогда грохнули по каким-то причинам, а затем восстанавливали специально обученными программами.
Ответили: (36)
# Ответить
36. vde69 29.08.2016 20:27
(35)
00 00 00 01 70 00 - это бинарный адрес (hex смещение), там лежит указатель 00 00 29 D3 70 00, значение этого указателя больше размера файла.

есть 2 возможные причины

1. этот указатель мусорный и его следует забить нулями
2. указатель был правильный но файл кто-то обрезал и часть файла просто пропала, тут скорее всего базу восстановить не удастся...
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл