Страница 1 из 1

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

Добавлено: 08 фев 2007, 09:35
Timo
Случайно удалил столбец типа 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;
не помогло.
Со времени последнего бэкапа было большое добавление данных.
Сразу после удаления столбца базу остановил и скопировал в тёплое сухое место.
Можно как-то исправить ситуацию?

Добавлено: 08 фев 2007, 09:37
kdv
не помогло.
нужно было еще
1. воссоздать домен в rdb$fields
2. воссоздать столбец в rdb$relation_fields

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

Добавлено: 08 фев 2007, 11:29
kdv
Помогло.
прям кулхацкер. :)

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

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

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

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

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

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

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

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