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

Как восстановить только одну таблицу с бекапа?

Добавлено: 05 фев 2013, 11:37
Dedal
Сломалась таблица. Есть ошибочная страница где должны быть данные (page is of wrong type (expected 5, found 0) ).
Известно что на ошибочной странице 400 записей с primary key между 3350 по 3750.
1. Как восстановить только одну таблицу из бекапа (restore всей базы долго)?
2. Как заставить базу забыть про ошибочную страницу и записи в ней?

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 05 фев 2013, 15:40
Dimitry Sibiryakov
IBBackupSurgeon
IBSurgeon

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 05 фев 2013, 18:42
kdv
1. восстановить бэкап в другую базу, перелить нужную таблицу в исходную базу
2. никак. базу нужно починить, сделать ей бэкап/рестор, работать дальше.

что значит "рестор всей базы долго? Какой размер базы (бэкапа) и долго - это сколько?

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 05 фев 2013, 22:32
Dedal
размер базs 12 ГБ. железо не самое новое.
бекап около 30-40 минут.
рестор не делал около полтора года. но думаю 2 часа надо на restore.

Хотел починить базу без backup/restore, чтоб без перерывов в работе.
Намного быстрее перелить 400 записей, вместо полного backup/restore.

1. backup сделал на другой машине без востановления индексов. записи достал.
2. если сделать gfix -mend и не делать backup/restore, а просто залить в таблицу утерянные записи? Или так нельзя?

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 06 фев 2013, 03:03
kdv
достали записи - хорошо. Но влить их в битую базу - увы. Если gfix починит, и при бэкапе (с опцией -g) не будет проблем, ну, на свой страх и риск можете продолжать работать. Но вообще битой базе после любой починки положено backup/restore делать. Иначе где потом что еще поломается или сервер заткнется - неизвестно.

если у вас бэкап идет 30-40 минут, то рестор будет 3-5 часов. Особенно если вы неправильно бэкап-рестор делаете
http://www.ibase.ru/devinfo/backupspeed.htm
http://www.ibase.ru/devinfo/backupspeed2.htm
http://www.ibase.ru/devinfo/restorespeed.htm

обратите внимание на время бэкапа и рестора, и на железо, которое используется в тесте.

И ПК на эту таблицу у вас тоже кривой, его перестраивать надо обязательно, раз вы b/r делать не хотите. А вот перестроится ли он - вопрос.

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 06 фев 2013, 10:54
Dedal
Большое спасибо за советЬІ!

После gfix -mend, теперь gfix -v -full в лог пишет:
Page 2759095 is an orphan
Ночной backup прошол нормально.

pk - попробую пересоздать для єксперимента.
Потом сделаю backup/restore.

Есть еще один вопрос.
Здесь http://www.ibase.ru/devinfo/gbak.htm ничего не сказано о скорости backup/restore в Linux через Services API,
а здесь http://www.ibase.ru/devinfo/restorespeed.htm написано что
локальный протокол на Linux работает как embedded, и равнозначен Services API

ВЬІходит нет смЬІсла в ключе -se в Linux или все таки стоит его использовать?

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 06 фев 2013, 15:45
Dimitry Sibiryakov
Локальный протокол использовать на Линухе - чревато боком с правами пользователя. Потому не рекомендуется.

Re: Как восстановить только одну таблицу с бекапа?

Добавлено: 06 фев 2013, 16:06
kdv
Выходит нет смысла в ключе -se в Linux или все таки стоит его использовать?
как сказал DS, зависит от прав доступа. Без -se и без указания имени хоста (даже localhost) работать будет как embedded, то есть делать бэкап будет фактически gbak, с его правами доступа.
По скорости - да, на линуксе embedded равнозначно -se.