Ручное восстановление БД. SAFEMODE DB_ERROR

Skip to end of metadata
Go to start of metadata

Если в interabase.log есть ошибки wrong page type, значит БД повреждена из-за нехватки места, ошибок ФС или аппаратных ошибок диска.

Как правило после этого БД нормально восстанавливается если с этого момента прошло меньше 2 дней.

Восстановление происходит путем backup-restore:

1. Если у вас включен помощник, то в меню сервис переводим сервер в SAFEMODE. Либо при загрузке сервера, сразу после таблицы BIOS нажимайте раз в секунду клавиши вверх вниз, до появления menu. Выберите ядро ICServer и напишите

sm=1 p=пароль

Например, ICServer sm=1
После этого нажмите Enter и введите пароль загрузки: servicemode. При вводе пароля на экран ничего не отображается. После нажатия Enter должна продолжиться обычная загрузка системы.

Подключаемся помощником через root@ip port 33 пароль

2. Делаем бэкап

export INTERBASE_LOCK=/var/lock/firebird/
gfix -mend -full -ignore /var/db/ics_main.gdb

#Может какое-то время повисеть и вывести количество ошибок

gbak -b -v -ig -g -e /var/db/ics_main.gdb /tmp/123.gbk

Если бэкап сделать не удалось, можно обратиться в техническую поддержку(от SLA 3) чтобы специалисты сделали ручное восстановление. В других случаях необходимо восстановить БД из ежедневного бэкапа

export INTERBASE_LOCK=/var/lock/firebird/

3. Вручную восстанавливаем существующий бекап во временный файл

gbak -c -v /tmp/123.gbk /var/db/tmp.gdb

Если из этого бэкапа восстановиться не получилось, нужно восстанавливаться из последнего рабочего:

gbak -c -v /var/backup/db/ВАШ_БЕКАП.gbk /var/db/tmp.gdb

4. Устанавливаем права доступа на вновь созданный файл

chmod 666  /var/db/tmp.gdb

5. Временный файл tmp.gdb переименовывается в ics_main.gdb, с сохранением исходной БД в ics_main.gdb.bad

mv /var/db/ics_main.gdb  /var/db/ics_main.gdb.bad
mv /var/db/tmp.gdb  /var/db/ics_main.gdb

6. Очистка БД от старых сообщений

sqlexec /var/db/ics_main.gdb 'delete from msg_stack'
sqlexec /var/db/ics_main.gdb 'delete from msg'

7. Остановка служб

killall -HUP gds_inet_server
killall -KILL gds_lock_mgr

8. Выполните "мягкую" перезагрузку

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.