Удалил столбец. Можно ли восстановить?

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
Timo
Сообщения: 3
Зарегистрирован: 07 фев 2007, 23:04

Удалил столбец. Можно ли восстановить?

Сообщение Timo » 08 фев 2007, 09:35

Случайно удалил столбец типа varchar(20) в одной из таблиц. Можно ли восстановить?
пробовал такое:

Код: Выделить всё

update rdb$relations set rdb$format=1 where  rdb$relation_id=133;
delete from rdb$formats where rdb$format=2 and rdb$relation_id=133;
commit;
не помогло.
Со времени последнего бэкапа было большое добавление данных.
Сразу после удаления столбца базу остановил и скопировал в тёплое сухое место.
Можно как-то исправить ситуацию?
Последний раз редактировалось Timo 08 фев 2007, 09:38, всего редактировалось 1 раз.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 08 фев 2007, 09:37

не помогло.
нужно было еще
1. воссоздать домен в rdb$fields
2. воссоздать столбец в rdb$relation_fields

Timo
Сообщения: 3
Зарегистрирован: 07 фев 2007, 23:04

Сообщение Timo » 08 фев 2007, 10:49

kdv писал(а):
не помогло.
нужно было еще
1. воссоздать домен в rdb$fields
2. воссоздать столбец в rdb$relation_fields
Спасибо большое!!!
Помогло.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 08 фев 2007, 11:29

Помогло.
прям кулхацкер. :)

если помогло, то надо
1. срочный b/r
2. после рестора пересоздать базу из скрипта (isql -x)
или как минимум пересоздать целиком "починенную" таблицу.
3. залить данные в новую базу, например IBPump-ом.

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

Timo
Сообщения: 3
Зарегистрирован: 07 фев 2007, 23:04

Сообщение Timo » 08 фев 2007, 13:35

kdv писал(а):
Помогло.
иначе потом могут возникнуть последствия ковыряния системных таблиц.
что-то нехорошее уже наблюдается.
первое подключение к восстановленной базе не проходит (ibexpert просто виснет). а в это время на сервере образуется процесс fb_inet_server, который кушает много процессора и активно читает и пишет на диск).

Второе и последующие подключения работают. Что может быть причиной?

как вообще посмотреть, чем конкретно сейчас занимается firebird?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 08 фев 2007, 14:25

Timo писал(а):
kdv писал(а):
Помогло.
иначе потом могут возникнуть последствия ковыряния системных таблиц.
что-то нехорошее уже наблюдается.
первое подключение к восстановленной базе не проходит (ibexpert просто виснет). а в это время на сервере образуется процесс fb_inet_server, который кушает много процессора и активно читает и пишет на диск).

Второе и последующие подключения работают. Что может быть причиной?

как вообще посмотреть, чем конкретно сейчас занимается firebird?
sweep ?

Ответить