Ошибка восстановления БД при backup/restore

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

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

Ответить
Olegas
Сообщения: 36
Зарегистрирован: 14 сен 2005, 07:57

Ошибка восстановления БД при backup/restore

Сообщение Olegas » 27 апр 2006, 13:56

У меня возникают ошибки в базе после backup/restore, если их выполнять когда, к базе подключены пользователи.
Следует ли отключать пользователей всякий раз при backup/restore.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 27 апр 2006, 14:49

ошибки ты нам сообщить не хочешь?

Karp
Сообщения: 41
Зарегистрирован: 30 апр 2005, 16:30

Сообщение Karp » 27 апр 2006, 14:53

Следует ли отключать пользователей всякий раз при backup/restore
при бэккапе необязательно - но тогда инфа в бэкапе будет неактуальной на момент рестора - всё, что пользователи наколбасят за это время, не будет в бэкапе

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

а какие ошибки? ты случаем не поверх боевой базы ресторишь? :evil:

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 27 апр 2006, 16:01

dimitr писал(а):ошибки ты нам сообщить не хочешь?
Так жеж как божий день, первый же внешний ключ и рестор обломается. "table in use" Юзеров на время b/r расшугать обязательно.

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

Сообщение kdv » 27 апр 2006, 17:17

что за бред?

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 28 апр 2006, 08:30

kdv писал(а):что за бред?
Мой? Так я именно такое поведение наблюдал, когда пытался подключиться к базе, которая наполовину отресторилась. Разумеется БД игровая и это был эксперимент, совсем недавно, кстати. Вот только в игровой машинке винт издох, щас новый прикупил, еще поэкпериментирую.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 28 апр 2006, 08:41

Насколько я помню, свежие версии Жар-Птички не дают подключиться к восстанавливаемой базе (она создается в режиме shutdown), но может ты игрался двумя SYSDBA...
Тому кто пускает всех пользователей в рабочую базу под именем SYSDBA или владельца надо руки отрывать по самые... ноги.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 28 апр 2006, 08:45

Dimitry Sibiryakov писал(а):Насколько я помню, свежие версии Жар-Птички не дают подключиться к восстанавливаемой базе (она создается в режиме shutdown), но может ты игрался двумя SYSDBA...
Полуторка, да двумя сисдба-ми.

Olegas
Сообщения: 36
Зарегистрирован: 14 сен 2005, 07:57

Сообщение Olegas » 28 апр 2006, 08:47

Я так и думал. Только все это у меня делается автоматом из бат файла.
Поэтому сделал так, чтобы пользователи не подключались во время бэкап/рестора:
1. Остановил Интербэйз сервис.
2. Переименовал файл базы, чтобы пользователи не могли подключиться.
3. Запустил Интербэйз сервис.
4. Сделал бэкап. Затем рестор в другой файл.
5.Остановил Интербэйз сервис. Преименовал старый файл базы. Преименовал новый файл базы.
6. Запустил Интербэйз сервис.
Все.
Если можно проще, подскажите как.
Такая схема имеет существенный недостаток.
Останов/запуск сервиса я делаю через net stop/net start.
Когда запускается net stop, он запускается как параллельнй процесс и управление в бат файле передается на следующую команду, а останов в это время может быть еще не выполнен, и в результате вся остальная цепочка в батике не срабатывает. Как этого избежать?

Ответить