Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Восстановление базы данных


Loginov Dmitry ©   (2006-09-11 12:31:00) 

В качестве СУБД на работе используется BDE. Есть туча заказчиков. У одного из них испортился файл таблички Парадокс. В самом файле присутствуют все записи, однако все программы просмотра выдают только половину записей (первые 565 записей просто игнорируются).

Вопрос нужно решить срочно (в течение часа). Просьба дать хотябы ссылочку на какую-нибудь утилиту по восстановлению баз данных Парадокс.


ЮЮ   (2006-09-12 12:10:00) [1]


> И вряд ли какой-нибудь оператор полез бы вручную удалять
> записи таблицы.

В диалоге удаления записи по умолчанию не стоит ли, случайно, подтверждение удаления?
И тогда достаточно "залипнуть" Вводу при фокусе на кнопке удаления и ... понеслось :(


Loginov Dmitry   (2006-09-12 09:14:00) [2]

> Теперь готовься к жалобам и от них.


Каждый день отбиваемся :-)


Anatoly Podgoretsky   (2006-09-11 20:40:00) [3]

Есть туча заказчиков.
Теперь готовься к жалобам и от них.


Loginov Dmitry   (2006-09-11 15:39:00) [4]

> таблица похоже рабочая, и индексы тоже, просто записи удалены,
> но еще не упакованы


Похоже на то. Что самое интересное, записи никто удалить в принципе не мог (тем более наша система). И вряд ли какой-нибудь оператор полез бы вручную удалять записи таблицы. Аномалия, блин (или глюк BDE)!

В общем, час истек. Клиенту мы уже сообщили, что данные потеряны безвозвратно (чтоб не мучался в напрасных ожиданиях :-) Всем спасибо!


sniknik   (2006-09-11 15:05:00) [5]

> Loginov Dmitry ©   (11.09.06 13:33) [9]
таблица похоже рабочая, и индексы тоже, просто записи удалены, но еще не упакованы (т.е. место пока занимают)... в "живых" осталось 56.

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


Виталий Панасенко   (2006-09-11 14:06:00) [6]

В своем первом посте указал - индексы проверь. А если уже взял TUTIL32, то кидай не только *.DB, но и все индексные (*.PX, *.X??, *.Y??, *.VAL)


Loginov Dmitry   (2006-09-11 13:33:00) [7]

Похоже, сегодня восстановить не получится (рабочий день заканчивается :)


> открой другими средствами...


Открывал такими средствами, как
- Database Desktop
- SQL Navigator (в нем используются стандартные компоненты Delphi)


> данные тыйны е представляют?


Тайны никакой не представляют, там хранятся записи начала и окончания смен работы операторов АЗС. На основе этих данные строятся различные отчеты.


> зашли таблицу вместе с ключом/индексами. посмотрю (и псчитаю)
> на другой машине.


Высылаю!!!


sniknik   (2006-09-11 13:21:00) [8]

> Она мне показывает, что табличка не содержит никаких ошибок.
а в индексах? пересоздай.


sniknik   (2006-09-11 13:18:00) [9]

> Хотя в самой таблице 611 записей, а отображается всего 55 записей (сейчас подсчитал).
открой другими средствами...

данные тыйны е представляют? зашли таблицу вместе с ключом/индексами. посмотрю (и псчитаю) на другой машине.


Loginov Dmitry   (2006-09-11 13:11:00) [10]

> С каких пор BDE стала СУБД?


Давайте, сначала помогите решить проблему, а потом цепляйтесь к словам сколько влезет.


Плохиш   (2006-09-11 13:05:00) [11]

С каких пор BDE стала СУБД?


Loginov Dmitry   (2006-09-11 13:00:00) [12]

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


Я достаточно корректно указал, что поврежден файл таблички Парадокс.


> И еще. Обязательное сохранение всей БД в архивах после завершения
> работы с нею в колнце рабочего дня. ЕЖЕДНЕВНО ! А иногда
> и в перерыве на обед.


Если бы  БД разрабатывал я, то, вероятно, так бы и сделал. НО! БД разрабатывалася не мною. И вообще зря ее делали на DBE. Уж больно уж ненадежна эта СУБД.

...

Скачал утилитку tutil32.exe. Скопировал к ней в папочку файл поврежденной таблички (*.db only). Она мне показывает, что табличка не содержит никаких ошибок.
Хотя в самой таблице 611 записей, а отображается всего 55 записей (сейчас подсчитал).


Виталий Панасенко   (2006-09-11 12:46:00) [13]

Индекс перестраивал ? DBDOCTOR/TUTIL32.DLL поищи


MsGuns   (2006-09-11 12:44:00) [14]

1. В парадоксу пронятие "база" достаточно абстрактно (имеется в виду каталог с файлами, куда при желании можно простым копированием "положить" любые файлы из другой "базы". Поэтому резоннее говорить о таблице (таблицах).
2. Таблица может "упасть" по-разному. В большинстве случаев это результат "слета" индексов при ненормальном завершении работы одного из "клиентов". Лечится простым удалением файла с расширением *.lck
Однако этого не всегда бывает достаточно июо поврежденной может оказаться сама таблица (точнее, некоторый ее участок). В это случае надо сделать так:
сначала простым Select * from Table выбрать все доступные записи, сохранив полученный результат (Answer) в такую-либо невременную таблицу.
Потом удалить из поврежденной таблицы все ключи и ограничения (файлы с соотв.расширением) и очистить ее. Затем опять внести в нее (ручками) всю "ключевую" информацию и просты инсертом вставить записи из сохраненной таблицы.

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

И еще. Обязательное сохранение всей БД в архивах после завершения работы с нею в колнце рабочего дня. ЕЖЕДНЕВНО ! А иногда и в перерыве на обед.


Правильный Вася   (2006-09-11 12:43:00) [15]

на борланде была
поищи там по ключевым словам


Наверх

Титульная страница Поиск, карта сайта Написать письмо